android app target sdk从23升级到28

  • 一、23升级到24
    • 1.隐式广播
    • 2.权限更改
    • 3.NDK 应用链接至平台库
  • 二、24升级到26
    • 1.后台服务
    • 2.语言区域和国际化
    • 3.提醒窗口
    • 4.集合的处理
    • 5.权限
  • 三、26升级到28
    • 1.Apache HTTP 客户端弃用
    • 2.对使用非 SDK 接口的限制

一、23升级到24

1.隐式广播

Android 7.0 移除了三项隐式广播,以帮助优化内存使用和电量消耗。
面向 Android 7.0 开发的应用不会收到 CONNECTIVITY_ACTION 广播,即使它们已有清单条目来请求接受这些事件的通知。在前台运行的应用如果使用 BroadcastReceiver 请求接收通知,则仍可以在主线程中侦听 CONNECTIVITY_CHANGE。
应用无法发送或接收 ACTION_NEW_PICTURE 或 ACTION_NEW_VIDEO 广播。此项优化会影响所有应用,而不仅仅是面向 Android 7.0 的应用。
修改方案:
Android 框架提供多个解决方案来缓解对这些隐式广播的需求。例如,JobScheduler API 提供了一个稳健可靠的机制来安排满足指定条件(例如连入无限流量网络)时所执行的网络操作。您甚至可以使用 JobScheduler 来适应内容提供程序变化。

2.权限更改

为了提高私有文件的安全性,面向 Android 7.0 或更高版本的应用私有目录被限制访问 (0700)。私有文件的文件权限不应再由所有者放宽,为使用 MODE_WORLD_READABLE 和/或 MODE_WORLD_WRITEABLE 而进行的此类尝试将触发 SecurityException。
对于面向 Android 7.0 的应用,Android 框架执行的 StrictMode API 政策禁止在您的应用外部公开 file:// URI。如果一项包含文件 URI 的 intent 离开您的应用,则应用出现故障,并出现 FileUriExposedException 异常。
修改方案:
要在应用间共享文件,您应发送一项 content:// URI,并授予 URI 临时访问权限。进行此授权的最简单方式是使用 FileProvider 类。

3.NDK 应用链接至平台库

从 Android 7.0 开始,系统将阻止应用动态链接非公开 NDK 库,这种库可能会导致您的应用崩溃。

二、24升级到26

1.后台服务

Android 8.0 的应用不允许其创建后台服务的情况下使用 startService() 函数,否则将引发一个 IllegalStateException。
修改方案:
修改为 Context.startForegroundService() 函数将启动一个前台服务。

2.语言区域和国际化

在 Android 8.0 中,以下函数使用 Locale.getDefault(Category.DISPLAY) 来代替 Locale.getDefault()。
Currency.getDisplayName()
Currency.getSymbol()
Locale.getDisplayScript()

3.提醒窗口

Android 8.0,使用 TYPE_APPLICATION_OVERLAY 窗口类型来显示提醒窗口。

4.集合的处理

AbstractCollection.removeAll() 和 AbstractCollection.retainAll() 始终引发 NullPointerException

5.权限

在 Android 8.0 之前,如果应用在运行时请求权限并且被授予该权限,系统会将属于同一权限组并且在清单中注册的其他权限也一起授予应用。
对于针对 Android 8.0 的应用,系统只会授予应用明确请求的权限。
例如,假设某个应用在其清单中列出 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE。应用请求 READ_EXTERNAL_STORAGE,并且用户授予了该权限。如果该应用针对的是 API 级别 24 或更低级别,系统还会同时授予 WRITE_EXTERNAL_STORAGE,因为该权限也属于同一 STORAGE 权限组并且也在清单中注册过。如果该应用针对的是 Android 8.0,则系统此时仅会授予 READ_EXTERNAL_STORAGE;不过,如果该应用后来又请求 WRITE_EXTERNAL_STORAGE,则系统会立即授予该权限,而不会提示用户。

三、26升级到28

1.Apache HTTP 客户端弃用

在 Android 6.0 中,我们取消了对 Apache HTTP 客户端的支持。 从 Android 9 开始,默认情况下该内容库已从 bootclasspath 中移除且不可用于应用。
要继续使用 Apache HTTP 客户端,以 Android 9 及更高版本为目标的应用可以向其 AndroidManifest.xml 添加以下内容:

2.对使用非 SDK 接口的限制

为帮助确保应用稳定性和兼容性,此平台对某些非 SDK 函数和字段的使用进行了限制;无论您是直接访问这些函数和字段,还是通过反射或 JNI 访问,这些限制均适用。 在 Android 9 中,您的应用可以继续访问这些受限的接口;该平台通过 toast 和日志条目提醒您注意这些接口。 如果您的应用显示这样的 toast,则必须寻求受限接口之外的其他实现策略。

