android 6.0 7.0 8.0 9.0新特性

6.0新特性

运行时权限

此版本引入了一种新的权限模式,如今,用户可直接在运行时管理应用权限。

取消支持 Apache HTTP 客户端

Android 6.0 版移除了对 Apache HTTP 客户端的支持。如果您的应用使用该客户端,并以 Android 2.3(API 级别 9)或更高版本为目标平台,请改用 HttpURLConnection 类。此 API 效率更高,因为它可以通过透明压缩和响应缓存减少网络使用,并可最大限度降低耗电量。

通知

此版本移除了 Notification.setLatestEventInfo() 方法。请改用 Notification.Builder 类来构建通知。

音频管理器变更

不再支持通过 AudioManager 类直接设置音量或将特定音频流静音。setStreamSolo() 方法已弃用,您应该改为调用 requestAudioFocus() 方法。类似地,setStreamMute() 方法也已弃用,请改为调用 adjustStreamVolume() 方法并传入方向值 ADJUST_MUTE 或 ADJUST_UNMUTE。

Android 密钥库变更

从此版本开始,Android 密钥库提供程序不再支持 DSA。但仍支持 ECDSA。

 

7.0新特性

新的Notification

Android N 添加了很多新的notifications API

多窗体支持(分屏模式)

  • 手机和平板: 用户能够并排运行两个应用,或者处于分屏模式时一个应用位于还有一个应用之上。用户能够通过拖动两个应用之间的分隔线来调整应用。

     

     

  • Android TV: 应用能够将自身置于画中画模式。从而让它们能够在用户浏览或与其它应用交互时继续显示内容。

Project Svelte:后台优化

Project Svelte在持续改善,以最大程度降低生态系统中一系列 Android 设备中系统和应用使用的 RAM。在 Android N 中,Project Svelte 注重优化在后台中运行应用的方式。

 

后台处理是大多数应用的一个重要部分。

处理得当,可实现非常棒的用户体验—即时、高速和情境感知。假设处理不得当,后台处理会毫无必要地消耗 RAM和电池,同一时候影响其它应用的系统性能。

 

Android N 删除了三项隐式广播(CONNECTIVITY_ACTION、ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO) 
。以帮助优化内存使用和电量消耗。

此项变更非常有必要,由于隐式广播会在后台频繁启动已注冊侦听这些广播的应用,删除这些广播能够显著提升设备性能和用户体验。

 

移动设备会经历频繁的连接变更,比如在 Wi-Fi 和移动数据之间切换时。眼下,能够通过在应用清单文件里注冊一个接收器来侦听隐式 CONNECTIVITY_ACTION广播,让应用能够监控这些变更。由于非常多应用会注冊接收此广播,因此单次网络切换即会导致全部应用被唤醒并同一时候处理此广播。同理,应用能够注冊接收来自其它应用(比如相机)的隐式ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO 广播。当用户使用相机应用拍摄照片时。这些应用即会被唤醒处理广播。

为减缓这些问题。Android N应用了下面优化措施:

1、面向 Android N 开发的应用不会收到 CONNECTIVITY_ACTION 广播,即使它们已有清单条目来请求接受这些事件的通知。在前台运行的应用假设使用BroadcastReceiver请求接收通知,则仍能够在主线程中侦听CONNECTIVITY_CHANGE。

2、 应用无法发送或接收 ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO广播。此项优化会影响全部应用,而不仅仅是面向 Android N 的应用。

未来的 Android 版本号还可能会弃用其它隐式广播以及未绑定的后台服务。有鉴于此。应避免依赖在清单文件里声明的接收器来侦听隐式广播或删除此依赖关系,以及避免或删除对后台服务的依赖关系。

 

Android 框架提供多种解决方式来降低这些隐式广播或后台服务的必要性。比如,JobScheduler API 提供了一个稳健可靠的机制来安排满足指定条件(比如连入不按流量计费的网络)时所运行的网络操作。甚至能够使用JobScheduler来响应内容提供程序所发生的变更。

权限更改

随着Android版本号越来越高,Android对隐私的保护力度也越来越大。

从Android6.0引入的动态权限控制(Runtime Permissions)到Android7.0的“私有文件夹被限制訪问”,“StrictMode API 政策”。这些更改在为用户带来更加安全的操作系统的同一时候也为开发人员带来了一些新的任务。怎样让你的APP能够适应这些改变而不是cash,是摆在每一位Android开发人员身上的责任。

 

 

 

