2016-03-23 14:42:16 1596瀏覽
移動(dòng)互聯(lián)網(wǎng)科技日新月異,在谷歌宣布2016 年 Google I/O 大會(huì)開(kāi)放注冊(cè)之后, 谷歌出人意料地正式發(fā)布了其最新移動(dòng)操作系統(tǒng)Android N的開(kāi)發(fā)者預(yù)覽版。因這次的預(yù)覽提前了三個(gè)月,作為最新版本的Android操作系統(tǒng),盡管還只是開(kāi)發(fā)者預(yù)覽版,但是Android N中包含了諸多值得關(guān)注的新特性。
1. 多窗口模式 (Multi-Window Support)
多窗口模式支持拖放功能。主要用途是在窗口之間傳輸數(shù)據(jù)或其他種類信息。對(duì)于開(kāi)發(fā)者來(lái)說(shuō)如果應(yīng)用需要支持多窗口模式,要對(duì)這部分的界面顯示布局進(jìn)行詳細(xì)設(shè)計(jì)和測(cè)試,以匹配不同的高寬比。Android N開(kāi)發(fā)者預(yù)覽版自帶的Google Play應(yīng)用商店就在多窗口模式出現(xiàn)了適配的問(wèn)題。2. 通知機(jī)制 (Notifications)
Android開(kāi)發(fā)平臺(tái) 從4.1開(kāi)始就支持了通知的擴(kuò)展樣式,也就是我們通常所說(shuō)的多行通知欄,除了最頂部的通知擴(kuò)展樣式會(huì)默認(rèn)展開(kāi)之外,其他通知即使支持?jǐn)U展樣式默認(rèn)也是收起的。想要展開(kāi)只有兩個(gè)辦法:把該通知以上所有的通知全部清除,使之成為排名第一的通知,從而自動(dòng)展開(kāi);或 用一個(gè)鮮為人知的下滑手勢(shì)展開(kāi);所以,對(duì)于廣大Android開(kāi)發(fā)者而言,支持?jǐn)U展樣式通知的效果其實(shí)是不盡如人意的,原因就是易用性不足從而導(dǎo)致曝光較少。這個(gè)問(wèn)題終于在Android N中獲得了初步的解決。在上圖中Gmail的通知頂部有一個(gè)箭頭,點(diǎn)擊即可切換收起狀態(tài)和展開(kāi)狀態(tài)。如果沒(méi)有箭頭則表示這條通知是無(wú)法展開(kāi)的(例如USB Debugging那條通知)。
其次,Android N中附帶圖標(biāo)通知的視覺(jué)樣式,與之前相比有很大變化。整體上來(lái)看樣式更加規(guī)整,界面布局以信息為中心。通知的來(lái)源、接收通知的時(shí)間、標(biāo)題和描述都集中在左側(cè),通過(guò)顏色和透明度的區(qū)分讓重要信息一目了解。應(yīng)用圖標(biāo)統(tǒng)一右置,與左側(cè)信息形成有效的分隔。
3. 流量節(jié)省程序(Data Saver)
Android N中提供了一個(gè)全局的流量控制機(jī)制,目的自然是為了防止應(yīng)用程序在后臺(tái)惡意偷跑寶貴的移動(dòng)流量。這個(gè)功能是默認(rèn)關(guān)閉的,一旦開(kāi)啟之后除了GMS(Google Mobile Service,谷歌移動(dòng)服務(wù))外,其他應(yīng)用都是默認(rèn)不允許在后臺(tái)使用超過(guò)前臺(tái)所消耗的移動(dòng)流量。
4. Android開(kāi)發(fā)框架中提供部分ICU4J API支持
ICU4J(International Components for Unicode)是由IBM維護(hù),基于IBM公共許可證分發(fā)的免費(fèi)開(kāi)源Unicode工具庫(kù),開(kāi)發(fā)者可以使用ICU4J根據(jù)各地的風(fēng)俗和語(yǔ)言習(xí)慣,實(shí)現(xiàn)對(duì)數(shù)字、貨幣、時(shí)間、日期、和消息的格式化、解析,對(duì)字符串進(jìn)行大小寫(xiě)轉(zhuǎn)換、整理、搜索和排序等功能。5. 開(kāi)始支持Java 8
從Android N開(kāi)始,開(kāi)發(fā)者可以使用Java 8來(lái)編寫(xiě)應(yīng)用程序,目前Android N對(duì)于Java 8的支持并不全面,但這依然是一個(gè)重量級(jí)的更新。目前支持以下內(nèi)容:
默認(rèn)和靜態(tài)接口方法:使開(kāi)發(fā)者可以修改接口而不破壞原來(lái)實(shí)現(xiàn)類的結(jié)構(gòu);
Lambda表達(dá)式:不僅讓代碼變得更簡(jiǎn)單、更可讀、最重要的是代碼量也隨之減少很多;
重復(fù)注解:允許在同一申明類型(類,屬性,或方法)的多次使用同一個(gè)注解,提高可讀性;
反射及語(yǔ)言相關(guān)的API;
公用工具API;為了使用Java8同時(shí)還需要引入Jack編譯工具鏈,與傳統(tǒng)編譯工具鏈相比的優(yōu)勢(shì)在于全部開(kāi)源,編譯速度更快。Jack編譯工具鏈完整地包含了重打包,壓縮,混淆,MultiDex工具,使用Jack編譯工具鏈之后將不需要再依賴類似ProGuard和Jarjar之類的單獨(dú)組件。
Jack編譯工具鏈向下支持到Android 2.3應(yīng)用的編譯。同時(shí)Jack也是一套面向未來(lái)的編譯工具鏈,未來(lái)預(yù)計(jì)還會(huì)支持Java 9,以及Java X。
開(kāi)發(fā)者也可以繼續(xù)使用Java7開(kāi)發(fā)針對(duì)Android N的應(yīng)用程序,但是編譯時(shí)依然要使用JDK8。Jack編譯工具鏈雖然非常誘人,但是對(duì)于開(kāi)發(fā)者來(lái)說(shuō)依然要做好充分的準(zhǔn)備和測(cè)試工作。
6. 增強(qiáng)多語(yǔ)言支持 (Language and Locale)
在Android N之前的系統(tǒng)中,多語(yǔ)言的匹配略顯粗暴,例如一個(gè)講法語(yǔ)(瑞士)的用戶,使用一個(gè)包含默認(rèn)英語(yǔ)(美國(guó))和法語(yǔ)(法國(guó))資源的應(yīng)用對(duì)于Android開(kāi)發(fā)者來(lái)說(shuō),雖然Android N提供了容錯(cuò)能力更強(qiáng)的語(yǔ)言匹配方案,但這是以延長(zhǎng)匹配時(shí)間為代價(jià)的,因此為了加快語(yǔ)言匹配速度,提高資源可維護(hù)性,應(yīng)該將各種語(yǔ)言資源盡量提升到同源語(yǔ)目錄下。例如將es-US和es-ES合并到es-419目錄下。Android N提供了接口獲取用戶設(shè)置的語(yǔ)言列表,應(yīng)用在顯示多語(yǔ)言內(nèi)容時(shí),應(yīng)該考慮到語(yǔ)言列表的因素以提升用戶體驗(yàn)。例如對(duì)于提供網(wǎng)頁(yè)翻譯功能的瀏覽器來(lái)說(shuō),如果用戶顯示了語(yǔ)言列表中任意一種語(yǔ)言,就不應(yīng)該再提示用戶翻譯。
7. 更加省電 (Efficiency)
在安卓6.0中,安卓引入了新的省電機(jī)制Doze,當(dāng)時(shí)針對(duì)的場(chǎng)景只是當(dāng)手機(jī)同時(shí)處于滅屏以及靜止?fàn)顟B(tài)來(lái)減少應(yīng)用對(duì)電量的消耗。但是在實(shí)際使用中手機(jī)滅屏?xí)r不僅僅是處于靜止?fàn)顟B(tài),還有很多情況下是處于運(yùn)動(dòng)狀態(tài)的,例如步行,坐車(chē),坐飛機(jī)等情況,這時(shí)Doze就不會(huì)生效。比如你出門(mén)在外把手機(jī)放在褲子口袋,若是Android 6.0的Doze則會(huì)認(rèn)為用戶還可能會(huì)使用設(shè)備而不啟動(dòng)后臺(tái)省電管理機(jī)制。Android N在此基礎(chǔ)上更進(jìn)了一步,將Doze的作用范圍擴(kuò)展到手機(jī)滅屏的所有時(shí)間段,無(wú)論是處于靜止還是運(yùn)動(dòng),省電效果也有望進(jìn)一步提高。
當(dāng)然,AndroidN的出現(xiàn)對(duì)于開(kāi)發(fā)者來(lái)說(shuō)是新的挑戰(zhàn),在Android日新月異的發(fā)展進(jìn)化下,Android開(kāi)發(fā)者優(yōu)異性更加推動(dòng)了Android開(kāi)發(fā)市場(chǎng)前景,高薪資加上完美就業(yè)環(huán)境,多數(shù)開(kāi)發(fā)者的選擇。
查看更多關(guān)于“Android培訓(xùn)資訊”的相關(guān)文章>>