Android Studio版本升级那些事

Android Studio版本升级那些事

Android Studio版本升级那些事

文章目录

Android Studio版本升级那些事一、前言二、Android Studio版本相关知识1、Android13 签名应用无法在Android Studio 编译运行解决(1)无法编译运行前的尝试

2、Android Studio 的历史版本介绍4、Android Studio Gradle 的历史版本3、Android Studio 下载(1)官方网址(国内网打不开):(2)官方网址2(国内网可以正常打开下载):

三、其他1、Android Studio 报错INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 小结2、如果确定安装的应用是否是系统签名应用3、Android版本和API版本(SDK)关联:(1)Android 的历史版本(2)Android SDK的历史版本:4、不同Gradle 版本的app/build.gradle 的某些代码区别:

一、前言

Android Studio目前最新版本是 2024.2.1 主要版本特征是为了更好支持kotlin代码的编译运行。

2017年的Android Studio 版本已经支持kotlin的正常开发了; 但是真正比较完善的kotlin编辑的版本是2023年的版本; 我这里不是想讲AndroidStudio对kotlin的支持,因为系统开发代码中kotlin虽然有,但是不多,影响比较小。 本文主要是记录一下,Android Studio旧版本无法编译安装Android13 以后的签名应用。

开发Android13 的系统源代码后,我发现我的系统签名文件无法在Android Studio 中加载签名文件编译运行到设备中。 提示报错是:INSTALL_FAILED_SHARED_USER_INCOMPATIBLE, 大概意思就是sharedUserId不匹配。

网上看了几个文章说是更新JDK版本就行了,但是试了一下不行,后面更新Android Studio 发现也不行,最后是更新了Gradle为8.7版本就OK了。

下面记录一下。也写了一下Android和Gradle的历史版本让大家了解一下。

二、Android Studio版本相关知识

系统签名应用无法安装是有很多情况的,签名证书不信息匹配,环境问题,版本问题等等。

这里的 INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 错误相当于环境问题。

可能会有不同情况,这里只做这种情况的简单介绍。

1、Android13 签名应用无法在Android Studio 编译运行解决

(1)无法编译运行前的尝试

1、更新JDK版本,修改比较麻烦!没啥用。

2、更新Android Studio 版本,下载安装覆盖就可以用了,但是也不行。

3、我以为无法适配了,等几个月后,发现有的同时是可以编Android13的系统应用正常运行的

所以办法肯定是有的,只是没找到关键的地方

有的同事说是更新了版本,有的同事说是更新了JDK。。。

我当时旧的Android Studio版本是2021年安装的,比较旧了。

我旧项目的Gradle看了一下版本是Gradle 6.5,新的Android Studio 安装的软件默认是Gradle8.7 版本的。

4、新建项目添加系统签名证书测试

发现新建的项目添加系统签名是可以安装的,说明和Gradle版本有关。

具体到哪个Gradle版本才能支持Android13 或者更新版本的系统签名,

这个就好考证了,不想去一一尝试了;

5、替换Gradle版本进行编译

后面发现旧项目的Gradle的版本是6.5,把旧项目中的Gradle替换成最新版本创建的应用的8.7版本的Gradle就ok了。

系统签名需要AndroidManifest里面声明 “android.uid.system”, 并且在build.gradle里面的signingConfigs 加载签名文件和配置签名文件信息。

如果只配置签名文件信息,不加声明uid,只会被当成普通签名应用,不会有系统权限。

2、Android Studio 的历史版本介绍

以下是一些常见的 Android Studio 版本:

早期版本

0.1:2013 年 5 月开始的早期访问预览版本.

0.8:2014 年 6 月发布的 beta 版本.

1.0:2014 年 12 月发布的第一个稳定版本.

1.x 版本

1.1:2015 年 2 月发布.

1.2:2015 年 4 月发布.

1.3:2015 年 7 月发布.

1.4:2015 年 9 月发布.

1.5:2015 年 11 月发布.

2.x 版本

2.0:2016 年 4 月发布.

