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

   2016-10-13 0
核心提示:Android7.0系统为我们带来很多新功能,应用开发带来的很多新变化需要注意。值得高兴的是,现在Android新版变化有了中文说明,虽然翻译还有欠缺,但了胜于无(而且英文版的内容会更多些,可能中文翻译滞后)。链接如下(需要科学上网,如果有需要,我可以转载

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

分屏模式如下图:

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

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或更低时,系统会自动终止其所有后台进程,而高版本的应用会收到变更通知

显示大小调整截图如下:

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

二、行为变更

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 会导致应用崩溃

官网提供如下表格:

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

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

 
标签: 安卓开发
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 安卓中通知功能的具体实现
    安卓中通知功能的具体实现
    通知[Notification]是Android中比较有特色的功能,当某个应用程序希望给用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知实现。使用通知的步骤1、需要一个NotificationManager来获得NotificationManager manager = (NotificationManager
    02-05 安卓开发
  • Android view系统分析-setContentView
    Android view系统分析-setContentView
    第一天上班,列了一下今年要学习的东西。主要就是深入学习Android相关的系统源代码,夯实基础。对于学习Android系统源代码,也没什么大概,就从我们平常使用最基础的东西学起,也就是从view这个切入点开始学习Android的源码,在没分析源码之前,我们有的时候
    02-05 安卓开发
  • 如何进行网络视频截图/获取视频的缩略图
    如何进行网络视频截图/获取视频的缩略图
    小编导读:获取视频的缩略图,截图正在播放的视频某一帧,是在音视频开发中,常遇到的问题。本文是主要用于点播中截图视频,同时还可以获取点播视频的缩略图进行显示,留下一个问题,如下图所示, 如果要获取直播中节目视频缩略图,该怎么做呢?(ps:直播是直
  • Android NDK 层发起 HTTP 请求的问题及解决
    Android NDK 层发起 HTTP 请求的问题及解决
    前言新的一年,大家新年快乐~~鸡年大吉!本次给大家带来何老师的最新文章~虽然何老师还在过节,但依然放心不下广大开发者,在此佳节还未结束之际,给大家带来最新的技术分享~ 事件的起因不说了,总之是需要实现一个 NDK 层的网络请求。为了多端适用,还是选择
  • Android插件化(六): OpenAtlasの改写aapt以防止资源ID冲突
    Android插件化(六): OpenAtlasの改写aapt以防
    引言Android应用程序的编译中,负责资源打包的是aapt,如果不对打包后的资源ID进行控制,就会导致插件中的资源ID冲突。所以,我们需要改写aapt的源码,以达到通过某种方式传递资源ID的Package ID,通过aapt打包时获取到这个Package ID并且应用才插件资源的命名
    02-05 安卓开发
  • Android架构(一)MVP架构在Android中的实践
    Android架构(一)MVP架构在Android中的实践
    为什么要重视程序的架构设计 对程序进行架构设计的原因,归根结底是为了 提高生产力 。通过设计是程序模块化,做到模块内部的 高聚合 和模块之间的 低耦合 (如依赖注入就是低耦合的集中体现)。 这样做的好处是使得程序开发过程中,开发人员主需要专注于一点,
    02-05 安卓开发
  • 安卓逆向系列教程 4.2 分析锁机软件
    安卓逆向系列教程 4.2 分析锁机软件
    安卓逆向系列教程 4.2 分析锁机软件 作者: 飞龙 这个教程中我们要分析一个锁机软件。像这种软件都比较简单,完全可以顺着入口看下去,但我这里还是用关键点来定位。首先这个软件的截图是这样,进入这个界面之后,除非退出模拟器,否则没办法回到桌面。上面那
    02-05 安卓开发
  • Android插件化(二):OpenAtlas插件安装过程分析
    Android插件化(二):OpenAtlas插件安装过程分析
    在前一篇博客 Android插件化(一):OpenAtlas架构以及实现原理概要 中,我们对应Android插件化存在的问题,实现原理,以及目前的实现方案进行了简单的叙述。从这篇开始,我们要深入到OpenAtlas的源码中进行插件安装过程的分析。 插件的安装分为3种:宿主启动时立
    02-05 安卓开发
  • [译] Android API 指南
    [译] Android API 指南
    众所周知,Android开发者有中文网站了,API 指南一眼看去最左侧的菜单都是中文,然而点进去内容还是很多是英文,并没有全部翻译,我这里整理了API 指南的目录,便于查看,如果之前还没有通读,现在可以好好看一遍。注意,如果标题带有英文,说明官方还没有翻
  • 使用FileProvider解决file:// URI引起的FileUriExposedException
    使用FileProvider解决file:// URI引起的FileUri
    问题以下是一段简单的代码,它调用系统的相机app来拍摄照片:void takePhoto(String cameraPhotoPath) {File cameraPhoto = new File(cameraPhotoPath);Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);takePhotoIntent.putExtra(Medi
    02-05 安卓开发
点击排行