先看下android官网 API Kitkat(4.4 巧克力)的新特性:

https://developer.android.com/about/versions/android-4.4.html

Lollipop(5.0 棒棒糖)的新特性:

https://developer.android.com/about/versions/android-5.0-changes.html

MarshMallow(6.0 棉花糖)新特性:

https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html

Nougat(7.0 牛轧糖)的新特性:

https://developer.android.com/about/versions/nougat/android-7.0-changes.html

下面我来具体的说一下各个版本的重点更新:

Kitkat(4.4):

1,权限问题

您的应用在 Android 4.4 上运行时无法读取外部存储空间上的共享文件,除非您的应用具有 READ_EXTERNAL_STORAGE 权限。也就是说,没有此权限,您无法再访问 getExternalStoragePublicDirectory() 返回的目录中的文件。但是,如果您仅需要访问

现在,您可以使用新主题背景 Theme.Holo.NoActionBar.TranslucentDecor 和 Theme.Holo.Light.NoActionBar.TranslucentDecor 将系统状态栏设置为部分透明。通过启用透明系统状态栏,您的布局将填充系统状态栏后面的区域,因此,您也必须为不应被系统状态栏覆盖的布局部分启用 fitsSystemWindows

如果您要创建自定义主题背景,则将其中某个主题背景设置为父主题背景,或在您的主题背景中添加 windowTranslucentNavigation 和 windowTranslucentStatus 样式属性。

增强的通知侦听器

  getExternalFilesDir() 提供的您的应用特有目录,那么,您不需要  READ_EXTERNAL_STORAGE 权限。

您的应用必须使用  标记请求下面的新权限才能使用某些新 API:

INSTALL_SHORTCUT 允许应用在启动器中安装快捷键

UNINSTALL_SHORTCUT 允许应用在启动器中卸载快捷键

TRANSMIT_IR 允许应用使用设备的红外线发射器(如果可用)

2,,关于AlarmManager

将您的应用的 targetSdkVersion 设置为“19”或更高版本时,您使用 set() 或 setRepeating() 创建的闹铃将变得不准确。

为提高电源效率,Android 现在批处理在合理的相似时间发生的所有应用的闹铃,以便系统仅唤醒设备一次,而不是多次唤醒设备来处理每个闹铃。

如果您的闹铃没有与精确的时钟时间关联,但您的闹铃仍必须在特定时间范围(例如,在下午 2 点至 4 点之间)触发,那么您可以使用新的 setWindow()方法,其接受闹铃的“最早”时间以及最早时间之后的一个时间“窗口”,在这个窗口内,系统应触发闹铃。

如果您的闹铃必须固定到一个精确的时钟时间(例如,日历事件提醒),那么您可以使用新的 setExact() 方法。

这个精确的批处理行为仅适用于更新后的应用。如果您已将 targetSdkVersion 设置为“18”或更低版本,那么在 Android 4.4 上运行时,您的闹铃的行为方式和在以前版本上一样。

3,关于状态栏

现在,您可以使用新主题背景 Theme.Holo.NoActionBar.TranslucentDecor 和 Theme.Holo.Light.NoActionBar.TranslucentDecor 将系统状态栏设置为部分透明。通过启用透明系统状态栏,您的布局将填充系统状态栏后面的区域,因此,您也必须为不应被系统状态栏覆盖的布局部分启用 fitsSystemWindows

如果您要创建自定义主题背景,则将其中某个主题背景设置为父主题背景,或在您的主题背景中添加 windowTranslucentNavigation 和 windowTranslucentStatus 样式属性。

等等还有其他的重要更新,我只说一些比较常用的

MarshMallow(5.0)

1,ART(Android Runtime)

在 Android 5.0 中,ART 运行时取代 Dalvik 成为平台默认设置。Android 4.4 中已引入处于实验阶段的 ART 运行时。

关于Dalvik和ART的详解和区别可以参考以下文章:

http://blog.csdn.net/luoshengyang/article/details/39256813(老罗的深入分析ART)

http://www.jb51.net/article/88708.htm(区别的概述)

2,通知

包括样式,声音和振动,浮动通知(比如微信和qq的浮动窗口的通知)

3,其他权限问题

MarshMallow(6.0)

1,权限(手动检查和提醒用户)

此版本引入了一种新的权限模式,如今,用户可直接在运行时管理应用权限。这种模式让用户能够更好地了解和控制权限,同时为应用开发者精简了安装和自动更新过程。用户可为所安装的各个应用分别授予或撤销权限。