2.1:2016 年 4 月发布.

2.2:2016 年 9 月发布.

2.3:2017 年 3 月发布.

3.x 版本

3.0:2017 年 10 月发布,该版本及以后开始支持 Kotlin 。在性能优化方面有一定提升,比如构建速度有所加快等.

3.1:2018 年 3 月发布,对 Android 8.1 的支持更好,同时在 IDE 的稳定性和性能方面有进一步改进.

3.2:2018 年 9 月发布,增强了对 Kotlin 的支持,包括更好的 Kotlin 代码编辑和调试体验等.

3.3:2019 年 1 月发布,包含了一些对布局编辑器、构建系统等方面的改进和优化.

3.4:2019 年 4 月发布,主要是对一些新特性和功能的支持以及 bug 的修复.

3.5:2019 年 8 月发布,进一步提升了 IDE 的性能和稳定性,同时对一些 Android 开发的新特性提供了更好的支持.

3.6:2020 年 2 月发布,在构建速度、代码分析等方面有一定的优化和改进.

4.x 版本

4.0:2020 年 5 月发布,带来了一些新的功能和改进,如对 Java 8 语言特性的更好支持,以及在布局编辑器、调试工具等方面的优化.

4.1:2020 年 10 月发布,主要是对开发工具和流程的进一步优化,提高了开发效率.

4.2:2021 年 5 月发布,增强了对新 Android 版本和技术的支持,同时在 IDE 的性能和稳定性方面有持续提升.

以动物命名的版本

Arctic Fox(北极狐):2020.3.1 版本,在对新 Android 版本的支持以及开发工具的优化方面有一定的更新.

Bumblebee(大黄蜂):2021.1.1 版本,进一步提升了开发体验,包括对 Kotlin 的更好支持、构建系统的优化等.

Chipmunk(花栗鼠):2021.2.1 版本,对 IDE 的性能和稳定性进行了改进,同时在代码编辑、调试等方面有一些新的特性和优化.

Dolphin(海豚):2021.3.1 版本,在日志查看、代码分析等方面有一定的更新和优化,提升了开发过程中的调试和问题排查效率.

Electric Eel(电鳗):2022.1.1 版本,增强了对新 Android 特性的支持,同时在 IDE 的界面和操作流程方面有一些改进,使其更加便捷和高效.

Flamingo(火烈鸟):2022.2.1 版本,在构建速度、代码编辑体验等方面有显著提升,并且对 Android 12 的支持更加完善.

Giraffe(长颈鹿):2022.3.1 版本,主要是对 IDE 的性能优化和一些新功能的引入,如改进的布局编辑器等.

Hedgehog(刺猬):2023.1.1 版本,进一步提升了 IDE 的稳定性和性能,同时在代码分析和调试方面有一些新的特性和改进.

Iguana(鬣蜥):2023.2.1 版本,增强了对 Kotlin 的支持,优化了代码编辑和调试的流程,提高了开发效率.

Jellyfish(水母):2023.3.1 版本,在对新 Android 版本和技术的支持上有一定的更新,同时优化了 IDE 的性能和用户体验.

最新版本

Koala Feature Drop:2024.1.2 版本,包含了一些新的特性和功能改进,如对特定 API 级别的更好支持等.

Ladybug:2024.2.1 版本,引入了 IntelliJ 2024.2 平台的更新,具备集成 K2 模式以提高 Kotlin 的稳定性、增强 IDE 启动效率、简化 cron 表达式管理等新特性.

现在2024年底了,最新版本是2024.2.1。 说明2024年是出了两个版本的,2025年肯定也是会出新版本的。

4、Android Studio Gradle 的历史版本

以下是 Android Studio Gradle 的一些主要历史版本及相关信息:

Gradle 1.x 系列

主要特点:稳定性和性能有显著提升,引入了使用 Groovy 脚本实现自定义构建逻辑的功能,开发者可通过自定义任务和插件扩展构建过程.

Gradle 2.x 系列

主要特点:实现了多模块项目的支持,使开发者能够在单个项目中管理多个模块,更便于处理具有多个组件的复杂应用程序.

