前言
本文是一篇譯文,這篇是這個系列的第三篇。講述的是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。