对于以 Android 6.0(API 级别 23)或更高版本为目标平台的应用,请务必在运行时检查和请求权限。要确定您的应用是否已被授予权限,请调用新增的 checkSelfPermission() 方法。要请求权限,请调用新增的 requestPermissions() 方法。即使您的应用并不以 Android 6.0(API 级别 23)为目标平台,您也应该在新权限模式下测试您的应用。

2,Doze(休眠)

Doze模式下的app的网络连接被断开,闹钟AlarmManager失效,数分钟后应用被杀死(白名单的应用除外)

3,ART

ART 运行时环境现在可正确实现 newInstance() 方法的访问规则。此变更修正了之前版本中 Dalvik 无法正确检查访问规则的问题。如果您的应用使用 newInstance() 方法,并且您想重写访问检查,请调用 setAccessible() 方法(将输入参数设置为 true)。如果您的应用使用 v7 appcompat 库或 v7 recyclerview 库,则您必须更新应用以使用这些库的最新版本。否则,请务必更新从 XML 引用的任何自定义类,以便能够访问它们的类构造函数。

此版本更新了动态链接程序的行为。动态链接程序现在可以识别库的 soname 与其路径之间的差异(公开错误 6670),并且现在已实现了按 soname 搜索。之前包含错误的 DT_NEEDED 条目(通常是开发计算机文件系统上的绝对路径)却仍工作正常的应用,如今可能会出现加载失败。

现已正确实现 dlopen(3) RTLD_LOCAL 标记。请注意,RTLD_LOCAL 是默认值,因此不显式使用 RTLD_LOCAL 的 dlopen(3) 调用将受到影响(除非您的应用显式使用 RTLD_GLOBAL)。使用 RTLD_LOCAL 时,在随后通过调用 dlopen(3) 加载的库中并不能使用这些符号(这与由 DT_NEEDED 条目引用的情况截然不同)。

在之前版本的 Android 上,如果您的应用请求系统加载包含文本重定位信息的共享库,系统会显示警告,但仍允许加载共享库。从此版本开始,如果您的应用的目标 SDK 版本为 23 或更高,则系统会拒绝加载该库。为帮助您检测库是否加载失败,您的应用应该记录 dlopen(3) 失败日志,并在日志中加入 dlerror(3) 调用返回的问题描述文本。

4,网络WIFI

此版本对 WLAN API 和 Networking API 引入了以下行为变更。

  • 现在,您的应用只能更改由您创建的 WifiConfiguration 对象的状态。系统不允许您修改或删除由用户或其他应用创建的 WifiConfiguration 对象。
  • 在之前的版本中,如果应用利用带有 disableAllOthers=true 设置的 enableNetwork() 强制设备连接特定 WLAN 网络,设备将会断开与移动数据网络等其他网络的连接。在此版本中,设备不再断开与上述其他网络的连接。如果您的应用的 targetSdkVersion 为 “20” 或更低,则会固定连接所选 WLAN 网络。如果您的应用的 targetSdkVersion 为 “21” 或更高,请使用多网络 API(如 openConnection()bindSocket() 和新增的 bindProcessToNetwork() 方法)来确保通过所选网络传送网络流量。

4,App Links(APP关联)
  安卓6.0加强了软件间的关联,谷歌在现场展示了 一个例子,比如你的手机邮箱里收到一封邮件,内文里有以个Twitter链接,用户点击该链接可以直接跳转到Twitter应用,而不再是网页。

其他通知和改变就不一一详解了,其实主要就是增加了系统的安全性

Nougat(7.0 )

1,多屏多任务

进入后台多任务管理页面,然后按其中的一张卡片,向上推送至顶部即可开启分屏多任务,支持上下和左右分栏,允许两个App

的屏幕占比拖动

2,通知栏消息快捷回复

3,电量和内存上的进一步优化(Doze模式的优化dengdeng)



更多相关文章

  1. Cordova更改Gradle版本
  2. Android的API版本和名称对应关系
  3. android api和版本对照表
  4. android权限管理
  5. Version Code 版本设置
  6. Android SDK版本号与API Level及VERSION_CODE的对应关系
  7. android sdk 版本以及对应 API level
  8. android studio 修改jdk默认编译版本

随机推荐

  1. Android实现局部图片滑动指引效果
  2. Android(安卓)AsyncTask完全解析,带你从源
  3. Mono For Android(安卓)中重要的命名空间
  4. 横竖屏切换时候activity的生命周期 andro
  5. 疯狂Android讲义(第2版)
  6. android ART-逆向研究者的福音?
  7. Android(安卓)ImageView 总结
  8. ListView的分割线相关属性
  9. Android开发之--脚本编程
  10. 33、Android(安卓)Support兼容包详解