1. Android o 版本發(fā)布規(guī)劃
- 2017.3.18 Android o dp1(develop preview) 第一版本發(fā)布
- 5月到8月會(huì)相繼發(fā)布dp2,dp3,dp4
- q3會(huì)發(fā)布最終正式版本
-image
2.新特性
2.1 UI
2.1.1 Picture in picture(畫中畫)
早在Android 7.0 中就引入PIP模式捅僵,但是只適用于Android TV谍夭。它允許用戶將播放的視頻縮小并顯示到所有其他內(nèi)容上方的浮動(dòng)窗口拧揽,從而讓用戶在處理其他應(yīng)用的同時(shí)觀看視頻節(jié)目嫌套。
需要支持PIP只需要在Mainfest對Activity設(shè)置屬性:
android:supportsPictureInPicture="true"
進(jìn)入PIP模式
Activity.enterPictureInPictureMode(PictureInPictureArgs args)
Activity 的縱橫比和其他配置設(shè)置均由 args 指定座每。
Tips:當(dāng)一個(gè)Activity進(jìn)入PIP模式時(shí)會(huì)調(diào)用OnPause(),當(dāng)某個(gè) Activity 處于 PIP 模式時(shí)狮惜,它會(huì)處于暫停狀態(tài)高诺,但仍應(yīng)繼續(xù)顯示內(nèi)容。因此碾篡,您應(yīng)確保您的應(yīng)用在 onPause() 處理程序中進(jìn)行處理時(shí)不會(huì)暫停播放虱而。相反霞势,您應(yīng)在 onStop() 中暫停播放視頻浮入,并在 onStart() 中繼續(xù)播放。
2.1.2 AutoFill
用戶可以向選擇鍵盤一樣選擇自動(dòng)填充應(yīng)用孵运,通過這個(gè)API穆律,自動(dòng)填充應(yīng)用可以安全存儲(chǔ)地址惠呼,名稱,密碼等數(shù)據(jù)峦耘,在登陸某些賬戶或者使用信用卡交易的時(shí)候?qū)⒆詣?dòng)填充表單剔蹋,讓交易更輕松。例如在Twitter上登錄時(shí)可以通過識(shí)別指紋自動(dòng)填充賬號(hào)密碼等辅髓。當(dāng)然用戶的賬號(hào)密碼會(huì)通過加密在系統(tǒng)保留一份泣崩。
2.1.3 支持在XML中定義字體(Font resources in XML)
在o中 設(shè)置字體不再需要手動(dòng)去獲取asset下的font文件并生成typeface,系統(tǒng)會(huì)自動(dòng)識(shí)別字體文件利朵,并生成一個(gè)id。在o中猎莲,新引入了R.font的機(jī)制绍弟,與R.string,R.color處于同一級(jí)比著洼,因此樟遣,可以在xml中直接通過R.font來設(shè)置字體而叼。
2.1.4 針對應(yīng)用寬色域的顏色(Wide-gamut color for apps)
系統(tǒng)級(jí)別增加更多的顏色域支持