Gradle 3.x 系列

主要特点:增加了对 Kotlin 作为构建语言的支持,让开发者可以使用 Kotlin 编写构建脚本,与 Android 生态系统更好地集成.

Gradle 4.x 系列

主要特点:持续优化构建过程,提升了性能,并引入了 AndroidX 库来替代传统的 Android 支持库,以增强 Android 组件的模块化并减小 APK 体积.

Gradle 5.x 系列

主要特点:进一步提高了性能和稳定性,支持在构建脚本中使用 Java 8 语言特性,如 lambda 表达式和方法引用等,使构建逻辑更加现代化.

Gradle 6.x 系列

主要特点:带来了重大更新,包括性能改进、增强的安全特性以及对多模块项目的更好支持。还引入了新的插件系统,简化了依赖管理和插件的使用.

Gradle 7.x 系列

主要特点:改进了对 Kotlin DSL(领域特定语言)的支持,开发者能够完全使用 Kotlin 编写构建脚本,与其他基于 Kotlin 的项目集成更加容易,进一步提升了开发效率和代码的可读性.

Gradle 8.x 系列

主要特点:Kotlin DSL 增强,引入了解释器以跳过声明性插件的 Kotlin 编译步骤,并升级到了 Kotlin 的 API 级别;BuildSrc 改进,可直接执行任务,跳过特定测试 ;配置缓存优化,提升了配置缓存的功能,允许从缓存条目加载任务,增强了构建过程的并行性,进一步加快了构建速度.

不同的 Android Studio 版本对 Gradle 版本有相应的兼容性要求,以下是部分 Android Studio 版本与 Gradle 版本的对应关系 :

Android Studio 版本所需 Gradle 版本Ladybug 2024.2.13.2 - 8.7Koala Feature Drop 2024.1.23.2 - 8.6Koala 2024.1.13.2 - 8.5Jellyfish 2023.3.13.2 - 8.4Iguana 2023.2.13.2 - 8.3Hedgehog 2023.1.13.2 -7

从上面对应关系看,大致可以看到Android Studio新版本可以兼容所有就行的版本的Gradle; 但是Android Studio旧版本要2023年以后的版本才能兼容Gradle8或者更新的版本; 简单的说就是旧版本的Android Studio不能兼容最新版本的Gradle版本。 所以升级Android Studio是有必要的。

3、Android Studio 下载

(1)官方网址(国内网打不开):

https://developer.android.com/studio

(2)官方网址2(国内网可以正常打开下载):

https://developer.android.google.cn/studio/releases?hl=zh-cn

我就是用第二个网址进行下载的,ok的。

之前使用旧版本的Android Studio,运行环境设置为Android13或者更新版本的配置,res中的布局文件好像不会自动关联那些关键字, 需要手动敲打比较麻烦;更新Android Studio好像就没有这个问题了。

三、其他

1、Android Studio 报错INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 小结

这个错误是安装应用的uid和系统验证信息不匹配导致; 大概率是和Android Studio 的Gradle; 的版本有关,使用最新的Gradle版本就行。

不一定要最新版本Gradle才能编译安装Android13版本的系统应用; 可以尝试一下新建一个应用,添加系统签名证书和uid,验证查看是否能安装成功。

2、如果确定安装的应用是否是系统签名应用

运行环境中执行dumpsys 就可以看出应用信息: dumpsys package XXX | grep appid 示例:

console:/ # dumpsys package com.dubug.settings | grep -i -E "appid|persistent"

appId=1000

flags=[ SYSTEM DEBUGGABLE HAS_CODE PERSISTENT ALLOW_CLEAR_USER_DATA UPDATED_SYSTEM_APP TEST_ONLY ALLOW_BACKUP ]

pkgFlags=[ SYSTEM DEBUGGABLE HAS_CODE PERSISTENT ALLOW_CLEAR_USER_DATA UPDATED_SYSTEM_APP TEST_ONLY ALLOW_BACKUP ]

appId=1000

