Android 历代版本主要变化

news2024/9/22 11:27:21

这里只站在开发者的角度,谈论一下 Android 5.0 之后的版本的主要变化

Android 5.0 L

  1. 开始支持64位的处理器
  2. 开始全面由 Dalvik 虚拟机转成ART虚拟机

Android 6.0 M

  1. 增加全新的动态权限机制(运行时权限)
  2. 取消支持 Apache HTTP 客户端

Android 7.0 N

  1. 系统权限的更改,分享私有文件内容的推荐方法是使用 FileProvider,禁止向你的应用外公开 file:// URI

Android 8.0 O

  1. 通知渠道 — Notification Channels
  2. 画中画模式 — PIP

Android 9.0 P

  1. 异型屏适配
  2. 使用前台服务,必须请求 FOREGROUND_SERVICE 权限
  3. 不能直接非 Activity 环境中(比如Service,Application)启动 Activity,否则会崩溃报错。保活的说法从此之后越来越少

Android 10 Q

  1. 新增深色主题的背景(暗黑模式)

  2. 用户存储权限的变更

    • 在外部存储设备中为每个应用提供了一个“隔离存储沙盒”,任何其他应用都无法直接访问您应用的沙盒文件。
    • 文件是应用的私有文件,因此不再需要任何权限即可在外部存储设备中访问和保存自己的文件。
    • 此变更可让您更轻松地保证用户文件的隐私性,并有助于减少应用所需的权限数量。
    • 根目录($rootDir):/storage/emulated/0(不一定,不同设备可能不同),通过Environment.getExternalStorageDirectory()获取。
    • 应用程序目录( a p p l i c a t i o n D i r ) : applicationDir): applicationDir)rootDir/Andorid/data/包名
    • 应用缓存目录:$applicationDir/cache,通过Context.getExternalCacheDir()获取。
    • 应用文件目录:$applicationDir/files, 通过Context.getExternalFilesDir(String type),type为空字符串时获取。type系统提供了很多常用的类型,比如图片和下载等等:
public static String DIRECTORY_MUSIC = "Music";
public static String DIRECTORY_ALARMS = "Alarms";
public static String DIRECTORY_NOTIFICATIONS = "Notifications";
public static String DIRECTORY_PICTURES = "Pictures";
public static String DIRECTORY_MOVIES = "Movies";
public static String DIRECTORY_DOWNLOADS = "Download";
public static String DIRECTORY_DCIM = "DCIM";
public static String DIRECTORY_DOCUMENTS = "Documents";

Environment.getExternalStorageDirectory():            /storage/emulated/0
Context.getExternalCacheDir():                              /storage/emulated/0/Android/data/com.learn.test/cache
Context.getExternalFilesDir(""):                             /storage/emulated/0/Android/data/com.learn.test/files
Context.getExternalFilesDir("test"):                        /storage/emulated/0/Android/data/com.learn.test/files/test
Context.getExternalFilesDir(Environment.DIRECTORY_PICTURES):    /storage/emulated/0/Android/data/com.learn.test/files/Pictures

具体路径在 sd 卡的 Android 目录下面,此目录下有 data、media、obb、obj

在这里插入图片描述

在这里插入图片描述
data 目录下拥有所有已安装的app的包名为路径的文件夹

访问这些文件不需要申请动态权限,这些文件会随着app的卸载而删除,且并不会使app本身越用越大,跟内部存储是两个地方

  1. 引入了新的位置权限 ACCESS_BACKGROUND_LOCATION,新权限仅会影响应用在后台运行时对位置信息的访问权。除非应用的某个 Activity 可见或应用正在运行前台服务,否则应用将被视为在后台运行

Android 11 R

  1. 更改了应用在读取电话号码时使用的与电话相关的权限
    • TelecomManager 类中的 getLine1Number() 方法、TelecomManager 类中的 getMsisdn() 方法
    • 也就是当用到这两个API的时候,原来的READ_PHONE_STATE权限不管用了,需要READ_PHONE_NUMBERS权限才行
  2. 需要 APK 签名方案 v2

