6.0(sdk23)

1.运行时权限 ,manifest声明的权限如储存、录音、拍照等要动态申请权限

2.WLAN 和网络连接变更 、相机服务变更

  1. 增加低电耗模式和应用待机模式
  2. 取消支持 Apache HTTP 客户端
  3. 移除硬件标识符访问权

7.0(sdk24)

  1. 私有文件访问权限更改(不能使用file:// Uri来访问,需要FileProvider)

res目录下创建xml/path.xml

 

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path name="external_files" path=""/>
    <files-path name="files-path" path=""/>
    <cache-path name="cache-path" path=""/>
</paths>

manifest注册

 

<provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="com.android.support.file.fileprovider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/path" />
</provider>
  1. 多窗口支持(分屏显示)
  2. 通知增强功能
  3. 随时随地低电耗模式
  4. 多语言区域支持,更多语言
  5. Chrome 和 WebView 配合使用APK signature scheme v2

8.0(sdk26)

  1. 通知渠道 NotificationChannel 
  2. 非全屏透明页面不允许设置方向
// 解决方法  在theme中声明
 <item name="android:screenOrientation">portrait</item>
 <item name="android:windowFullscreen">true</item>
  1. Service的限制,后台服务的限制
  2. 静态广播无法正常接收,原因: Android 8.0 引入了新的广播接收器限制,因此您应该移除所有为隐式广播 Intent 注册的广播接收器
    解决:动态广播替代静态广播

特性

  • 启动图标
  • 统一的布局外边距和内边距
  • 自动填充框架、画中画模式、多显示器支持、媒体增强功能

9.0(sdk28)

non-SDK接口的使用

Android P 引入了针对非 SDK 接口的新使用限制,无论是直接使用还是通过反射或 JNI 间接使用。 无论应用是引用非 SDK 接口还是尝试使用反射或 JNI 获取其句柄,均适用这些限制

刘海屏适配

Battery Improvements

谷歌功耗方案对三方应用各种管控,存在导致应用后台功能无法正常使用的可能,特别是:IM、邮箱、闹钟、音乐(直播)、地图导航、运动健康、下载、日历等应用影响比较大。目前通过谷歌提供的调试命令验证:所有的应用都有可能会被分到管控的类型,对三方的后台功能是有影响的。

  • AAB(Auto Awesome Battery)
  • Smart screen brightness:屏幕亮度调节优化算法
  • Extreme Battery Saver(EB)谷歌超级省电模式;

不允许共享WebView数据目录

应用程序不能再跨进程共享单个WebView数据目录。如果您的应用有多个使用WebView,CookieManager或android.webkit包中的其他API的进程,则当第二个进程调用WebView方法时,您的应用将崩溃

移除对 Build.serial 的直接访问

需要 Build.serial 标识符的应用必须请求 READ_PHONE_STATE 权限,然后使用 Android P 中新增的新 Build.getSerial() 函数

SELinux 禁止访问应用的数据目录

系统强制每个应用的 SELinux 沙盒对每个应用的私有数据目录强制执行逐个应用的 SELinux 限制。现在,不允许直接通过路径访问其他应用的数据目录。应用可以继续使用进程间通信 (IPC) 机制(包括通过传递 FD)共享数据

CLEARTEXT communication to life.115.com not permitted by network security policy

原因:Android P 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉
解决:

 

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

清单文件配置:

 

android:networkSecurityConfig="@xml/network_security_config"