appId=1000

console:/ #

看出信息appid 是否是1000 ,系统签名应用都是1000. persistent 属性是查看系统应用是否保活。

3、Android版本和API版本(SDK)关联:

(1)Android 的历史版本

Android 1.0

发布时间:2008 年 9 月 23 日.

特点:是 Android 系统的首次正式发布版本,当时已经集成了如 Gmail、Maps、Calendar 和 YouTube 等谷歌应用.

Android 1.1

发布时间:2009 年 2 月 2 日左右.

特点:优化了插件显示皮肤的性能等.

Android 1.5 Cupcake

发布时间:2009 年 4 月 30 日.

特点: 引入了屏幕键盘,为没有实体键盘的设备提供了输入方式;还建立了第三方应用小部件框架,并且首次支持视频录制.

Android 1.6 Donut

发布时间:2009 年 9 月 15 日.

特点:使操作系统能够适配多种不同的屏幕尺寸和分辨率,还添加了对 CDMA 网络的支持,并且首次出现了通用搜索框.

Android 2.0/2.1 Eclair

发布时间:Android 2.0 于 2009 年 10 月 26 日发布,2.1 则在 2010 年 1 月 12 日左右发布.

特点:因搭载于摩托罗拉 Droid 手机而受到广泛关注,首次加入了语音引导的逐向导航和实时交通信息功能,还带来了动态壁纸以及语音输入功能.

Android 2.2 Froyo

发布时间:2010 年 5 月 20 日.

特点:主要侧重于性能提升,采用了 Dalvik 运行模式使性能大幅提高;还增加了标准的主屏幕底部停靠栏以及语音操作功能,并且浏览器开始支持 Flash.

Android 2.3 Gingerbread

发布时间:2010 年 12 月 6 日.

特点:Android 系统开始有了独特的视觉风格,绿色成为其重要的设计元素,还增加了对更多传感器的支持,如气压计和陀螺仪.

Android 3.0/3.1/3.2 Honeycomb

发布时间:Android 3.0 于 2011 年 2 月 22 日发布,3.1 在 2011 年 5 月 11 日发布,3.2 于 2011 年 7 月 15 日发布.

特点:是专门针对平板电脑设计的版本,采用了全新的 “全息” 界面设计,更注重利用平板的大屏幕空间.

Android 4.0 Ice Cream Sandwich

发布时间:2011 年 10 月 19 日.

特点:引入了 “Holo” 界面,成为后续 Android 版本界面更新的基础,同时在交互和视觉效果上有了较大的改进,让用户体验更加统一和流畅.

Android 4.1/4.2/4.3 Jelly Bean

发布时间:Android 4.1 于 2012 年 6 月 28 日发布,4.2 在 2012 年 10 月 30 日发布,4.3 于 2013 年 7 月 25 日发布.

特点:引入了 Google Now 智能语音助手,能够根据用户的搜索历史和使用习惯,为用户提供个性化的信息和建议.

Android 4.4 KitKat

发布时间:2013 年 9 月 4 日.

特点:界面更加现代化和简洁,性能上也有很大提升,使得即使是配备 512MB RAM 的低端设备也能流畅运行,进一步扩大了 Android 的市场占有率.

Android 5.0/5.1 Lollipop

发布时间:Android 5.0 于 2014 年 10 月 15 日发布,5.1 在 2015 年 3 月 9 日发布.

特点:采用了全新的 “Material Design” 设计语言,强调卡片式布局、色彩鲜艳、动画过渡效果等,让界面更加美观和富有层次感,同时将 Dalvik 虚拟机替换为 ART 模式,提升了应用的运行速度.

Android 6.0 Marshmallow

发布时间:2015 年 5 月 28 日.

特点:加入了 APP 关联间的联动、Android Pay 以及指纹识别 API 等重要功能,增强了系统的安全性和用户的便捷性.

Android 7.0 Nougat

发布时间:2016 年 8 月 22 日.

