历代安卓版本回顾(使用者角度+开发者角度)长期更新!!!
转载请注明出处: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