轉載請註明出處:http://www.cnblogs.com/cnwutianhao/p/6676121.html 序言 Android 用甜點作為它們系統版本的代號的命名方法開始於 Andoird 1.5 發佈的時候。作為每個版本代表的甜點按照26個英文字母順序的原則進行命名:紙杯蛋糕,甜甜圈,松 ...
轉載請註明出處:http://www.cnblogs.com/cnwutianhao/p/6676121.html
序言
Android 用甜點作為它們系統版本的代號的命名方法開始於 Andoird 1.5 發佈的時候。作為每個版本代表的甜點按照26個英文字母順序的原則進行命名:紙杯蛋糕,甜甜圈,鬆餅,凍酸奶,薑餅,蜂巢。。。
Build.VERSION_CODES
Google官網地址 https://developer.android.google.cn/reference/android/os/Build.VERSION_CODES.html
Google官網對版本的描述:
Enumeration of the currently known SDK version codes. These are the values that can be found in SDK. Version numbers increment monotonically with each official platform release.
讓我們來做一個總結和回顧歷代安卓版本都發生了哪些變化(使用者角度+開發者角度),數據來源於Google開發者官網。
1.BASE
October 2008: The original, first, version of Android.
(2008年10月:Android初版)
Constant Value: 1 (0x00000001)
2.BASE_1_1
February 2009: First Android update, officially called 1.1.
(2009年2月:Android首個更新版本,官方稱之為1.1)
Constant Value: 2 (0x00000002)
3.CUPCAKE (紙杯蛋糕)
May 2009: Android 1.5.
(2009年5月:Android 1.5)
Constant Value: 3 (0x00000003)
版本更新:
使用者角度:
- 拍攝/播放影片,並支持上傳到Youtube
- 支持立體聲藍牙耳機,同時改善自動配對性能
- 最新的採用WebKit技術的瀏覽器,支持複製/貼上和頁面中搜索
- GPS性能大大提高
- 提供屏幕虛擬鍵盤
- 主屏幕增加音樂播放器和相框widgets
- 應用程式自動隨著手機旋轉
- 簡訊、Gmail、日暦,瀏覽器的用戶介面大幅改進,如Gmail可以批量刪除郵件
- 相機啟動速度加快,拍攝圖片可以直接上傳到Picasa
- 來電照片顯示
4.DONUT (甜甜圈)
September 2009: Android 1.6.
(2009年9月:Android 1.6)
Constant Value: 4 (0x00000004)
版本變化:
使用者角度:
- 重新設計的Android Market手勢
- 支持支持CDMA網路
- 文字轉語音系統(Text-to-Speech)
- 快速搜索框
- 全新的拍照介面
- 查看應用程式耗電
- 支持虛擬私人網路(VPN)
- 支持更多的屏幕解析度。
- 支持OpenCore2媒體引擎
- 新增面向視覺或聽覺困難人群的易用性插件
開發者角度:
- They must explicitly request the WRITE_EXTERNAL_STORAGE permission to be able to modify the contents of the SD card. (Apps targeting earlier versions will always request the permission.)
- They must explicitly request the READ_PHONE_STATE permission to be able to be able to retrieve phone state info. (Apps targeting earlier versions will always request the permission.)
- They are assumed to support different screen densities and sizes. (Apps targeting earlier versions are assumed to only support medium density normal size screens unless otherwise indicated). They can still explicitly specify screen support either way with the supports-screens manifest tag.
- TabHost will use the new dark tab background design.
5.ECLAIR (鬆餅)
November 2009: Android 2.0
(2009年11月:Android 2.0)
Constant Value: 5 (0x00000005)
版本變化:
使用者角度:
- 優化硬體速度
- "Car Home"程式
- 支持更多的屏幕解析度
- 改良的用戶界面
- 新的瀏覽器的用戶介面和支持HTML5
- 新的聯繫人名單
- 更好的白色/黑色背景比率
- 改進Google Maps3.1.2
- 支持Microsoft Exchange
- 支持內置相機閃光燈
- 支持數位變焦
- 改進的虛擬鍵盤
- 支持藍牙2.1
- 支持動態桌面的設計
開發者角度:
- The Service.onStartCommand function will return the new START_STICKY behavior instead of the old compatibility START_STICKY_COMPATIBILITY.
- The Activity class will now execute back key presses on the key up instead of key down, to be able to detect canceled presses from virtual keys.
- The TabWidget class will use a new color scheme for tabs. In the new scheme, the foreground tab has a medium gray background the background tabs have a dark gray background.
December 2009: Android 2.0.1
(2009年12月:Android 2.0.1)
Constant Value: 6 (0x00000006)
January 2010: Android 2.1
(2010年1月:Android 2.1)
Constant Value: 7 (0x00000007)
8.FROYO (凍酸奶)
June 2010: Android 2.2
(2010年6月:Android 2.2)
Constant Value: 8 (0x00000008)
版本變化:
使用者角度:
- 整體性能大幅度的提升
- 3G網路共用功能。
- Flash的支持。
- App2sd功能。
- 全新的軟體商店。
- 更多的Web應用API介面的開發。
9.GINGERBREAD (薑餅)
November 2010: Android 2.3
(2010年11月:Android 2.3)
Constant Value: 9 (0x00000009)
版本變化:
使用者角度:
- 增加了新的垃圾回收和優化處理事件
- 原生代碼可直接存取輸入和感應器事件、EGL/OpenGL ES、OpenSL ES。
- 新的管理視窗和生命周期的框架。
- 支持VP8和WebM視頻格式,提供AAC和AMR寬頻編碼,提供了新的音頻效果器
- 支持前置攝像頭、SIP/VOIP和NFC(近場通訊)
- 簡化界面、速度提升
- 更快更直觀的文字輸入
- 一鍵文字選擇和複製/粘帖
- 改進的電源管理系統
- 新的應用管理方式
開發者角度:
- The application's notification icons will be shown on the new dark status bar background, so must be visible in this situation.
February 2011: Android 2.3.3.
(2011年2月:Android 2.3.3)
Constant Value: 10 (0x0000000a)
11.HONEYCOMB (蜂巢)
February 2011: Android 3.0.
(2011年2月:Android 3.0)
Constant Value: 11 (0x0000000b)
版本變化:
使用者角度:
- 優化針對平板
- 全新設計的UI增強網頁瀏覽功能
- n-app purchases功能
開發者角度:
- The default theme for applications is now dark holographic: Theme_Holo.
- On large screen devices that do not have a physical menu button, the soft (compatibility) menu is disabled.
- The activity lifecycle has changed slightly as per Activity.
- An application will crash if it does not call through to the super implementation of its Activity.onPause() method.
- When an application requires a permission to access one of its components (activity, receiver, service, provider), this permission is no longer enforced when the application wants to access its own component. This means it can require a permission on a component that it does not itself hold and still access that component.
- Context.getSharedPreferences() will not automatically reload the preferences if they have changed on storage, unless MODE_MULTI_PROCESS is used.
- setMotionEventSplittingEnabled(boolean) will default to true.
- FLAG_SPLIT_TOUCH is enabled by default on windows.
- PopupWindow.isSplitTouchEnabled() will return true by default.
- GridView and ListView will use View.setActivated for selected items if they do not implement Checkable.
- Scroller will be constructed with "flywheel" behavior enabled by default.
May 2011: Android 3.1.
(2011年5月:Android 3.1)
Constant Value: 12 (0x0000000c)
版本更新:
使用者角度:
- Honeycomb 蜂巢(改進3.0BUG)
- 經過優化的Gmail電子郵箱
- 全面支持GoogleMaps
- 將Android手機系統跟平板系統再次合併從而方便開發者
- 任務管理器可滾動,支持USB 輸入設備(鍵盤、滑鼠等)
- 支持 Google TV.可以支持XBOX 360無線手柄
- widget支持的變化,能更加容易的定製屏幕widget插件
June 2011: Android 3.2.
(2011年6月:Android 3.2)
Constant Value: 13 (0x0000000d)
版本變化:
使用者角度:
- 支持7英寸設備
- 引入了應用顯示縮放功能
開發者角度:
- New FEATURE_SCREEN_PORTRAIT and FEATURE_SCREEN_LANDSCAPE features were introduced in this release. Applications that target previous platform versions are assumed to require both portrait and landscape support in the device; when targeting Honeycomb MR1 or greater the application is responsible for specifying any specific orientation it requires.
- AsyncTask will use the serial executor by default when calling execute(Params...).
- ActivityInfo.configChanges will have the CONFIG_SCREEN_SIZE and CONFIG_SMALLEST_SCREEN_SIZE bits set; these need to be cleared for older applications because some developers have done absolute comparisons against this value instead of correctly masking the bits they are interested in.
14.ICE_CREAM_SANDWICH (冰激凌三明治)
October 2011: Android 4.0.
(2011年10月:Android 4.0)
Constant Value: 14 (0x0000000e)
版本更新:
使用者角度:
- 全新的ui
- 全新的Chrome Lite瀏覽器,有離線閱讀,16標簽頁,隱身瀏覽模式等。
- 截圖功能
- 更強大的圖片編輯功能
- 自帶照片應用堪比Instagram,可以加濾鏡、加相框,進行360度全景拍攝,照片還能根據地點來排序
- Gmail加入手勢、離線搜索功能,UI更強大。
- 新功能People:以聯繫人照片為核心,界面偏重滑動而非點擊,集成了Twitter、Linkedin、Google+等通訊工具。有望支持用戶自定義添加第三方服務。
- 新增流量管理工具,可具體查看每個應用產生的流量。
- 正在運行的程式可以像電腦一樣的互相切換
- 人臉識別功能
- 系統優化、速度更快
- 支持虛擬按鍵,手機可以不再擁有任何按鍵
- 更直觀的程式文件夾:
- 平板電腦和智能手機通用
- 支持更大的解析度
- 專為雙核處理器編寫的優化驅動
- 全新的Linux內核
- 增強的複製粘貼功能
- 語音功能
- 全新通知欄:
- 更加豐富的數據傳輸功能
- 更多的感應器支持
- 語音識別的鍵盤:
- 全新的3D驅動, 游戲支持能力提升
- 全新的谷歌電子市場
- 增強的桌面插件自定義
開發者角度:
- For devices without a dedicated menu key, the software compatibility menu key will not be shown even on phones. By targeting Ice Cream Sandwich or later, your UI must always have its own menu UI affordance if needed, on both tablets and phones. The ActionBar will take care of this for you.
- 2d drawing hardware acceleration is now turned on by default. You can use android:hardwareAccelerated to turn it off if needed, although this is strongly discouraged since it will result in poor performance on larger screen devices.
- The default theme for applications is now the "device default" theme: Theme_DeviceDefault. This may be the holo dark theme or a different dark theme defined by the specific device. The Theme_Holo family must not be modified for a device to be considered compatible. Applications that explicitly request a theme from the Holo family will be guaranteed that these themes will not change character within the same platform version. Applications that wish to blend in with the device should use a theme from the Theme_DeviceDefault family.
- Managed cursors can now throw an exception if you directly close the cursor yourself without stopping the management of it; previously failures would be silently ignored.
- The fadingEdge attribute on views will be ignored (fading edges is no longer a standard part of the UI). A new requiresFadingEdge attribute allows applications to still force fading edges on for special cases.
- Context.bindService() will not automatically add in BIND_WAIVE_PRIORITY.
- App Widgets will have standard padding automatically added around them, rather than relying on the padding being baked into the widget itself.
- An exception will be thrown if you try to change the type of a window after it has been added to the window manager. Previously this would result in random incorrect behavior.
- AnimationSet will parse out the duration, fillBefore, fillAfter, repeatMode, and startOffset XML attributes that are defined.
- ActionBar.setHomeButtonEnabled() is false by default.
December 2011: Android 4.0.3
February 2012: Android 4.0.4
(2011年12月:Android 4.0.3)
(2012年2月:Android 4.0.4)
Constant Value: 15 (0x0000000f)
版本更新:
使用者角度:
- 包括修複Bug和系統的優化,並且針對圖形、資料庫、拼寫檢查、藍牙功能和其他功能的改進
- 公佈了新的API,包括聯繫人API,日曆增強,新的攝像頭應用程式,提高視頻穩定和QVGA解析度和輔助功能的改進,如屏幕的改進等
- 更快的運行性能
- Android操作系統的漏洞(電池問題)修複
- 3G/4G切換改進
- 信號強度增強
- 新的Power菜單(與之前的4.0.2不同,接近4.0.3)
- 更快速啟動
- 自動亮度調節功能改動,有了平滑的過渡。
- 重新調整了相機的Holding down按鈕
- 多點觸控的問題解決
- 自動旋轉更迅速
- 瀏覽器的性能顯著提高
- 最近應用程式列表打開更快速
- 相機UI的變化
- 音量增大
- 鍵盤問題修複
- 更新新聞及天氣應用程式的UI
- 瀏覽器中的快速控制改進
16. JELLY_BEAN (果凍豆)
June 2012: Android 4.1.
(2012年6月:Android 4.1)
Constant Value: 16 (0x00000010)
版本更新:
使用者角度:
- 基於Android 4.0改善
- “黃油”性能(Project Butter),意思是可以讓Jelly Bean的體驗像“黃油般順滑”(鎖定提升用戶頁面的速度與流暢性)
- “Google Now”可在Google日曆內加入活動舉辦時間、地點,系統就會在判斷當地路況後,提前在“適當的出門時間給予通知”,協助用戶在準時時間抵達
- 新增離線語音輸入
- 通知中心顯示更多消息
- 更多的平板優化(主要針對小尺寸平板)
- 強化Voice Search語音搜索,與S Voice類近,相當於Apple Siri
- Google Play 增加電視視頻與電影的購買
- 提升反應速度
- 強化預設鍵盤
- 大幅改變用戶界面設計
- 更多的Google雲集成
- 惡意軟體的保護措施,強化ASLR
- Google Play 採用智能升級,更新應用只會下載有改變的部分以節約時間、流量、電量,平均只需下載原APK文件的三分之一
- 不會內置Flash Player,並且Adobe聲明停止開發,但可自行安裝APK
開發者角度:
- You must explicitly request the READ_CALL_LOG and/or WRITE_CALL_LOG permissions; access to the call log is no longer implicitly provided through READ_CONTACTS and WRITE_CONTACTS.
- RemoteViews will throw an exception if setting an onClick handler for views being generated by a RemoteViewsService for a collection container; previously this just resulted in a warning log message.
- New ActionBar policy for embedded tabs: embedded tabs are now always stacked in the action bar when in portrait mode, regardless of the size of the screen.
- WebSettings.setAllowFileAccessFromFileURLs and WebSettings.setAllowUniversalAccessFromFileURLs default to false.
- Calls to PackageManager.setComponentEnabledSetting will now throw an IllegalArgumentException if the given component class name does not exist in the application's manifest.
- NfcAdapter.setNdefPushMessage, NfcAdapter.setNdefPushMessageCallback and NfcAdapter.setOnNdefPushCompleteCallback will throw IllegalStateException if called after the Activity has been destroyed.
- Accessibility services must require the new BIND_ACCESSIBILITY_SERVICE permission or they will not be available for use.
- AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS must be set for unimportant views to be included in queries.
November 2012: Android 4.2, Moar jelly beans!
(2012年11月:Android 4.2,Moar果凍豆!)
Constant Value: 17 (0x00000011)
版本更新:
開發者角度:
- Content Providers: The default value of android:exported is now false. See the android:exported section in the provider documentation for more details.
- View.getLayoutDirection() can return different values than LAYOUT_DIRECTION_LTR based on the locale etc.
- WebView.addJavascriptInterface requires explicit annotations on methods for them to be accessible from Javascript.
July 2013: Android 4.3, the revenge of the beans.
(2013年7月:Android 4.3,報複豆)
Constant Value: 18 (0x00000012)
19.KITKAT (奇巧)
October 2013: Android 4.4, KitKat, another tasty treat.
(2013年10月:Android 4.4,奇巧,另一種美味的食物)
Constant Value: 19 (0x00000013)
版本更新:
使用者角度:
- 支持語音打開Google Now (在主畫面說出“OK Google”)
- 在閱讀電子書、玩游戲、看電影時支持全屏模式(Immersive Mode)
- 優化存儲器使用,在多任務處理時有更佳工作的表現
- 新的電話通信功能
- 舊有的SMS應用程式集成至新版本的Hangouts應用程式
- Emoji Keyboard 集成至Google本地的鍵盤
- 支持Google Cloud Print服務,讓用戶可以利用戶中或辦公室中連接至Cloud Print的印表機,印出文件
- 支持第三方Office應用程式直接打開及存儲用戶在Google Drive內的文件,實時同步更新文件
- 支持低電耗音樂播放
- 全新的原生計步器
- 全新的NFC付費集成
- 全新的非Java虛擬機運行環境ART(Android Runtime)
- 支持Message Access Profile(MAP)
- 支持Chromecast及新的Chrome功能
- 支持隱閉字幕
開發者角度:
- The default result of PreferenceActivity.isValueFragment becomes false instead of true.
- In WebView, apps targeting earlier versions will have JS URLs evaluated directly and any result of the evaluation will not replace the current page content. Apps targetting KITKAT or later that load a JS URL will have the result of that URL replace the content of the current page
- AlarmManager.set becomes interpreted as an inexact value, to give the system more flexibility in scheduling alarms.
- Context.getSharedPreferences no longer allows a null name.
- RelativeLayout changes to compute wrapped content margins correctly.
- ActionBar's window content overlay is allowed to be drawn.
- The READ_EXTERNAL_STORAGE permission is now always enforced.
- Access to package-specific external storage directories belonging to the calling app no longer requires the READ_EXTERNAL_STORAGE or WRITE_EXTERNAL_STORAGE permissions.
20.KITKAT_WATCH
June 2014: Android 4.4W.
(2014年6月:Android 4.4W)
Constant Value: 20 (0x00000014)
版本更新:
開發者角度:
- AlertDialog might not have a default background if the theme does not specify one.
21.LOLLIPOP (棒棒糖)
November 2014: Lollipop.
(2014年11月:棒棒糖)
Constant Value: 21 (0x00000015)
版本更新:
使用者角度:
- 採用全新Material Design界面
- 支持64位處理器
- 全面由Dalvik轉用ART(Android Runtime)編譯,性能可提升四倍
- 改良的通知界面及新增優先模式
- 預載省電及充電預測功能
- 新增自動內容加密功能
- 新增多人設備分享功能,可在其他設備登錄自己賬號,並獲取用戶的聯繫人、日曆等Google雲數據
- 強化網路及傳輸連接性,包括Wi-Fi、藍牙及NFC
- 強化多媒體功能,例如支持RAW格式拍攝
- 強化“OK Google”功能
- 改善Android TV的支持
- 提供低視力的設置,以協助色弱人士
開發者角度:
- Context.bindService now requires an explicit Intent, and will throw an exception if given an implicit Intent.
- Notification.Builder will not have the colors of their various notification elements adjusted to better match the new material design look.
- Message will validate that a message is not currently in use when it is recycled.
- Hardware accelerated drawing in windows will be enabled automatically in most places.
- Spinner throws an exception if attaching an adapter with more than one item type.
- If the app is a launcher, the launcher will be available to the user even when they are using corporate profiles (which requires that the app use LauncherApps to correctly populate its apps UI).
- Calling Service.stopForeground with removeNotification false will modify the still posted notification so that it is no longer forced to be ongoing.
- A DreamService must require the BIND_DREAM_SERVICE permission to be usable.
22.LOLLIPOP_MR1
March 2015: Lollipop with an extra sugar coating on the outside!
(2015年3月:棒棒糖外加額外的糖衣!)
Constant Value: 22 (0x00000016)
23.M (棉花糖)
August 2015: Marshmallow.
(2015年8月:棉花糖)
Constant Value: 23 (0x00000017)
版本更新:
使用者角度:
- 應用許可權管理
- SD卡可能和內置存儲“合併”
- Android Pay
- 原生指紋識別認證
- 自動應用數據備份
- App Links(儘量減少諸如“你想要使用什麼來打開這個?”的提醒)
- 打盹和應用待機功能
- 多視窗
- 主題支持
- Dark主題
- 可定製的Quick Toggles和其他UI調整
- 可視化的語音郵件支持
- 重新設計的時鐘插件和音樂識別插件
- 在設置中新出現的全新“Memory”選項條目(早期版本出現,不過後來被隱藏)
- 在完成截圖之後可以通過通知中心直接刪除截圖
- Google Now Launcher支持橫屏模式
- 帶滾動條和垂直滾動條支持的全新應用和視窗小部件抽屜
- 內置的文件管理器能夠獲得功能方面的明顯升級
- 支持原生點擊喚醒功能
- 可以選擇“heads up”或者“peeking” 通知
- 原生4K輸出支持
- 嚴格的APK安裝文件驗證
- 支持MIDI
- USB Type-C埠支持
- 全新的啟動動畫
- 引入“語音交互”API在應用中提供更好的語音支持
- 可通過語音命令切換到省電模式
- 可以通過藍牙鍵盤快捷方式來撤銷和重做文本
- 在聯繫人應用中能夠對已經添加的聯繫人進行合併、刪除或者分享功能。
- 會有針對文本選擇的浮動工具欄出現,以便於更快的選擇文本
- 預設應用的UI
- 允許通過分享菜單直接分享給聯繫人好友
- 更細化的應用程式信息
- 原生藍牙手寫筆支持
- 分屏鍵盤
- 移動的收音機
- Mobile Radio Active服務電池續航BUG將會被修複
- 除重覆來電之外優化勿擾模式
- 藍牙掃描來改善定位精準度
- 原生Flashlight API
- 更容易訪問控制多個聲音空控制(鈴聲、多媒體和鬧鐘)
- 更平滑的聲音滑塊
開發者角度:
- Runtime permissions. Dangerous permissions are no longer granted at install time, but must be requested by the application at runtime through requestPermissions(String[], int).
- Bluetooth and Wi-Fi scanning now requires holding the location permission.
- AlarmManager.setTimeZone will fail if the given timezone is non-Olson.
- Activity transitions will only return shared elements mapped in the returned view hierarchy back to the calling activity.
- View allows a number of behaviors that may break existing apps: Canvas throws an exception if restore() is called too many times, widgets may return a hint size when returning UNSPECIFIED measure specs, and it will respect the attributes foreground, foregroundGravity, foregroundTint, and foregroundTintMode.
- MotionEvent.getButtonState will no longer report BUTTON_PRIMARY and BUTTON_SECONDARY as synonyms for BUTTON_STYLUS_PRIMARY and BUTTON_STYLUS_SECONDARY.
- ScrollView now respects the layout param margins when measuring.
24.N (牛軋糖)
June 2016: Nougat.
(2016年6月:牛軋糖)
Constant Value: 24 (0x00000018)
版本更新:
使用者角度:
●分屏多任務
進入後臺多任務管理頁面,然後按住其中一個卡片,然後向上拖動至頂部即可開啟分屏多任務,支持上下分欄和左右分欄,允許拖動中間的分割線調整兩個APP所占的比例。
目前,安卓7.0開發者預覽版支持全部第三方應用嘗試分屏操作,但個別應用適配可能存在問題,分屏後可能導致界面顯示不全等問題。
●全新下拉快捷開關頁
在安卓7.0中,下拉打開通知欄頂部即可顯示5個用戶常用的快捷開關,支持單擊開關以及長按進入對應設置。
如果繼續下拉通知欄即可顯示全部快捷開關,此外在快捷開關頁右下角也會顯示一個“編輯”按鈕,點擊之後即可自定義添加/刪除快捷開關,或拖動進行排序。
●通知消息快捷回覆
安卓7.0加入了全新的API,支持第三方應用通知的快捷操作和回覆,例如來電會以橫幅方式在屏幕頂部出現,提供接聽/掛斷兩個按鈕;信息/社交類應用通知,還可以直接打開鍵盤,在輸入欄里進行快捷回覆。
●通知消息歸攏
安卓7.0會將同一應用的多條通知提示消息歸攏為一項,點擊該項即可展開此前的全部通知,允許用戶對每個通知執行單獨操作。
●夜間模式
安卓7.0中重新加入了夜間深色主題模式,該功能依然需要在系統調諧器中開啟,從頂部下劃打開快捷設置頁,然後長按其中的設置圖標,齒輪旋轉10秒鐘左右即可提示已開啟系統調諧器,之後用戶在設置中即可找到“系統調諧器”設置項。
點開其中的“色彩和外觀”,即可找到夜間模式,開啟後即可使用全局的深色主題模式,同時亮度和色彩也會進行一定的調整,該功能可以基於時間或地理位置自動開啟。另外,系統調諧器中也提供了RGB紅綠藍三色調節滑動條,允許用戶手動精細調節,例如減少藍色或增加紅色以提供類似護眼模式的效果。
●流量保護模式
安卓7.0新增的流量保護模式不僅可以禁止應用在後臺使用流量,還會進一步減少該應用在前臺時的流量使用。
其具體實現原理目前尚不清楚,推測其有可能使用了類似Chrome瀏覽器的數據壓縮技術。
此外,谷歌還擴展了ConnectivityManager API的能力,使得應用可以檢測系統是否開啟了流量保護模式,或者檢測自己是否在白名單中。安卓7.0允許用戶單獨針對每個應用,選擇是否開啟數據保護模式。
●全新設置樣式
安卓7.0啟用了全新的設置樣式,首先每個分類下各個子項之間的分割線消失了,只保留分類之間的分割線。全新的設置菜單還提供了一個綠色的頂欄,允許用戶通過後方的下拉箭頭,快速設定勿擾模式等。
除了勿擾模式外,頂欄菜單還可以顯示諸多其他的設置狀態,例如數據流量的使用情況,自動亮度是否開啟等。谷歌也在安卓7.0的設置中加入了漢堡菜單,在二級設置界面中的左上角,你就會看到這個漢堡菜單,點擊後即可看到所有設置項,方便用戶快速跳轉。
●改進的Doze休眠機制
谷歌在安卓7.0中對Doze休眠機製做了進一步的優化,在此前的安卓6.0中,Doze深度休眠機制對於改善安卓的續航提供了巨大的作用。
而在安卓7.0中,谷歌對Doze進行了更多的優化,休眠機制的使用規則和場景有所擴展,例如只要手動在後臺刪掉應用卡片,關屏後該應用就會被很快深度休眠。
●系統級電話黑名單功能
安卓7.0將電話攔截功能變成了一個系統級功能。其它應用可以調用這個攔截名單,但只有個別應用可以寫入,包括撥號應用、預設的簡訊應用等。
被攔截號碼將不會出現在來電記錄中,也不會出現通知。另外用戶也可以通過賬戶體系備份和恢復這個攔截名單,以便快速導入其它設備或賬號。
●菜單鍵快速應用切換
雙擊菜單鍵,就能自動切換到上一個應用。此外,如果你不停地點擊菜單鍵的話,就會在所有應用中不間斷地輪換,應用視窗會自動放大,頂部還會出現倒計時條,停止點擊且倒計時結束後,當前應用會自動放大並返回到前臺。
開發者角度:
- DownloadManager.Request.setAllowedNetworkTypes will disable "allow over metered" when specifying only NETWORK_WIFI.
- DownloadManager no longer allows access to raw file paths.
- Notification.Builder.setShowWhen must be called explicitly to have the time shown, and various other changes in Notification.Builder to how notifications are shown.
- MODE_WORLD_READABLE and MODE_WORLD_WRITEABLE are no longer supported.
- FileUriExposedException will be thrown to applications.
- Applications will see global drag and drops as per DRAG_FLAG_GLOBAL.
- WebView.evaluateJavascript will not persist state from an empty WebView.
- AnimatorSet will not ignore calls to end() before start().
- AlarmManager.cancel will throw a NullPointerException if given a null operation.
- FragmentManager will ensure fragments have been created before being placed on the back stack.
- FragmentManager restores fragments in Fragment.onCreate rather than after the method returns.
- resizeableActivity defaults to true.
- AnimatedVectorDrawable throws exceptions when opening invalid VectorDrawable animations.
- ViewGroup.MarginLayoutParams will no longer be dropped when converting between some types of layout params (such as LinearLayout.LayoutParams to RelativeLayout.LayoutParams).
- Your application processes will not be killed when the device density changes.
- Drag and drop. After a view receives the ACTION_DRAG_ENTERED event, when the drag shadow moves into a descendant view that can accept the data, the view receives the ACTION_DRAG_EXITED event and won’t receive ACTION_DRAG_LOCATION and ACTION_DROP events while the drag shadow is within that descendant view, even if the descendant view returns false from its handler for these events.
25.N_MR1
N MR1: Nougat++.
Constant Value: 25 (0x00000019)
26.O
關註我的新浪微博,獲取更多Android開發資訊!
關註科技評論家,領略科技、創新、教育以及最大化人類智慧與想象力!