Android 12 S

  1. 前台服务优化
  2. JDK版本强制JDK11
  3. 蓝牙权限
    • 将蓝牙扫描与位置权限进行了分离,解决了长久以来打开蓝牙需要申请定位权限的系统级 bug
    • 引入了 BLUETOOTH_SCAN、BLUETOOTH_ADVERTISE 和 BLUETOOTH_CONNECT 权限。这些权限可让以 Android 应用更轻松地与蓝牙设备互动,不再需要申请设备位置信息相关权限。
  4. 应用启动页
    • 系统会在应用的冷启动和暖启动时,使用新的启动页 SplashScreen,该启动页默认由应用ICON + 应用主题的windowBackground内容构成
    • 所有的App在每次启动时(特指冷启动与温启动),系统都会为我们加上一个默认的启动画面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/494385.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

队列,双端队列,栈结构

java.util.Queue接口.队列 Queue继承自Collection. 队列可以保存一组元素,但是存取元素必须遵循先进先出原则:FIFO(First Input First Output) 常用实现类:LinkedList 双端队列 java.util.Deque Deque继承自Queue 双端队列是队列两端都可以做出入对操作的队列. 常用实现类…

适用于Win和Mac的专业电脑数据恢复软件EasyRecovery易恢复14

EasyRecovery易恢复一键轻松找回丢失数据 支持电脑、相机、移动硬盘、U盘、SD卡、内存卡、光盘、本地电子邮件和 RAID 磁盘阵列等各类存储设备的数据恢复。EasyRecovery还可以支持恢复从硬盘、光盘、U盘、数码相机、手机等各种设备中恢复被删除或丢失的文件,只是使用…

分享kubernetes部署:cachecloud部署说明

cachecloud部署 cachecloud是搜狐视频(sohutv)Redis私有云平台 已省略~ 挑选一台服务器部署cachecloud-web 将cachecloud-web打成war包,可以在服务器上打包,也可以在本地打包,这里举一个在服务器上打包的例子。 将源代码下载到/opt下 已省略~…

HID Relay, 有线键盘转蓝牙项目学习:记一次失败的尝试

HID Relay, 有线键盘转蓝牙项目学习:记一次失败的尝试 开始学习嵌入式后,最难受的一个点在于电脑端口不够。我的电脑有两个USB口一个TypeC口,鼠标和键盘都要插USB口,stm32和51也都要插USB口。 那么烧录的时候,要么就…

SwiftUI 如何让文本自动支持查找和替换功能?

概览 有些情况下,我们需要为文本编辑器实现文本的查找和替换功能(find & replace),如果完全靠自已撸码还是比较棘手的。 所幸的是,从 SwiftUI 4.0 (iOS 16)开始,Apple 已经将查…

JavaWeb ( 六 ) JSP

2.4.JSP JSP (Java Server Pages) : 一种在服务器端生成动态页面的技术,本质上就是Servlet。将HTML代码嵌入到Java代码中, 通过Java逻辑控制HTML代码的结构从而生成页面。在MVC中通常担任视图层(view),负责信息的展示与收集。 2…

浅谈MySQL索引以及执行计划

MySQL索引及执行计划 🐪索引的作用🐫索引的分类(算法)🦙BTREE索引算法演变🦒Btree索引功能上的分类4.1 辅助索引4.2 聚集索引4.3 辅助索引和聚集索引的区别 🐘辅助索引分类🦏索引树高…

了解MSIL汇编和IL汇编评估堆栈

.assembly extern mscorlib {}.assembly Test{.ver 1:0:1:0}.module test.exe.method static void main() cil managed{.maxstack 1.entrypointldstr "I am from the IL Assembly Language..."call void [mscorlib]System.Console::WriteLine (string)ret} 这是MSIL…

spring-transaction源码分析(2)EnableTransactionManagement注解

