2016年5月19日,谷歌在美國加州的山景城舉辦了GoogleI/O開發者大會中發布。
在系統界面上谷歌或許已經貧乏,這也是手機整體大環境所致,因此谷歌也只好轉向修補方面,在Android M的基礎上優化,AndroidN在三個方面做了改進,分別是性能、安全、生產力。
性能
支持Vulkan API全部特性,
應用編譯與安裝方面
JIT實時編譯、混合編譯.安裝速度比現在快最多75%。
安全
1. 支持基於文件的加密
2. 無縫升級
Android N會使用兩個系統鏡像來確保OTA更新順利、安全,相比也是爲了解決Android系統碎片化的產物,谷歌提到的“無縫更新”,Android自動在後臺下載新版系統並不算是什麼新鮮事,不過在Android N當中,系統並不只是單純的後臺下載更新包而已,而是自動安裝。這意味着以後你將無需重啓手機完成更新,屆時只需正常的重啓,開機之後便是新系統了。
這種更新方式有些似曾相似,沒錯,Chromebook正是採用了這樣的更新方式。Android N有兩個系統分區,當系統發現有更新時該更新將被安裝在第二分區,而當用戶重啓手機之後第二分區則自動切換成爲主分區,從而實現“無縫更新”。
這種更新方式應該支持所有的Android N設備,不僅限於Nexus以及其它運行原生Android系統的手機。不過值得注意的是,這並不意味着OEM能更快的推進新系統的更新,這只是說當更新推送時你能更快的安裝而已。
新產品
谷歌智能語音系統
Android N將其很好的結合在了手機應用的各個方面。Allo社交應用,它不僅能夠用於溝通,還與谷歌最新的語音助手GoogleAssistant相結合。使用這款新的聊天應用時,能夠同時使用谷歌搜索、位置以及視頻應用等谷歌的服務。
Google Home+谷歌助理=全新智能家庭終端是一款智能音響,沒有任何按鈕,全靠語音控制。GoogleHome
除了能播放音樂和電影之外,還可以回答問題、設定鬧鐘或任務、記錄預訂信息和旅行計劃,甚至是控制智能家居配件,而這一切操作都要配合谷歌助理使用,而基於人工智能的谷歌助理會在用戶使用產品的過程中,一步一步地學習用戶的習慣。
推全新應用Allo/Duo:聊天與視頻都做到了
Allo是一款聊天應用,與微信、Line、Whatsapp等著名即時通訊應用類似,同時也支持圖片分享評論功能。
Duo,實際上就是安卓的視頻通話工具,當然你也可以把它看做類似於Facetime的應用,Duo是Allo視頻輔助技術,即使網速不快也能流暢通話,Duo同時支持Android和iOS。
Android Wear2.0發佈:無需連接手機也可獨立運行,AndroidWear2.0同樣進行了大幅度的優化,最重要的一點是用戶在運動時可以不用攜帶手機也可通過智能手錶進行短信,音樂等操作,同時不需要藍牙連接。
加入了全新的原生分屏多任務功能,並且加入了多任務快速切換功能,幫助用戶解決在兩個任務之間頻繁切換的問題。
新的AndroidN系統將增加一個“清除所有”的按鍵來幫助用戶快速退出所有已經打開的應用程序。對於用戶較長時間未使用的應用程序,AndroidN將會自動關閉。
1. Multi-Window Support (分屏多窗口支持)
2. Direct Replay & BundleNotifications (快捷回覆和歸攏通知)
3. Data Saver (節約數據)
4.系統層級支持了VR應用
5. 各種模式
6.新設計的系統設置界面
7.可調節顯示尺寸Multi-Window Support
Multi-Window Support (分屏多窗口支持)
簡單來說,就是屏幕上可以出現多個多個程序。想想你平時看視頻的時候來了微信消息的時候,你得退出視頻App,切到微信,回覆消息,然後再切回來重新緩衝…這種設定用戶體驗較差...
有了 Android N以後,這個問題迎刃而解!
全新的 AndroidN 下將支持兩種新的窗口模式:
1. Side-By-Side 模式:兩個App瓜分一個屏幕
2. One-above-the-other 模式:一個App浮動在另一個App之上
3. 在 Android N TV 上,還將支持Picture-in-picture(畫中畫)模式,用戶在瀏覽其他App的時候,視頻可以浮動在屏幕上。
大致效果就是下面這個樣子的:
對開發者而言,想要支持多窗口也很簡單,只需要在AndroidManifest文件里加上一個屬性即可:android:resizeableActivity=“true”|”false”
通知欄
通知欄終於支持自定義
在系統設置中,你能選擇是否顯示諸如藍牙、屏幕旋轉、音量、Wi-Fi、飛行模式等圖標,同時也能更改時間(支持具體到秒)的電池(支持百分比)的顯示樣式,而通知欄中的「快捷按鈕」也同樣支持修改,直接拖拽就能更改位置或直接替換。
Direct
Replay
新的 Android N目測是借鑑了iOS裏的快速回復功能,用戶將可以在通知欄裏快速回復消息,郵件等通信信息。對於商務人士和愛好打遊戲的玩家來說,是個很讚的功能。快速回復截圖:
Bundle
Notifications
郵件和 IM 類的 App 總是會在短時間內發來很多通知,在此之前,所有的通知欄是相互獨立的,這些新到的通
知佔用了很多空間,卻只能顯示有限的信息。歸攏通知就是把這些通知歸攏起來,邏輯性更強,展示的也會更
多。另外一大好處可能就是,用戶可以一鍵消除掉所有同一個 App 發來的通知。個人感覺這個功能比 iOS 要先進一些,很多人的 iOS 通知欄裏肯定存在着很多微信的通知對吧... 對開發者而言,全新的通知體系允許開發者更靈活的自定義通知的 UI(View)。
DataSaver
AndroidN 增加了一個系統級的控制開關:節約數據。
其實這個設定是一箇中間設定,因爲目前對於網絡數據只有開和關兩種屬性,但有的時候,比如我們月底4G數據套餐快用光了,學生在宿舍用着收費的Wifi,又或者出國漫遊,在這些場景下,我們既想開着移動數據,又想告訴所有的App,我當前的流量是有限的,大家不要用太多。當App在收到這個通知後,就會儘可能的減少網絡請求,節省用戶流量。VR平臺
正式推出了全新的VR平臺-Daydream,此平臺優化了VR的算法,有效地降低延遲,減少用戶體驗過程的中的眩暈與不適;同時Daydream由谷歌最新操作系統AndroidN設備所支持,並且只支持那些已經配置特殊傳感器和屏幕的新型手機。
谷歌在其最新的AndroidN操作系統中新增了AndroidVR模式,以此方便用戶對Daydream的使用。VR模式將帶來一系列優化,提高應用表現。Daydream的主頁讓用戶在使用頭盔的時候能夠連接到應用和內容。谷歌在本屆I/O大會上宣佈了將要生產適配Daydream的手機廠商,包括三星、HTC、LG、小米、華爲、中興、華碩等。
模式
省流量模式:它能限制應用的後臺數據、同時告訴應用「你該省點流量了」。
未來理想的情況是(國內大廠先不能指望),應用能利用好Google推出的接口,在你開啓「省流量模式」後,能夠學會在前臺後臺都省流量。
而其中的原理,也絕不是單純地關閉後臺那麼簡單。
夜間模式:更暗、更護眼
在太陽落山後自動開啓夜間模式了
Doze 省電模式
一句話解釋,就是之前是在手機平放一段時間後,纔會開啓的Doze省電模式,現在可以隨時開啓了。其中的喚醒原理有些複雜,但可以預見未來的Android應用頻繁喚醒的情況會有所改善。
新設計的系統設置界面
很多常用設置不需要進入二級頁面
可調節顯示尺寸
AndroidN將帶來一系列新的輔助功能,現在你不只可以調整字體大小,還可以調整顯示的尺寸。在系統設置中,除了字體大小,如今還可以調整顯示大小了。在放大後,頁面中的圖標、字體、按鈕等元素都將放大,而不會帶來清晰度的損耗。直接帶來的好處就是,在長輩使用手機時,也許不必再掏出眼鏡。
對於開發者而言的新特性
接下來的一部分,是 Android N 在SDK方面的一些提升。 對於開發者們而言:
1. 支持Java 8
2. Jack(JavaAndroid Compiler Kit)全新的編譯工具集
3. BackgroundOptimizations(後臺優化)
4. ScopedDirectory Access(特定文件夾權限)
5. Languageand Locale (語言和地區)
6.Direct Boot (直接啓動)
7.TV Recording(TV錄製)
8.Launcher Shortcuts
9.Vulkan3D渲染API以及EmojiUnicode
10.開發者工具更新Firebase
支持Java8
OpenJDK替換JavaAPI
因爲訴訟,Android未來將不再使用甲骨文專有JavaAPI。
但OpenJDK也是開源Java開發工具包的一部分,能夠更簡單地創建通用代碼,改善Android的開發環境,可以說是AndroidN內在的一個重大變化。
Android N開始支持Java8了
很多 Geek 開發者爲了Java中的Lambda表達式,折騰來折騰去的Retrolambda也即將要退出歷史舞臺了。Kotlin一貫標榜的便利,失色三分了。今天起,開發者也要開始學習Java8了。
Jack(Java
Android Compiler Kit)全新的編譯工具集
Jack 最大最大的優點,你不用再操心65K方法限制的問題了!Jack在Compile的時候就已經解決了!『65k方法限制』將成爲過去式中存在的名詞了。
其他的一些變化:
1. 速度(每次都會提升速度
2. Library File的後綴(變成了.jack
Background
Optimizations(後臺優化)
官方對 ACTION_NEW_PICTURE和ACTION_NEW_VIDEO移除,也提供了緩和之計。就是使用 JobScheduler 這也是Android團隊安利已久的一個定時任務方案。
而且官方還說了,未來,很會廣播機制都會有所改動。所以...國內的Android目測也會越來越好用,國內無良廠商們能玩兒花樣也會越來越少。
同時,adb 裏也增加了測試後臺服務 不可用的命令,方便開發者做測試。
禁用後臺服務:$adbshellcmd appops setRUN_IN_BACKGROUND ignore
重新啓用:$adbshellcmd appops setRUN_IN_BACKGROUND allow
Scoped
Directory Access (特定文件夾權限)
有的時候,App可能只需要讀寫特定文件夾,在此之前,你得申請READ_EXTERNAL_STORAGE 或者 WRITE_EXTERNAL_STORAGE 的權限,這個權限會讓用戶很不放心而且對於心懷鬼胎的App,沒準也會瞎搞,新的體系下,App可以申請一個特定文件夾的權限來證明自己的清白。
做個乾乾淨淨的App,就用這個特性吧!
Language
and Locale (語言和地區)
AndroidN裏用戶可以選擇多種地區。比如你會中文和日語,就是不會英語。你就可以同時選擇中國和日本。這樣App顯示語言的順序將會是中文,沒有中文優先顯示日文,而非現在的一旦找不到語言包,就默認選擇了英語。
Direct
Boot (直接啓動)
用戶在開機但是還未解鎖的情況下,很多App是無法啓動的,這會導致一些問題,比如...你設置的第三方鬧鐘可能沒響,你的微信可能收不到通知...Android N下可以申請在開機未解鎖情況下直接啓動。
TV
Recording(TV錄製)
這是 Android N TV上的一個提升,允許App錄製TV信號視頻,很爽的,比如你在加班,而冰火第六季已然已經開演,先讓TV錄下來,回去再看…就醬...
LauncherShortcuts
在蘋果的3D Touch和魅族Pro 6的3D Press之後,現在谷歌終於也加入了類似於壓力觸控的交互功能,名爲LauncherShortcuts,也就是爲應用增添了一些“右鍵選項”,比如向特定聯繫人撥打電話或發送短信,以及地圖應用直接導航回家等常用操作,而每個應用大致可添加的快捷選項可能在3至5個左右。不僅如此,谷歌表示應用的LauncherShortcuts還可直接固定在桌面上,相較於重壓呼出的方式更加直接,而這也是3DTouch所無法實現的。
Vulkan
3D渲染API以及Emoji Unicode
第二版Android N Preview還支持Vulkan 3D渲染API以及EmojiUnicode 9,前者可在降低資源佔用率的同時大幅提升渲染效果,而最新的EmojiUnicode 9則添加了不少新表情,甚至還有聳肩、捂臉和黑人警察叔叔,估計也是夠大家玩兒一陣子的了。
Firebase
本屆谷歌I/O大會還推出了新一代的移動開發者平臺Firebase,它可以幫助開發者提高開發速度、改進應用質量、獲取用戶以及更好地變現。
Firebase是同時支持Android、iOS與移動Web開發的統一應用平臺,能夠讓開發者跨平臺工作;它還能提高集成度,爲開發者提供更好的開發體驗。
背景情況是Firebase作爲一家實時後端數據庫創業公司,它能幫助開發者很快的寫出Web端和移動端的應用。2014年10月Google收購Firebase。
適配AndroidN需要注意什麼
記得 6.0對ApacheHttp庫的廢除導致的應用崩潰嗎?還記得6.0中 MACid 始終返回爲空導致的唯一id 混合生成算法大幅失效
1.Android 中Java的實現向OpenJDK8 遷移
Android 是站在 Linux和 Java肩膀上快速成長的,在運行時依賴 Oracle JDK,早在2010年甲骨文就起訴谷歌侵權Java。在N中 Google採用OpenJDK 8作爲 Java 的實現,在Java實現上的一些差別可能導致應用出問題。如:
(1) ArrayList實現中的私有屬性array被移除,反射使用該屬性的需要注意下。
(2) 隨機數種子調用可能出錯,Crypto安全提供商在OpenJDK中不提供,而它在大家調用SecureRandom.setSeed()設置隨機種子時會用到,OpenJDK中需要通過SecretKeySpec去直接加載原始密鑰或者使用真正的密鑰導出函數。
2.JNI 中不允許調用非公有 API
JNI 中不允許調用非公有API,由於命名空間的變化,在Android N 上運行會崩潰,需要切換到對應公有API。
3. “老人機的適配”
Android N 允許用戶設置顯示密度,有點像老人機模式。需要測試App 在 sw320dp密度下顯示是否正常,及配置變更後應用是否會有異常。
4. 後臺優化——三個廣播被禁止監聽或發送
(1)CONNECTIVITY_CHANGE 廣播,對targetVersion設置爲AndroidN的App,在後臺時不再能接收到CONNECTIVITY_CHANGE廣播,前臺不影響。
(2)ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO廣播,所有運行在Android N 上的 App不能發送或是接收新增圖片(ACTION_NEW_PICTURE)和新增視頻(ACTION_NEW_VIDEO)的廣播。
5. 權限改動
(1)GET_ACCOUNTS 權限被廢棄,對targetVersion設置爲AndroidN的App,GET_ACCOUNTS權限被廢棄。
(2) 增加 ACTION_OPEN_EXTERNAL_DIRECTORY權限,這個感覺就是對部存儲設備寫權限的保護,需要用戶同意,說不定以後就慢慢廢棄WRITE_EXTERNAL_STORAGE權限了。
6.更嚴格的Doze模式
大家知道在Android6.0中,在手機關屏且靜止時,Doze模式通過推遲CPU和網絡操作延長底池壽命。而Android N則在手機關屏時就會一定程度限制CPU和網絡操作,進入Doze模式一段時間後進一步限制WakeLock、Alarm、GPS和Wi-Fi掃描等,做好迎接休眠狀態下更多功能受限導致的bug吧,哈哈。
7.自帶ICU4J庫的子集
更方便App的全球化了