gitignore
當你在Android Studio中創建一個新的Android項目時,它已經生成了gitignore文件,但通常它不包含所有必要的規則。
為了快速生成和下載gitignore文件,我建議您使用gitignore.io網站。只需輸入必要的關鍵字,如 — Android,Intellij并點擊生成按鈕。

在模板項目中查看gitignore文件。
tools folder
如果你有一些第三方腳本,規則集或其他與您的項目相關的文件不要只是簡單的把它們放在根目錄 —它會造成混亂。(特別是對于那些使用Project視圖,而不是Android視圖)
嘗試創建一個文件夾(例如tools),并將所有這些文件放入此文件夾。

通常我在那里放一些自定義的gradle腳本文件,proguard和靜態代碼分析工具的規則,如pmd,findbugs,lint。
在模板項目中查看 tools文件夾。
flavors
Flavours用于創建具有不同設置的構建。在大多數情況下,我會立即設置兩種flavors — dev和prod:
- applicationId
- versionCode / versionName
- server endpoints
- google services keys
- …

在模板項目中查看 productFlavors。
keystore
keystore是一個二進制文件,其中包含一個或多個用于簽署應用程序的私鑰。
當從IDE運行或調試項目時,Android Studio會使用Android SDK工具生成的調試證書自動為您的APK簽名。
使用本地調試keystore時有幾個問題:
- 到期日365天
- 從多臺計算機安裝應用程序需要先卸載
- google服務需要密鑰庫SHA-1指紋
這就是為什么我通常生成調試密鑰庫并提交到版本控制系統。

在模板項目中查看 signingConfigs。
proguard
Android proguard用來做三件事:
- 壓縮未使用的代碼 — 幫助你不超出64k限制
- 優化代碼和apk
- 混淆代碼 — 使你的APK難以做逆向工程
問題是混淆和代碼優化顯著增加了編譯時間,使調試更困難。
這就是為什么最好對發布和調試版本使用不同的proguard規則:
- rules-proguard.pro
- rules-proguard-debug.pro

用于調試構建的Proguard規則必須具有以下行以強制proguard忽略警告,跳過代碼混淆和優化:

對于發布版本,設置proguard規則將會更加困難,因為幾乎每個庫都有自己的特定規則。幸運的是,有一個開源代碼庫 — ?android-proguard-snippets,它包含所有主要庫的proguard規則。

在模板項目中查看 rules-proguard.pro和rules-proguard-debug.pro。
strict mode
Android StrictMode可幫助您檢測不同類型的問題:
- 可關閉對象沒關閉
- 在主線程中讀寫文件或者訪問網絡
- uri 暴露
- …
每當檢測到這樣的問題,它可以顯示適當的日志或應用程序崩潰,具體取決于你的配置。
我建議你只在調試的時候打開它并且使用detectAll方法來檢測所有類型的問題。

這里是當你忘記關閉SQLiteCursor的日志的例子:

在模板代碼中查看StrictMode。