特点:加入了多任务分屏功能,底层实现了多任务分屏操作以增强应用的兼容性,还引入了 JIT 编译器,提高了 APP 的安装速度并减少了占用空间,同时引入了 Vulkan API 图形处理器 API,提升了系统动画的性能.

Android 8.0 Oreo

发布时间:2017 年 8 月 21 日.

特点:APP 的启动速度比 Android 7.0 快 2 倍,后台续航监控功能可以最大化限制不常用后台应用的活跃度,还加入了分屏画中画模式,通知栏下拉后变为彩色背景通知.

Android 9 Pie

发布时间:2018 年 8 月 6 日.

特点:引入了全新的手势导航系统,用户可以通过手势来操作手机,如从屏幕底部上滑回到主屏幕、上滑并停顿进入多任务界面等。同时,在人工智能和机器学习方面也有了进一步的应用,系统能够根据用户的使用习惯自动调整电池电量分配、预测用户的下一步操作等,以提高设备的性能和续航能力。

Android 10

发布时间:2019 年 9 月 3 日.

特点:支持折叠屏设备,优化了多窗口模式,让用户可以更方便地在折叠屏设备上同时使用多个应用程序。还加强了隐私保护功能,例如应用在获取用户位置信息时需要用户明确授权,并且用户可以随时在设置中更改应用的权限。此外,系统对 5G 网络的支持也更加完善,能够更好地发挥 5G 网络的高速和低延迟特性。

Android 11

发布时间:2020 年 9 月 8 日.

特点:进一步加强了隐私保护,如一次性权限授权,用户可以授予应用临时访问权限,使用完后权限自动收回。还优化了屏幕录制功能,支持内录音频,并且对通知栏和快捷设置面板进行了重新设计,让用户操作更加便捷。此外,Android 11 还增强了对物联网设备的支持,使手机与其他智能设备之间的连接和交互更加顺畅。

Android 12

发布时间:2021 年 10 月 4 日.

特点:带来了全新的设计语言 Material You,系统能够根据用户的壁纸颜色自动生成主题颜色,使整个系统的界面更加个性化。同时,隐私保护功能再次升级,新增了隐私仪表板,用户可以更直观地查看应用对各种隐私权限的访问情况。在性能方面,也进行了优化,提高了系统的流畅度和响应速度。

Android 13

发布时间:2022 年 8 月 15 日.

特点:进一步细化了隐私权限管理,用户可以对应用的通知权限、媒体权限等进行更精细的控制。还优化了多设备协同功能,让用户在不同的 Android 设备之间共享数据和协同工作更加方便快捷。此外,Android 13 对无障碍功能进行了增强,为残障人士提供了更好的使用体验。

Android 14

发布时间:2023 年 10 月 4 日.

特点:在系统性能优化方面有了新的进展,能够更有效地管理内存和资源,提高设备的运行效率。同时,继续加强隐私保护,例如限制应用对剪切板数据的访问权限等。此外,还对系统界面进行了一些微调,使操作更加便捷和直观.

Android 15

发布时间:2024 年 10 月 15 日.

特点:包括针对折叠屏手机、平板电脑、桌面尺寸屏幕和 Chromebooks 的改进.

Android 16

发布时间:目前只有开发者预览版 1,于 2024 年 11 月 19 日发布.

(2)Android SDK的历史版本:

以下是 Android 版本号对应的 API 等级 :

Android 1.0:API 等级 1

Android 1.1:API 等级 2

Android 1.5 Cupcake:API 等级 3

Android 1.6 Donut:API 等级 4

Android 2.0 Eclair:API 等级 5

Android 2.0.1 Eclair:API 等级 6

Android 2.1 Eclair:API 等级 7

Android 2.2 Froyo:API 等级 8

Android 2.3 Gingerbread:API 等级 9、10 ,其中 Android 2.3.0 - 2.3.2 对应 API 等级 9,Android 2.3.3 - 2.3.7 对应 API 等级 10

Android 3.0 Honeycomb:API 等级 11

Android 3.1 Honeycomb:API 等级 12

Android 3.2 Honeycomb:API 等级 13