2.1.5 WebView中的增強(qiáng)功能(WebView enhancements)
現(xiàn)在在WebView界面下的多應(yīng)用顯示將大幅改進(jìn)安全性和穩(wěn)定性。webview現(xiàn)在默認(rèn)支持多線程豹悬,開發(fā)者可以在線程中處理不同的加載過程葵陵,可以單出開啟線程處理webview的崩潰和錯(cuò)誤問題。
2.1.6 更多的動(dòng)畫支持
setCurrentPlayTime(long time) //支持動(dòng)畫在time (s)暫停
reverse() //之前一個(gè)循環(huán)的動(dòng)畫需要寫去和回的動(dòng)畫代碼瞻佛。去和回的效果一致時(shí)脱篙,冗余無用代碼,現(xiàn)在只需要寫去的代碼就可以了.
.....
2.1.7 Auto-Sizing TextView
以前的TextView需要考慮許多有關(guān)適配的問題伤柄,需要根據(jù)分辨率來設(shè)置字號(hào)“砝В現(xiàn)在TextView可以自動(dòng)的根據(jù)TextView的Height和Width來調(diào)整字號(hào)的大小。
2.1.8 Media更多的支持
- 引入Metric類适刀,可以更方便的獲取Media的各種屬性
- 可以自由配置緩存時(shí)間秤朗,可以設(shè)置最長和最短緩存時(shí)間
- ......
2.1.9 自適應(yīng)圖標(biāo)(Adaptive Icons)
Android O 引入了“自適應(yīng)桌面圖標(biāo)”笔喉,能在不同的設(shè)備型號(hào)上顯示不同的圖標(biāo)形狀取视。比如同一個(gè)桌面圖標(biāo)在一家 OEM 廠商的設(shè)備上顯示為圓形,在另一家則可以顯示為方形常挚。各個(gè) OEM 廠商可提供一個(gè)標(biāo)準(zhǔn)形狀作谭,交給系統(tǒng)將所有應(yīng)用的自適應(yīng)圖標(biāo)渲染為相同形狀。
- 兩張圖層大小都必須為 108 x 108 dp待侵。
- 圖層中心 72 x 72 dp 范圍為可視范圍丢早。
- 系統(tǒng)會(huì)保留四周外的 36dp 范圍用于生成有趣的視覺效果(如視差效果和跳動(dòng))。
2.1.10 Notification 規(guī)范化秧倾,減少騷擾
- 將應(yīng)用發(fā)出的通知進(jìn)行細(xì)化怨酝,劃分成不同的類別,就像電視的一個(gè)個(gè)頻道那先,可以針對頻道進(jìn)行操作农猬。
- 如:qq可以設(shè)置新消息通道,推薦新聞通道等
- 用戶可以屏蔽某個(gè)頻道的通知售淡,而不是這個(gè)應(yīng)用的所有通知消息斤葱;開發(fā)者可以針對頻道設(shè)置通知的震動(dòng)、聲音等揖闸。當(dāng)然用戶也可以對每一個(gè)通道進(jìn)行性聲音揍堕,震動(dòng)等的設(shè)置。
- ps:目前通道數(shù)目不作限制汤纸,且應(yīng)用可以獲取當(dāng)前應(yīng)用所有的通道以及通道狀態(tài)衩茸,后果就是存在一種情況,開發(fā)者濫用通道贮泞,開啟n個(gè)通道楞慈,依舊騷擾用戶幔烛,google的回答是:用戶會(huì)直接kill app
2.2 Quality
2.2.1 后臺(tái)限制
- 當(dāng)應(yīng)用進(jìn)入到后臺(tái),沒有可見且運(yùn)行的組件(如后臺(tái)Service)囊蓝,系統(tǒng)會(huì)釋放應(yīng)用所持有的喚醒鎖(wakelock)
- 使用 NotificationManager.startServiceInForeground()方法啟用foreground Service饿悬,舊方法不再有效
- 后臺(tái)位置獲取限制
在Android O系統(tǒng)上,后臺(tái)運(yùn)行的應(yīng)用聚霜,不再能頻繁的收到位置更新的信息 - 限制在Mainfest中靜態(tài)注冊廣播接收器
2.2.2 隱私策略
ISMI獲取時(shí)需要android.permission.READ_PHONE_STATE權(quán)限狡恬,并且在N開始獲取時(shí)會(huì)彈出通話權(quán)限,會(huì)被用戶拒絕掉俯萎。退一步是獲取Android_ID ,但是手機(jī)恢復(fù)出廠設(shè)置后傲宜,應(yīng)該和上一次的不再一致,不可靠夫啊。
- ANDROID_ID 不再是設(shè)備中所有應(yīng)用共享的函卒,而是每個(gè)應(yīng)用獲取到的都不一樣,而且以包名和簽名作為區(qū)分撇眯;卸載后重新安裝也不會(huì)發(fā)生變化报嵌;但是手機(jī)恢復(fù)出廠設(shè)置后,應(yīng)該和上一次的不再一致熊榛。google對于設(shè)備唯一標(biāo)示沒有做出明確回答
- 獲取系統(tǒng)屬性net.hostname锚国,將得到null
2.2.3 懸浮窗限制
- 使用新的構(gòu)造方式,并且懸浮窗展示時(shí)玄坦,會(huì)在通知欄展示一條消息提醒用戶當(dāng)前哪個(gè)應(yīng)用彈出了炫富穿血筑,可以通過通知欄關(guān)閉懸浮窗。