值得你关注的Android7.0上的重要变化

Android7.0系统为我们带来很多新功能,应用开发带来的很多新变化需要注意。

值得高兴的是,现在Android新版变化有了中文说明,虽然翻译还有欠缺,但了胜于无(而且英文版的内容会更多些,可能中文翻译滞后)。链接如下(需要科学上网,如果有需要,我可以转载过来):

首页索引:https://developer.android.com/about/versions/nougat/index.html

功能变化:https://developer.android.com/about/versions/nougat/android-7.0.html

行为变更:https://developer.android.com/about/versions/nougat/android-7.0-changes.html


本文在简单罗列功能变化时,着重强调这些变化对开发和使用带来的影响,结合自身情况值得去关注的方面。

一、功能变化

1.多窗口支持(Multi-window Support)

在Android7.0设备上,用户可以在手机和平板的屏幕上同时显示两个应用,在 Android TV 设备上,则可以进入画中画模式。

注意:

(1)进入分屏模式

在打开的应用页面,长按多任务键;或单击多任务键,调出历史应用卡片,选择一个应用卡片长按即会提示“在此处拖动即可使用分屏功能”(nexus6p 升级到7.0,下同)

(2)分屏模式下,可能你的页面显示不全,而又没有采用滑动布局,导致无法显示完整页面而影响功能使用

(3)默认情况下应用支持分屏,系统将强制调整应用大小;因此如果还没适配过,可以在Manifest中给<activity> 或 <application>的android:resizeableActivity设置为false;如果设置过强制竖屏之类的,系统将会提示不支持分屏

具体参看https://developer.android.com/guide/topics/ui/multi-window.html

分屏模式如下图:



2.通知增强功能(Notification Enhancements)

在Android7.0中重新设计了通知样式,其模板样式更新,通知可以分组显示,支持直接回复等。

需要注意的是通知图标的颜色,在statusbar中的图标是白色的,具体可看你的targetSdkVersion,如果低于20则依旧是彩色的;主要原因是Google很早就建议如下:

http://developer.android.com/design/style/iconography.html

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


3.流量节省程序(Data Saver)

在设置的“流量使用情况”中有流量节省程序的开关,开启时当设备位于按流量计费的网络上时(可以配置哪些wlan为计费的),系统屏蔽后台应用流量消耗,同时指示应用在前台尽可能使用较少的流量。


4.通知栏的快捷设置(Quick Settings Tile API):

通知栏下拉后,快捷设置图标可设置;应用可以为自己添加快捷设置入口,具体参看

https://developer.android.com/reference/android/service/quicksettings/Tile.html


5.网络安全性配置(Network Security Config)

在 Android7.0中,通过使用“网络安全性配置”XML文件描述(避免过去使用X509TrustManager,信任所有证书等问题),应用可以安全地自定义其安全(HTTPS、TLS)连接的行为,无需任何代码修改。

支持的功能:自定义信任的 CA集;配置用于调试的CA;明文流量选择退出(让应用可以在限定域名上,防止自身意外使用明文流量);证书固定(安全连接限制信任的服务器的公钥集)

如需了解详细信息https://developer.android.com/training/articles/security-config.html

注意:默认情况下,应用的安全(例如 TLS、HTTPS)连接均信任预装的系统 CA,而targetSdkVersion API 在23 (Android M) 及更低时,应用默认情况下还会信任用户添加的 CA 存储。所以通过Fiddler查看https流量安装证书时需要留意。


6.作用域目录访问(Scoped Directory Access)

文档中说明提供简化的全新 API 以访问通用外部存储目录,但个人感觉manifest中声明READ_EXTERNAL_STORAGE 或 WRITE_EXTERNAL_STORAGE似乎更方便。


7.VR支持(VR Support)

详情参阅Google VR SDK for Android[https://developers.google.com/vr/android/]

8.FrameMetricsListener API 允许应用监测它的 UI 渲染性能


9.屏幕缩放(Screen Zoom)

Android7.0支持用户设置显示尺寸,以放大或缩小屏幕上的所有元素,在设置的显示中调整。

注意:此项功能对老年人非常实用(过去仅能调整字体大小),但是如果你的UI元素大小直接像素控制,很有可能显示被截断;而且targetSdkVersion在23或更低时,系统会自动终止其所有后台进程,而高版本的应用会收到变更通知

显示大小调整截图如下:



二、行为变更

1.Doze模式

Android6.0中已经引入了Doze模式,当设备未连接接电源、处于静止状态且屏幕关闭一段时间后,该模式会推迟应用的CPU请求和网络活动。在Android7.0上修改了上述规则则,即设备不一定要处于静止状态。其实6.0上的条件还算比较苛刻的,屏幕关闭时间有的长达半小时到一小时,导致在6.0的大部分设备上并没有限制多少应用的活动。


2.Project Svelte:后台优化(Background Optimizations)

在Android7.0上删除了三项隐式广播,分别是网络变化CONNECTIVITY_ACTION 广播,拍照录像的ACTION_NEW_PICTURE 和 ACTION_NEW_VIDEO 广播

注意:应用如果动态注册使用BroadcastReceiver请求接收通知,则仍可以在主线程中侦听CONNECTIVITY_CHANGE,而通过静态注册,且如果targetSdkVersion不是24时,暂不受影响。


3.系统权限更改(Permissions Changes)

应用私有目录被限制访问(0700)

(1)过去给SharedPreferences设置MODE_WORLD_READABLE 或 MODE_WORLD_WRITEABLE将触发SecurityException

(2)通过传递file://URI 可能导致接收的应用无法打开文件

(3)DownloadManager 不再按文件名分享私人存储的文件。 旧版应用在访问 COLUMN_LOCAL_FILENAME 时可能出现无法访问的路径。

(4)StrictMode下,直接不允许向应用外公开 file:// URI(文档中在“应用间共享文件Sharing Files Between Apps”里描述,并推荐FileProvider 类)


4.NDK应用链接至平台库(NDK Apps Linking to Platform Libraries)

在Android7.0上做了一些命名空间更改,以阻止加载非公开 API。应用中通过jni代码只能访问Android平台提供的公开 API。在下一个官方发布的 Android 版本上使用非公开 API 会导致应用崩溃

官网提供如下表格:


转载请注明出处:http://blog.csdn.net/w7849516230,欢迎关注微信公众号“编程阳光”


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值