android app targetsdk从23升级到28相关推荐

  1. android app 64位架构升级 适配64位cpu架构

    一. 本质 so库的升级 二.so库升级 1.so库检查 1,首先设置: abiFilters "armeabi-v7a","arm64-v8a",然后编译出对 ...

  2. android app无感知自动升级,Android中实现用户无感知处理后台崩溃

    正所谓,要想没有bug,就一行代码也不写.App到了用户的手里,肯定是崩溃越少越好.Android中的崩溃处理和iOS不太一样,iOS崩溃通常是闪退,而安卓会出现如下的蹩脚的对话框 image.png ...

  3. Android App应用包增量升级(one)

    http://kinggoo.com/bsdiffupdate.htm Android增量升级这东西很不错,当时我们这运营的人把百度的一个管理软件拿过来说他们这个升级包提示可以节省流量是怎么回事,当时 ...

  4. android app 目标版本,android – 在gradle中使用目标sdk版本23时,ZBA...

    我在我的项目中使用zbar扫描程序库.更新到sdk 23后,Marshmallow扫描仪无法正常工作.以下是gradle文件.如果我将targetSdkVersion设置为23以外的任何东西,扫描仪正 ...

  5. 【Android】app应用内版本更新升级(DownloadManager下载,适配Android6.0以上所有版本)

    目录 前言 一.实现思路 二.服务端接口 三.UI页面 三.工具类实现 1.检查版本号 2.下载apk 3.安装apk 4.实时更新下载进度 5.完整代码 三.外部使用 总结 前言 版本的升级和更新是 ...

  6. 【转】Android APP 启动黑屏优化补丁 (2016-01-18 10:35:23)

    [转]Android APP 启动黑屏优化补丁 (2016-01-18 10:35:23) 转载▼ 这个必须转,这才是高手,解决官方都解决不好的问题! 原文地址,以下为转贴内容: 使用说明 ***** ...

  7. android app升级方案,App版本升级方案

    方案一:后端处理逻辑 - 通过指定数字版本号判断 app/ipad升级 入参数: appid app应用类型:1.A商城android app.2.A商城android ipad.3.A商城 ios ...

  8. android中添加分页小表情,百度APP表情面板体验升级——小面板大文章

    原标题:百度APP表情面板体验升级--小面板大文章 导语:表情面板是百度APP互动场景中非常重要的基础输入体验功能:本文以三个核心设计环节为例,分享在不同设计阶段,对表情面板体验细节的理解和感悟,阐述 ...

  9. Android App架构设计

    前言 Web的架构经过多年的发展已经非常成熟了,我们常用的SSM,SSH等等,架构都非常标准.个人认为,Web服务逻辑比较清晰,目的明确,流程也相对固定,从服务器收到请求开始,经过一系列的的拦截器,过 ...

最新文章

  1. LeetCode 226. Invert Binary Tree--反转二叉树--C++,Python解法--递归,迭代做法
  2. qtdesigner设计表格_QT Designer基础——登录界面设计基础版
  3. c++显式加载dll并使用DLL的类
  4. Catalan数(卡特兰数)
  5. 计算机社团竞选优势6,社团社长竞选稿六篇
  6. Java实现串口通信的小样例
  7. dorado 刷新_dorado7常用内容
  8. 自建Hive数据仓库跨版本迁移到阿里云E-MapReduce
  9. 《推理的迷宫》读书笔记之一
  10. UGUI源码之绘制初探
  11. 关于路由器老毛子Padavan固件作为主副路由桥接的问题
  12. java实现筑业软件官网下载,筑业资料软件2020旗舰版|筑业资料软件免费官方下载-系统族...
  13. 如何设计出一款好的软件
  14. Unity 跳转第三方App
  15. 知识点梳理:基本矩阵F、本质矩阵E、单应矩阵H
  16. 微信小程序分享功能(微信好友,朋友圈)
  17. 数据分析驱动数字化企业转型
  18. 期待已久的Apple Tablet PC - iPad 发布了
  19. Linux上搭建Discuz论坛
  20. Linux修改网卡设置

热门文章

  1. ERP发货系统的修改(四十三)
  2. pinia 的使用(三)—— actions
  3. 生命旅程中何生命个体
  4. 南昌大学计算机学硕和专硕,专硕和学硕哪个好?该怎么选?
  5. Tomcat、Servlet、JSP、EL和JDK版本对照以及各版本Tomcat下载
  6. java unrar.jar下载_unrar.jar解压缩rar文件
  7. Sprite和Texture的区别
  8. Hive集成Tez让大象飞起来
  9. three.js入门到实战
  10. 通过阿里云API 身份证图片或拍身份证 读取身份证正反面信息