Android 4.0 Ice Cream Sandwich:API 等级 14、15 ,其中 Android 4.0.1 - 4.0.2 对应 API 等级 14,Android 4.0.3 - 4.0.4 对应 API 等级 15

Android 4.1 Jelly Bean:API 等级 16

Android 4.2 Jelly Bean:API 等级 17

Android 4.3 Jelly Bean:API 等级 18

Android 4.4 KitKat:API 等级 19

Android 5.0 Lollipop:API 等级 21

Android 5.1 Lollipop:API 等级 22

Android 6.0 Marshmallow:API 等级 23

Android 7.0 Nougat:API 等级 24

Android 7.1 Nougat:API 等级 25

Android 8.0 Oreo:API 等级 26

Android 8.1 Oreo:API 等级 27

Android 9 Pie:API 等级 28

Android 10 Q:API 等级 29

Android 11 R:API 等级 30

Android 12 S:API 等级 31 ,另外 Android 12L 对应的 API 等级是 32

Android 13 Tiramisu:API 等级 33

Android 14 Upside Down Cake:API 等级 34

Android 15 Vanilla Ice Cream:API 等级 35

Android 版本发布可能是会准备好相应的SDK版本。 目前最新的SDK是Android15 的 35 ,SDK 36 估计要明年才能生成。

4、不同Gradle 版本的app/build.gradle 的某些代码区别:

Gradle6.5 的app/build.gradle某些代码:

plugins {

id 'com.android.application'

}

android {

buildToolsVersion "34.0.0"

compileSdkVersion 34

defaultConfig {

applicationId "com.demo.android14demo"

minSdkVersion 30

targetSdkVersion 34

versionCode 1

versionName "1.0"

}

。。。

}

dependencies {

implementation 'androidx.appcompat:appcompat:1.1.0'

implementation 'com.google.android.material:material:1.1.0'

implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

//加载系统 framework 的jar包

implementation files('libs\\framework_13.jar')

}

上面都是之前那种比较标准的写法。

Gradle8.7 的app/build.gradle某些代码:

plugins {

alias(libs.plugins.android.application)

}

android {

namespace 'com.example.android14'

compileSdk 34

defaultConfig {

applicationId "com.example.android14"

minSdk 34

targetSdk 34

versionCode 1

versionName "1.0"

}

...

}

dependencies {

implementation libs.appcompat

implementation libs.material

implementation libs.activity

implementation libs.constraintlayout

implementation files('libs\\framework.jar')

}

对比发现标签里面很多名字都不一样的。看起来简洁了很多。

部分标签关键字对比:

Gradle6.5Gradle8.7plugins --> idplugins --> aliasandroid --> compileSdkVersionandroid --> compileSdkimplementation ‘androidx.appcompat:appcompat:1.1.0’implementation libs.appcompat还有很多不同的标签,估计都是和不同的Gradle版本关联的,不用一一了解。

新板的Gradle依赖的包的版本号都是统一在一个文件里面管理的。

这些东西没必要记,只是知道Gradle版本不同里面编译的标签名称不同就可以了。

低版本的Gradle 不能导入高版本的标签底代码; 但是高版本的标签代码一般可以导入低版本的标签代码(兼容性)。

在项目下也有个build.gradle文件,里面的代码关键字也是有不同的。 因为Gradle有兼容性,所以最好用新一点的Gradle版本;

所以最好是自己的电脑新建一个项目,看看自己Studio支持的Gradle最新版本; 所以有些别人能正常编译的项目,到另外一个电脑就不能正常编译了; 这个和Android Studio版本,Gradle版本,JDK版本都是有关系的,有的还和电脑环境有关系。

相关推荐

dnf安图恩单人每日攻略 5分钟教你轻松通关
快男2017养鸡原名是什么 YOUNG-G资料背景揭秘
手机彩票365网址

快男2017养鸡原名是什么 YOUNG-G资料背景揭秘

07-01 👁️ 370
您所访问的页面不存在
bt365开户

您所访问的页面不存在

08-15 👁️ 6991