8.0  新特性

通知渠道 — Notification Channels

创建通知渠道的步骤:

  1. 创建 NotificationChannel 对象,并设置应用内唯一的通知 ID。
  2. 配置通知渠道的属性,比如提示声音等。
  3. 在 NotificationManager 中注册通知渠道对象。

画中画模式 — PIP

Android O 现已支持 Activity 的画中画模式。PIP 是一种多窗口显示模式,多用于视频播放,即你可以一边发微信一边看视频。

开发指南

1> 关于生命周期

PIP 模式不会改变 Activity 的生命周期。在指定时间只有最近与用户交互过的 Activity 为活动状态。 该 Activity 将被视为顶级 Activity。 所有其他 Activity 虽然可见,但均处于暂停状态。当一个 Activity 处于 PIP 模式时,其实它是出在暂停状态,但其内容会继续展示。

2> API变更

在 Android O 中新增 PictureInPictureArgs 对象来指明你的 Activity 在 PIP 模式中的属性,比如长宽比等。

Android O 还新增了以下方法来支持 PIP。

  1. Activity.enterPictureInPictureMode(PictureInPictureArgs args):将Activity置于 PIP 模式之下。
  2. Activity.setPictureInPictureArgs():用于更新 Activity 在 PIP 模式下的设置。如果 Activity 正处于 PIP 模式之下,那么更改的属性将立即生效。

自适应图标 —— Adaptive Icons

创建你的自适应图标

首先你需要在 Application 标签中加入 Android:icon 属性,定义你的 icon 图标。其次如果你需要创建一个原型的 icon,你还需要加入 Android:roundIcon 属性。

接下来,你需要 res/mipmap-anydpi/ic_launcher.xml 文件中定义您的图层。在 选项中加入您的前景和背景图层。

 9.0新特性

室内WIFI定位

Android P增加了对RTT Wi-Fi协议的支持,以此作为室内定位的基础。 

刘海”屏幕支持

Android P 支持了手机屏幕是不规则形状时的获取(主要是应对刘海屏吧)。可以使用类似windowInsets.getDisplayCutout()来获取一些你想要的信息。

从Android 7.0开始,就优化了Android通知栏的体验。 
在P当中,又新增了下述功能: 
支持图像:Android P现在在手机上的消息通知中显示图像。您可以在消息上使用setData()来显示图像。 
会话参与者的简化支持:新的Notification.Person类用于标记参与聊天的人,包括他们的头像和URI。还有其他的一些API,现在都用Person类作为标志参数而不是CharSequence。

通道设置、广播以及免打扰

Android O引入了Notification Channels,可让您为要显示的每种类型的通知创建一个用户可自定义的频道。

多相机支持和相机更新

现在,可以同时从两个或更多的物理摄像头同时获得数据流。在具有双前置或双后置摄像头的设备上,可以实现无法使用单个摄像头实现的功能

新的图片解码
Android P新增了ImageDecoder类,为解码图像提供了一种更优的方法。由此可以用ImageDecoder来替换BitmapFactory和BitmapFactory.Options。更多使用方法请参见官方API。

String filePath = "test";
File file = new File(filePath);
ImageDecoder.Source source = ImageDecoder.createSource(file);
ImageDecoder.decodeBitmap(source);
ImageDecoder.decodeDrawable(source, (imageDecoder, imageInfo, source1) -> {
    //裁剪图像
    imageDecoder.setCrop();
    //调整大小
    imageDecoder.setResize();
});
BitmapFactory.decodeFile(filePath);

动画
Android P引入了一个新的AnimatedImageDrawable类来绘制和显示GIF和WebP动画图像。 AnimatedImageDrawable与AnimatedVectorDrawable类似,因为AnimatedImageDrawable动画也是基于RenderThread工作的。 RenderThread本身在内部使用工作线程进行解码,因此解码不会干扰RenderThread。 这种实现允许您的应用拥有动画图像,而无需管理其更新或干扰应用的UI线程。

Drawable d = ImageDecoder.decodeDrawable(...);
if (d instanceof AnimatedImageDrawable) {
    // Prior to start(), the first frame is displayed
    ((AnimatedImageDrawable) d).start();  
}

HDR VP9视频,HEIF图像压缩和媒体API

Android P增加了对HDR VP9 Profile 2的内置支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值