android 6.0 新技术,Android 6.0 新特性 整理 资料来自网络

Android 6.0新特性

Runtime Permissions

Doze and App Standby

Apache HTTP Client Removal

BoringSSL

Access to Hardware Identifiers

Notifications

AudioManager Changes

Text Selection

Browser Bookmark Changes

Android Keystore Changes

Wi-Fi and Networking Changes

Camera Service Changes

Runtime

APK Validation

USB Connection

Android for Work Changes

运行时权限-Runtime Permissions

引入了新的权限模型

6.0之前的版本中,关于权限部分的管理,是在APP安装的时候,出现一个权限的列表,同意则继续安装,之后的使用过程中无法重现的去修改权限--不利于用户体验啊

其实现在很多的ROM厂家都已经创建了自己的权限管理的APP,就比如我手里面这个魅族手机中的手机管家,里面就有对每个APP权限的管理。某种意义上也是市场的需求。

现在6.0的版本中,增加了这一功能。具体的细节如下。

主要分两类:normal permission 和 dangerous permission

normal permission:不涉及用户隐私,不需要用户进行授权的

dangerous permission:涉及用户隐私的,需要用户授权

相关的API

检查权限:

public int checkSelfPermission(String permission)

activity中直接调用,有返回值,int类型

分别对应:

PackageManager.PERMISSION_GRANTED

PackageManager.PERMISSION_DENIED

申请授权

public final void requestPermissions(String[] permissions, int requestCode) {}

activity中直接调用,无返回值。

当调用该方法的时候,手机界面上会弹出让用户操作的对话框,操作结束会触发回调函数onRequestPermissionsResult()

参考博客

Doze and App Standby

6.0新版本中提供了两种省电延长电池寿命的功能,分别是doze和app standby

谷歌便是,屏幕处于关闭状态,平均续航时间提高30%

什么时候进入doze

用户不操作设备一段时间

屏幕关闭

设备未充电

doze下有哪些限制

网络关闭

wake lock会被屏蔽

AlarmManager 定时任务延迟到下一个 maintenance window 进行处理,除非使用android6.0在AlarmManager新增加的方法: setAndAllowWhileIdle() 或者 setExactAndAllowWhileIdle()

系统将不扫描热点 WIFI

同步工作将被禁止

不允许 JobScheduler 进行任务调度

App Standby

当用户一段时间内不操作app,该app就会处于standby状态,处于这个状态的时候,会有一些限制,比如系统将允许空闲app一天一次访问网络

无需关闭屏幕也会进入app standby模式下的空闲状态

参考博客

Apache HTTP Client Removal

6.0里面已经将httpclient给移除了,替代的它的时候httpURLConnection

BoringSSL

没做过ndk, 大概是安全加密方面的东西,用这个BoringSSL提到原来的openSSL

Access to Hardware Identifiers

以后蓝牙和Wi-Fi的Mac地址,将不再被获取了

会返回一个默认的值:02:00:00:00:00:00

但是有网友发现还是可以通过Java获取设备网络设备信息的API—— NetworkInterface来获取Mac地址

参考博客

Notifications

移除了Notification.setLatestEventInfo() 。需要通过Notification.Builder来构建Notification

AudioManager Changes

此版本不再支持通过AudioManager类来直接对特定的音频流设置音量和静音,因此:

setStreamSolo()方法过时(deprecated),替换调用requestAudioFocus()方法

setStreamMute()方法过时,替换调用为adjustStreamVolume()方法,传入的值也变为ADJUST_MUTE 或 ADJUST_UNMUTE

Text Selection

在屏幕上长按进行文本选择的时候,或出现一个浮动的框框

Browser Bookmark Changes

此版本中移除了全局书签的支持。对应的方法和权限都可以移除,app需自己保存书签数据

Android Keystore Changes

此版本上Android Keystore provider不再支持DSA,仍旧支持ECDSA。

Wi-Fi and Networking Changes

现在app只能够修改自己创建的WifiConfiguration,对用户或者其它app创建的WifiConfiguration不能操作

之前,应用可以使用enableNetwork(),设置disableAllOthers=true,来使设备断开其它网络,如蜂窝网络,而强制连接指定的Wi-fi网络。在此版本上,设备将不会从其它网络断开连接。如果你的app的targetSdkVersion是20或者更低,将固定在选择的Wi-Fi网络。如果targetSdkVersion是21或者更高,使用multinetwork APIs (如openConnection(), bindSocket()和bindProcessToNetwork()方法)来保证网络流量被发送到指定的网络上。

Camera Service Changes

原来相机服务是“先来先服务”,根据请求的顺序来执行的。

现在改为基于优先级。高等级进程会驱逐低等级进程

Runtime

APK Validation

更加严格的apk验证机制。apk在修改任何内容后都必须重现签名

USB Connection

通过USB连接设备的时候,默认仅采用充电模式。需要传输数据必须明确的用户授权

Android for Work Changes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值