一、 性能改善
10年的葉城網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。網(wǎng)絡(luò)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整葉城建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“葉城網(wǎng)站設(shè)計”,“葉城網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
Doze超級省電模式
手機(jī)在關(guān)屏同時沒有充電的情況,會進(jìn)入打盹狀態(tài),這時候app的位置服務(wù),訪問網(wǎng)絡(luò),cpu background-running 等后臺服務(wù)會被停止,不允許定時任務(wù),忽略wake locks,停止wifi scanner。
會影響app的保活,尤其對那些需要接受消息類的app。Google 推薦使用GCM。
后臺優(yōu)化
廣播:
靜態(tài)注冊CONNECTIVITY_ACTION 廣播將失效,只有動態(tài)注冊才行。Android 5.0上可以使用JobScheduler在指定的網(wǎng)絡(luò)條件運(yùn)行你的任務(wù),還可以通過ConnectivityManager registerNetworkCallback()來監(jiān)聽網(wǎng)絡(luò)狀態(tài)。
ACTION_NEW_PICTURE,ACTION_NEW_VIDEO廣播已經(jīng)去除,當(dāng)然應(yīng)用可以通過ContentResolver來監(jiān)聽。Android N上面可以JobScheduler來監(jiān)聽
二、 NDK 試用改變
限制只能試用平臺公共api,否則你的應(yīng)用會crash,最好只使用NDK中包含的api,否則系統(tǒng)被定制了可能會找不到你要鏈接的so,其次使用第三方so的時候也要注意對方有木有試用非法的so.
如圖:
三、 Screen Zoom
用戶最低可以改變到屏幕寬度為320dp,所以app最好能適配sw320dp,當(dāng)你的 compile target android N 時,當(dāng)用戶改變屏幕顯示大小時,會殺掉后臺進(jìn)程(你的app會被干掉哦)
四、 Language and Locale
支持多用戶多語言環(huán)境,提供新的API: LocaleList.GetDefault(),可以獲取所有用戶的語言環(huán)境。
同時app多語言查找策略改變,當(dāng)你的app中不在當(dāng)前語言環(huán)境的resources時,會找最接近的語言代替,而不是直接使用默認(rèn)語言代替。如:你的app的Resources中只包含 es,和zh_cn,當(dāng)用戶的環(huán)境是zh_tw時,會用zh_cn代替。并且還支持自定義語言目錄。
五、 Multi-Window Support
Android N機(jī)器上默認(rèn)就支持Multi-Window,同一個屏幕可以運(yùn)行多個app窗口。有兩種模式,split-screen mode和picture-in-picture mode。app開啟和關(guān)閉這兩個模式很方便,在AndroidManifest.xml配置一下即可。
android:resizeableActivity=["true" | "false"]
android:supportsPictureInPicture=["true" | "false"]
這種模式在平板電腦上面很合適。
六、Notifications
Android N提供一些新的關(guān)于Notifications的API。
RemoteInput.Builder:使得用戶可以在通知欄直接回復(fù),這個很適合社交類app和短信app,以及可以應(yīng)用到用戶反饋中。
NotificationCompat.Builder.setGroup():可以使同一個app通知放在同一個分組。
NotificationManager:能讓你知道你目前發(fā)了多少條通知,怎樣通知進(jìn)行分組。
七、Data Saver
當(dāng)用戶開啟流量節(jié)省后,會禁止app在后臺使用收費(fèi)網(wǎng)絡(luò)流量數(shù)據(jù)。甚至在前臺使用流量時也會發(fā)出警告。
ConnectivityManager.isActiveNetworkMetered(),
ConnectivityManager.isActiveNetworkMetered(),
查詢是否開啟流量節(jié)省模式,自己是否在用戶白名單中(對自己例外)
ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED
監(jiān)聽用戶開啟流量節(jié)省模式
八、Network Security Configuration
能讓app定制網(wǎng)絡(luò)安全設(shè)置:
Debug-only overrides(自定義信用的CA)。
Debug-only overrides(自定義能調(diào)試你app信用的CA)
Cleartext traffic opt-out(防止網(wǎng)絡(luò)請求明文交互)
Certificate pinning(自定義只信用包含特定公鑰CA)
從 Android N 開始,在首次開機(jī)時,在用戶尚未來得及解鎖設(shè)備之前,設(shè)備可直接啟動到一種名為 Direct Boot(直接啟動)的新模式中。在此模式下,操作系統(tǒng)可以全功能運(yùn)行,但不允許訪問私有應(yīng)用數(shù)據(jù),只能運(yùn)行經(jīng)過更新、可支持直接啟動功能的應(yīng)用。
直接啟動適合我的應(yīng)用嗎?并非所有應(yīng)用都應(yīng)運(yùn)行在直接啟動模式下,因此,在開始編碼之前,請務(wù)必先檢查您的應(yīng)用是否符合以下常見的用例:
安排鬧鈴的應(yīng)用,如鬧鐘。
提供重要且及時的通知的應(yīng)用,如短信應(yīng)用。
為其他應(yīng)用或系統(tǒng)提供服務(wù)的應(yīng)用,例如輔助工具服務(wù)。
請注意,以上并非詳盡的用例列表,我們期待看到還有哪些類型的應(yīng)用能夠從直接啟動模式獲益。
讓您的應(yīng)用支持直接啟動
為了讓您的應(yīng)用能夠在用戶解鎖設(shè)備之前運(yùn)行,您必須在清單文件中將組件顯式標(biāo)記為支持直接啟動:
activity|provider|receiver|service ...
android:directBootAware=”true”
您可以選擇您的應(yīng)用中需要支持直接啟動的組件子集,但如果您使用的是自定義 Application 類,則假定應(yīng)用內(nèi)部標(biāo)記為支持直接啟動的任何組件均支持直接啟動。對于需要在直接啟動模式下在系統(tǒng)啟動之后盡快運(yùn)行的應(yīng)用,現(xiàn)在提供一種新的 Intent.ACTION_LOCKED_BOOT_COMPLETED 廣播。在用戶解鎖該設(shè)備之后,所有應(yīng)用仍將收到 Intent.ACTION_BOOT_COMPLETED 廣播。
使用設(shè)備保護(hù)存儲區(qū)為了支持應(yīng)用在用戶提供解鎖私有應(yīng)用數(shù)據(jù)所需的憑據(jù)之前的正常運(yùn)行,所有 Android N 設(shè)備現(xiàn)在均提供兩個數(shù)據(jù)存儲位置:
憑據(jù)保護(hù)存儲區(qū),這是所有應(yīng)用的默認(rèn)存儲位置,僅在用戶解鎖設(shè)備后可用。
設(shè)備保護(hù)存儲區(qū),這是一個新的存儲位置,當(dāng)設(shè)備啟動后(包括直接啟動期間)隨時都可訪問該位置。
應(yīng)用中被標(biāo)記為支持直接啟動的組件必須使用設(shè)備保護(hù)存儲區(qū)來存儲直接啟動模式期間應(yīng)用操作所需的任何數(shù)據(jù)。在用戶解鎖設(shè)備后,用戶仍可訪問憑據(jù)保護(hù)存儲區(qū)。
要訪問設(shè)備保護(hù)存儲區(qū),您需要為所有文件相關(guān)的 API 另外創(chuàng)建并使用一個 Context 對象:
Context deviceProtectedContext = context.createDeviceProtectedStorageContext();
deviceProtectedContext.openFileInput( ... )
當(dāng)您的應(yīng)用更新到支持直接啟動的版本之后,您之前保存的共享首選項(xiàng)
或數(shù)據(jù)庫可能需要遷移到設(shè)備保護(hù)存儲區(qū)。在訪問該存儲區(qū)之前,即使數(shù)據(jù)已從舊版本或其他設(shè)備中備份并恢復(fù),您仍應(yīng)使
用 Context.moveSharedPreferencesFrom() 和
Context.moveDatabaseFrom(),以確保應(yīng)用能夠繼續(xù)正常運(yùn)行。
注意事項(xiàng)
您
應(yīng)審慎考慮要在設(shè)備保護(hù)存儲區(qū)中存儲哪些數(shù)據(jù)。應(yīng)盡量減少在設(shè)備保護(hù)存儲區(qū)中存儲的數(shù)據(jù),以確保您的應(yīng)用在直接啟動期間正常運(yùn)行為限。例如,在短信應(yīng)用
中,您可以存儲一個訪問令牌,其作用域僅限于能夠訪問服務(wù)器上的新消息數(shù)量。所有敏感的私人信息(例如完整的短信歷史記錄和讀/寫訪問令牌)仍應(yīng)保存在憑
據(jù)保護(hù)存儲區(qū)中。
另外需要提醒的一點(diǎn)是:在直接啟動期間,應(yīng)用只能訪問其他支持直接
啟動的應(yīng)用和組件。如果您的應(yīng)用依賴外部服務(wù)和 Activity,請確保妥善處理外部服務(wù)和 Activity
不可用的情形。默認(rèn)情況下,Intent 過濾器僅匹配當(dāng)前用戶狀態(tài)(已鎖定/已解鎖)下可用的組件?,F(xiàn)在有兩個新的標(biāo)志,可用于向 Package
Manager
顯式聲明需要枚舉哪些組
件:PackageManager.MATCH_DIRECT_BOOT_AWARE 和 PackageManager.MATCH_DIRECT_BOOT_UNAWARE。
未來計劃
在
原生支持直接啟動的 Android N 設(shè)備發(fā)布之前,您可以使用 Android N 開發(fā)者預(yù)覽版測試您的應(yīng)用。在 Nexus 5X 和
Nexus 6P 上,您可以通過使用 Settings Developer options Convert to file
encryption 來擦除所有用戶數(shù)據(jù)并啟用完整的直接啟動模式。或者,您也可以重新啟動到引導(dǎo)裝載程序并發(fā)出相應(yīng)的快速啟動命令:
$ adb reboot-bootloader
$ fastboot --wipe-and-use-fbe
警告:這兩種方法都將執(zhí)行恢復(fù)出廠設(shè)置并刪除設(shè)備中的所有用戶數(shù)據(jù)。
或者,您也可以使用模擬的直接啟動模式。若要啟用模擬直接啟動模式,請在設(shè)備上設(shè)置鎖定模式,如果在設(shè)置鎖定模式時系統(tǒng)提示安全啟動屏幕,則選擇“No thanks”,然后使用以下 adb shell 命令啟用和禁用模擬:
$ adb shell sm set-emulate-fbe true
$ adb shell sm set-emulate-fbe false
請注意,使用這些命令會導(dǎo)致設(shè)備重啟。您只應(yīng)在測試設(shè)備上使用模擬直接啟動模式,因?yàn)樵撃J娇赡軐?dǎo)致數(shù)據(jù)丟失。
按照慣例,新系統(tǒng)將在 Google 年度的開發(fā)者大會,即 Google I/O 2016 上公布。而 Android N 的開發(fā)者預(yù)覽版,將會由 Sundar Pichai(就是那個全美薪酬最高的 Google CEO),在美國時間的 5 月 18 號公布。
Android N 值得期待的 10 件事
1. 主題皮膚管理器
在 CM 等一眾第三方系統(tǒng)中,早已支持便捷地修改壁紙、圖標(biāo)和系統(tǒng)顏色。在商店和論壇中,也能找到不少優(yōu)質(zhì)的皮膚主題。
而當(dāng)我們提到原生 Android,似乎總是長著一張固定的臉。實(shí)際上,在 Google 自家的 AOSP(即Android 開源項(xiàng)目)中,早已內(nèi)置了主題管理。
而在 Android M 的開發(fā)者預(yù)覽版中,也加入了主題管理器(可惜被需要 Root 和特定方式才能激活)。既然系統(tǒng)內(nèi)的皮膚主題框架早已搭建好,那就只等 Google 在 Android 系統(tǒng)中放出啦。
2. 應(yīng)用程序抽屜的消失
在 2 月 26 日,Google Map 的官方 Twitter 發(fā)布了一條介紹視頻,其中的展示機(jī) Nexus 6P 的系統(tǒng)界面中,似乎看不到底部的應(yīng)用抽屜按鈕了。發(fā)現(xiàn)問題的同學(xué)也開始集體留言質(zhì)問:「WHERE IS THE APP DRAWER?!?!」
而在之前也確實(shí)有傳聞爆料:在新版 Android N 中,或許會將應(yīng)用抽屜的設(shè)計去除,選擇采用 iOS 和 MIUI 的應(yīng)用呈現(xiàn)方式,即全部在桌面首頁中展示。
去除二級菜單的做法,會帶來更加凌亂的桌面,還是更有效率的操作體驗(yàn)?似乎很難定論,但作為 Android 玩家,大可選擇 Nova 啟動器等優(yōu)秀的第三方桌面,而不必?fù)?dān)心我卓藥丸。
3. 夜間模式會許要來了
在 Android M 的開發(fā)者預(yù)覽版中,Dark Mode 夜間模式曾短暫地出現(xiàn)過,而在正式版中又被砍去。
而最新的 Android N 泄露圖中,黑色背景的右圖也表示著:夜間模式回歸 Android 了。
而更加值得期待的是,Google 已經(jīng)放出了夜間模式的開發(fā)代碼,開發(fā)者可以輕松地為自己的應(yīng)用設(shè)定「暗色主題」。也許今后只需輕按「夜間模式」的按鈕,從系統(tǒng)到各個應(yīng)用,都能直接更換成夜間模式。
這一改變,不僅對于越來越多 AMOLED 屏幕手機(jī)而言,是省電的好方法。對于經(jīng)常深夜玩手機(jī)的同學(xué)來說,似乎也可以和刺眼的白光說再見了。
4. 分屏多任務(wù)以及平板支持
在 LG 和三星都推出了「分屏模式」后,Google 在 Android N 中加入分屏功能也是眾望所歸了。同樣的,在上一個版本 Android M 中,分屏模式也被隱藏起來,需要特定方式才能激活。
不負(fù)眾望,來自 Google 的 Pixel C 團(tuán)隊在接受 Reddit AMA 論壇訪談時,確認(rèn)了「split screen is in the works」。
而分屏多任務(wù),似乎在 Android 平板上也更加適用。值得一提的是,該團(tuán)隊也宣稱 Android 系統(tǒng)的平板,在 Android N 中將會更加好用,而不僅僅是將應(yīng)用界面拉升就夠了。
但對于 Chrome OS 的聯(lián)動猜想、DPI 切換和和界面的調(diào)整,似乎只能等 Google I/O 那天,才知道答案。
5. 支持觸控筆
在三星公布的文檔中,我們發(fā)現(xiàn)三星在 Android N 中,采用了系統(tǒng)自帶的觸控筆接口,而不再使用原先的 S PEN 專屬接口。
而在 Android 5.0 (開始支持節(jié)電助手)之前,三星關(guān)閉了自家的節(jié)電模式接口。在 Android 6.0 (開始支持指紋識別)之前,又關(guān)閉了自家的指紋識別接口。而在 Android 7.0 公布之前,三星又再一次關(guān)閉了自家的觸控筆接口,這……
6. 更好的 Doze 省電模式
Doze 省電模式首次出現(xiàn)在 Android M 中,其省電原理是在設(shè)備休眠時,關(guān)閉關(guān)閉應(yīng)用后臺,以達(dá)到省電的效果。
在親身體驗(yàn)后,Doze 模式確實(shí)發(fā)揮了很好的效果,起碼待機(jī)的時候不掉電了。但在目前這一功能,在操作體驗(yàn)和用戶自定義方面,卻有些過于簡單了。
所以直到今天 Android 6.0,我依然選擇綠色守護(hù)等第三方應(yīng)用,去實(shí)現(xiàn)控制后臺應(yīng)用耗電的問題。但 Root 終歸有風(fēng)險,而 Android N 也有理由提供一個更好用的 Doze 省電模式。
7. 更完善、開放的設(shè)計
在 AppSo 年度精選的 Android 榜中,絕大部分應(yīng)用都采用了 Material Design。但不得不承認(rèn),這一設(shè)計風(fēng)格直到今天,在動效和交互上,依然沒有一個完美的榜樣。
我們不會期待 Android N 完全改頭換面,帶來全新的界面,但在圖標(biāo)、按鈕、交互動畫和界面設(shè)計上。
Android N 平臺也就是 Android 7.x 版本。
2016年5月19日,谷歌在美國加州的山景城舉辦了 Google I/O 開發(fā)者大會中發(fā)布。2016年6月,Android N正式命名為“牛軋?zhí)恰薄?/p>
Android N主要在運(yùn)行時和圖形處理上做了更新。運(yùn)行時間上,Android N對編譯器進(jìn)行了優(yōu)化,軟件的運(yùn)行時間提升了3-6倍。引入了一個全新的JIT編譯器,使得App安裝速度快了75%,編譯代碼的規(guī)模減少了50%。
圖形處理方面,N加入了一個新的圖形工具Vulkan,可以幫助游戲的視覺體驗(yàn)更加出色,并減少對CPU的要求。
Android N支持Vulkan API,包括其全部特性,尤其是能夠降低CPU系統(tǒng)開銷,提升描繪指令,應(yīng)用編譯與安裝方面,Android N不會一股腦地全部進(jìn)行AOT預(yù)先編譯,而是結(jié)合JIT實(shí)時編譯、混合編譯,都針對每個應(yīng)用進(jìn)行優(yōu)化,可大大提升應(yīng)用安裝速度、性能、存儲和能效,號稱安裝速度比現(xiàn)在快最多75%