概述(Java doc) 该注解开启spring的注解驱动事务管理功能,通常标注在Configuration类上面用于开启命令式事务管理或响应式事务管理。 Configuration EnableTransactionManagement public class AppConfig {Beanpublic FooRepository fooRepository() {// configur…

【Matter】esp-matter环境下的应用实践(程序烧录及串口监视)

文章目录 esp-matter环境下的应用实践前提准备设置环境变量1.ESP-IDF2.ESP-Matter Matter Example编译下载1.激活esp-matter环境2.选择esp设备3.编译工程4.SDK烧写 esp-matter环境下的应用实践 前提准备 请确保你本地已经配置好 esp-idf 及esp-matter环境,可参考此…

经典文献阅读之--PCAccumulation(动态三维场景构建)

0. 简介 多波束激光雷达传感器,常用于自动驾驶汽车和移动机器人,获取三维范围扫描序列(“帧”)。由于角度扫描分辨率有限和遮挡,每帧只稀疏地覆盖场景。稀疏性限制了下游过程的性能,如语义分割或表面重建。…

北京地铁:充分发挥数据价值,全面提升业财融合能力

4月19日-4月21日,一年一度的用友BIP技术大会圆满召开。来自行业领先企业的CIO/CDO、生态伙伴、开发者、分析师、媒体等共聚北京用友产业园,了解最新技术发展趋势、探讨行业热点话题。会上,北京地铁运营有限公司(以下简称“北京地铁…

shared_ptr 的线程安全性

多线程环境下,调用不同的 shared_ptr 实例的成员函数是不需要额外的同步手段的,即使这些 shared_ptr 管理的是相同的对象。 多线程对于同一个 shared_ptr 实例的读操作(访问)可以保证线程安全;但对于同一个 shared_ptr…

对标世界一流|从Just in time到Just in case ——汽车行业供应链管理经验借鉴

01 丰田汽车精益生产 作为最复杂和最成熟的供应链之一,汽车行业供应链无疑是供应链领域集大成者,而提起汽车行业供应链,就不得不提到丰田汽车;提到丰田汽车,就肯定离不开大名鼎鼎的精益生产以及JIT模式。 JIT模式由丰…

【UE】高级载具插件-05-扫描材质

效果 步骤 1. 首先创建一个材质 再创建一个材质参数集 创建材质实例 2. 将后期处理体积放入场景,并缩放至合适的大小使其全方位覆盖 在后期处理材质中添加一个数组 选择资产引用 将材质实例拖入 3. 打开参数集,添加一个数组元素 设置默认值和参数名 4. …

2023年湖北省中级职称评审申报条件是什么呢?学历不够可以申报吗?

2023年湖北省中级职称评审申报条件是什么呢?学历不够可以申报吗? 1.大专毕业从事本专业技术工作7年以上;助理满足4年。 2.本科毕业从事本专业技术工作5年以上,助理满足4年。 一般来说中专或者高中学历是无法申请中级职称的&…

mobile代码打APK包

1、安装Android SDK Android SDK 下载地址: http://www.androiddevtools.cn/ 下载位置 下载后解压 打开解压文件,点击 SDK Manager.exe 进行安装 安装组件,这要选 Android 8.0.0 或者以上版本 再次安装,发现没什么可以安装了 2…

【Linux】Shell编程之条件语句

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、条件测试操作作1.文件测试2.整数值比较3.逻辑测试 二、if语句的结构1.单分支结构2.双分支结构3.多分支结构 三、case多分支结构 一、条件测试操作作 test命令 …

Win10蓝屏错误0x0000007b怎么U盘重装系统?

Win10蓝屏错误0x0000007b怎么U盘重装系统?有用户安装好的电脑系统最近总是会出现蓝屏错误0x0000007b的情况,遇到这样的情况很多用户不懂怎么去进行处理。今天分享一个U盘重装系统的方法,教会你快速解决此问题的方法。 准备工作: 1…

体验 nanoGPT

体验 nanoGPT 1. 使用预训练模型2. 训练自己的模型2-1. 准备训练数据2-2. 模型训练2-3. 模型验证 1. 使用预训练模型 在我们尝试训练自己的模型之前,我们先使用其他人训练好的模型,看看如何在自己的环境中运行聊天机器人。 今天我们使用 GPT4ALL 并从 …