Android小技巧(3)
前言
本文是一篇译文,这篇是这个系列的第三篇。讲述的是Android开发中遇到的一些好用的小技巧,或者一些实用的API,很多人都知道,但也有人不知道,记录下来,如果能帮助到大家,也是极好的。由于不是严格的博文,所以翻译也不那么严格,有些工具和类我也会经常用,所以我会根据自己的想法去写。有些地方坐在并没有将这个工具的作用讲出来,我会补充上去。
正文
UrlQuerySanitizer——使用这个工具可以方便对 URL 进行检查。
Fragment.setArguments——因为在构建 Fragment 的时候不能加参数,所以这是个很好的东西,可以在创建 Fragment 之前设置参数(即使在 configuration 改变的时候仍然会导致销毁/重建)。
DialogFragment.setShowsDialog ()—— 这是一个很巧妙的方式,DialogFragment 可以作为正常的 Fragment 显示!这里可以让 Fragment 承担双重任务。我通常在创建 Fragment 的时候把 onCreateView ()和 onCreateDialog ()都加上,就可以创建一个具有双重目的的 Fragment。
FragmentManager.enableDebugLogging ()——在需要观察 Fragment 状态的时候会有帮助。
LocalBroadcastManager——这个会比全局的 broadcast 更加安全,简单,快速。像 otto 这样的 Event buses 机制对你的应用场景更加有用。
PhoneNumberUtils.formatNumber ()——顾名思义,这是对数字进行格式化操作的时候用的。
Region.op()——我发现在对比两个渲染之前的区域的时候很实用,如果你有两条路径,那么怎么知道它们是不是会重叠呢?使用这个方法就可以做到。
Application.registerActivityLifecycleCallbacks——虽然缺少官方文档解释,不过我想它就是注册 Activity 的生命周期的一些回调方法(顾名思义),就是一个方便的工具。
versionNameSuffix——这个 gradle 设置可以让你在基于不同构建类型的 manifest 中修改版本名这个属性,例如,如果需要在在 debug 版本中以”-SNAPSHOT”结尾,那么就可以轻松的看出当前是 debug 版还是 release 版。
CursorJoiner——如果你是只使用一个数据库的话,使用 SQL 中的 join 就可以了,但是如果收到的数据是来自两个独立的 ContentProvider,那么 CursorJoiner 就很实用了。
Genymotion——一个非常快的 Android 模拟器,本人一直在用。
-nodpi——在没有特别定义的情况下,很多修饰符(-mdpi,-hdpi,-xdpi等等)都会默认自动缩放 assets/dimensions,有时候我们需要保持显示一致,这种情况下就可以使用 -nodpi。
BroadcastRecevier.setDebugUnregister ()——又一个方便的调试工具。
Activity.recreate ()——强制让 Activity 重建。
PackageManager.checkSignatures ()——如果同时安装了两个 app 的话,可以用这个方法检查。如果不进行签名检查的话,其他人可以轻易通过使用一样的包名来模仿你的 app。