標籤:
一、加強版的低電耗模式
條件:1未插電源;2螢幕關閉;(N與6.0的區別就在於N在手機非靜止時也可進入低電耗模式)
作用過程及方式:1充電狀態;2螢幕關閉一定時間;進入一級低電限制:關閉網路,延遲CPU作業。
3在上述基礎上再靜止一定時間:進入全低電耗模式:掃描PowerManager.WakeLock、AlarmManger、GPS、WIFI的低電耗設定。
在此期間受到限制的應用都會在隔一段時間後的視窗期來執行其延遲的作業工作。
二、後台最佳化
由於耗電問題,N刪除了三項隱式廣播
1.CONNECTIVITY_ACTION
單次的網路切換即會導致大多數註冊了該監聽的應用喚醒並同時處理。
2.ACTION_NEW_PICTURE
3.ACITONG_NEW_VIDEO
單次拍照錄影也會導致註冊該監聽的所有應用喚醒。
修改方式:
1前台應用可以使用BroadcastReciver在主線程監聽CONNECTIVITY_CHANGE。無法收到CONNECTIVITY_ACTION。
2無法收到2 3兩項廣播,及時在N之前的版本
替代方案:
JobScheduler。
三、許可權更改
1檔案的所有者不能放寬其檔案的讀寫權限。
MODE_WORLD_READABLE/MODE_WORLD_WRITEABLE將拋出SecurityException。(可用原生FILE API來修改,但google強烈反對)
2傳遞軟體包網域外file://URI 可能無法訪問。分享私人檔案推薦使用FileProvider。
3將下載位置設定為公用位置的舊版本仍然能夠使用COLUMN_LOCATION_FILENAME訪問其其路徑,但強烈反對。訪問DownloadManager公開的檔案應使用ContentResolver.openfileDescriptor()。
四、應用間共用檔案
N禁止應用向外公開file://URI。若要達到應用間共用檔案,使用FileProvider,發送content://URI,並授予臨時存取權限。
五、無障礙改進
對代碼沒有太大影響。
六、螢幕縮放
系統可設定螢幕密度。
當裝置密度發生改變時:
1. 23以下(含)後台進程講自動終止(和系統處理OOM一樣),前台進程則會收到configurationChanged(就像螢幕方向發生改變)。
2. 面向N的則會收到configurationChanged
本功能基本不需要改變就能支援,但要注意:
1. 你的應用可以在寬度sw320dp的裝置充分運行。
2. 注意你與密度有關的緩衝資源,建議儲存這些資源的中繼資料來決定是否需要重新整理資料
3. 盡量避免使用xp單位
七八九十 設定中的視覺設定,NDK,Android for Work,注釋保留
沒用到,暫不歸納。
十一、其他注意事項:
1 在N的裝置上運行 面向低層級API開發的應用,密度改變時系統依舊終止後台進程,應保證可正常處理此情況,否則使用者從最近使用記錄中恢複應用時會導致崩潰。使用DDMS終止進程來類比此情況進行測試。
2.N以上應用可以正常處理密度變化,可改變Setting>Display>Font size隨後在最近記錄中恢複應用來測試。
3.修複部分主線程網路請求沒Exception的BUG
4.Debug.startMethodTracing()輸出到共用儲存空間的包名目錄的特定目錄中,不在需要WRITE_EXTERNAL_STORAGE
5.Binder儲存發送大資料將引發RuntimeException
6.View未在視窗時發布Runnable任務,該任務將排隊到附加到視窗後執行。
7.N上,DELETE_PACKAGES應用調用PackageInstaller.uninstall()返回 STATUS_PENDING_USER_ACTION。
android 7.0變化