Android 历代版本主要变化

这里只站在开发者的角度,谈论一下 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在每次启动时(特指冷启动与温启动),系统都会为我们加上一个默认的启动画面
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio 是由 Google 开发的一款集成开发环境(IDE),主要用于 Android 应用程序的开发。它随着 Android 平台的更新不断迭代。下面是 Android Studio 主要版本的简要概述: 1. Android Studio 1.0 (2014年发布):初始版,主要专注于 Java 和 Kotlin 开发,提供了基本的编辑器和构建工具。 2. Android Studio 2.x (2014-2018年):这个阶段,Google 逐步增强了其性能,引入了 Gradle 作为默认构建系统,以及改进了 UI 设计和调试工具。 3. Android Studio 3.x (2018-2020年):引入了 Project Lombok 支持,优化了代码分析,支持更多的 Kotlin 特性,以及改进了 Gradle 构建速度。 4. Android Studio 4.x (2020-至今):更加注重现代化的开发体验,引入了 Live Templates、Kotlin Multiplatform 支持、Jetpack Modules 等高级功能。此外,从 4.2 版本开始,Android Studio 也支持了 Android 11 (API 30) 及更高版本的开发。 5. Android Studio Arctic Fox (2020-2021):稳定版,增加了对 Android 12 (API 31) 的支持。 6. Android Studio Bumblebee (2021-至今):Bumblebee 版本引入了 Jetpack Compose 用于原生 Android UI 的新框架,以及更多现代开发技术的支持。 安装 Android Studio 的步骤大致如下: 1. 访问官方网站:https://developer.android.com/studio 2. 根据你的操作系统(Windows, macOS, Linux)下载对应的安装包。 3. 运行安装程序,并接受许可协议。 4. 配置 SDK 环境(选择并安装必要的 Android API 版本)。 5. 安装完成后,打开 Android Studio,可能需要登录 Google 账户同步设置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值