Sunshine 代碼資源庫 (ZIP 下載)
Toy App 資源庫 (ZIP 下載)
看項目配置:
File——Project Structure—— app——flavors
設(shè)置 minSDK
minSDK 是你的應(yīng)用可以在上面運行的最低級別的 SDK。你可以選擇支持哪些級別的設(shè)備。設(shè)置 minSDK 就像添加過濾器——Google Play 不會在所搭載的 Android 版本低于你的最低 SDK 版本的設(shè)備上顯示你的應(yīng)用。
所以為何不將 minSDK 設(shè)置為 1,并支持所有的設(shè)備?通常,你希望面向盡可能多的用戶,但是支持更低版本的設(shè)備存在一定的成本,例如為被棄用或更新的 API 創(chuàng)建不同的執(zhí)行路徑,或為具有不同功能的設(shè)備提供不同的用戶體驗。你需要在擴大用戶群與支持這些設(shè)備帶來的成本代價之間找到平衡點。
同時注意,每個版本都推出了新的 API 和硬件支持,所以沒必要使應(yīng)用面向不支持你的最低功能集的設(shè)備。以下是與不同版本相關(guān)聯(lián)的硬件支持和功能示例。
主屏幕小部件 (Cupcake)
多手指跟蹤 (Froyo)
平板電腦 (Honeycomb)
Android Beam (Jellybean)
Android TV、Auto、Wear (Lollipop)
Pro Audio (Marshmallow)
設(shè)置 targetSDK
相比較而言,符合 targetSDK 條件的設(shè)備不多——它用于聲明你是在哪個版本上測試應(yīng)用。 面向特定 API 或 Android 版本的應(yīng)用將繼續(xù)與未來版本兼容,Android 使用 targetSDK 值的目的是,當未來版本對預(yù)期行為作出重大更改時,如果用戶升級了手機,你的應(yīng)用不會崩潰。
Android Studio 默認地面向的是最新版本。如果你開發(fā)的是新應(yīng)用,則最好面向最新的 Android 版本,一旦推出應(yīng)用,則記得在新的 Android 版本推出時更新 targetSDK 并盡快測試應(yīng)用,這樣應(yīng)用便可以利用所有的 Android 優(yōu)化和改進功能。
gradle
當android studio使用adb安裝好apk后,會在使用adb啟動應(yīng)用,主要activity的包和類名。然后通過遠程shell發(fā)送一個啟動命令。
構(gòu)成應(yīng)用的組件主要有四種:
- activity
- server
- broadcast receivers
- content provides
android之所以認識這些組件,是因為他們都在Android清單文件中進行了注冊