Android升级版本兼容问题

1、JDK的选择
词汇表
Java Development Kit (JDK)
JDK包含:工具(编译器、解析器、产物生成器)、Kotlin或Java调用库(但部分API在Android中不可用)、JVM(这个JVM没用应用在Android设备或模拟器上)

JetBrains Runtime (JBR)
JBR是一款加强JDK,与Android Studio一起发布。对JetBrains相关的产品做了一些优化。
在这里插入图片描述

Android Studio 启动脚本查找 JVM 顺序如下:

1、STUDIO_JDK environment variable
2、studio.jdk directory (in the Android Studio distribution)
3、jbr directory (JetBrains Runtime), in the Android Studio distribution. Recommended.
4、JDK_HOME environment variable
5、JAVA_HOME environment variable
6、(Windows系统)java executable in the PATH environment variable

Gradle构建时选择哪个JDK?
1、如果使用Android Studio的按钮构建,则使用的是Android Studio设置页面中的JDK(示例:Build Tools-Gradle中指定的JDK)
2、如果在Terminal中构建,无论是Android Studio内的Terminal还是Mac系统的Terminal,JAVA_HOME变量决定了Gradle脚本使用的是哪个JDK,如果JAVA_HOME没有设置,则使用Windows系统中的PATH环境变量中的java配置。

为了保持一致性,建议JAVA_HOME和Android Studio的设置页面,设置同一个JDK。

所选择的JDK用于Gradle脚本构建和解析Java API的引用。需要注意的是,compileSdk所指定的版本也会约束java符号是否可用。

Android Gradle Plugin (AGP) 的版本对JDK的最低版本有要求:
比如:the Android Gradle Plugin version 8.x requires JDK 17.

每一个Android版本仅支持指定的JDK版本。如果使用Java API在指定的compileSdk版本下可以使用,但minSdk版本下不可以用时,可以使用脱糖技术:

android {
    defaultConfig {
        // Required when setting minSdkVersion to 20 or lower
        multiDexEnabled = true
    }

    compileOptions {
        // Flag to enable support for the new language APIs

        // For AGP 4.1+
        isCoreLibraryDesugaringEnabled = true
        // For AGP 4.0
        // coreLibraryDesugaringEnabled = true

        // Sets Java compatibility to Java 8
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
}

dependencies {
    // For AGP 7.4+
    coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.3")
    // For AGP 7.3
    // coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.2.3")
    // For AGP 4.0 to 7.2
    // coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.1.9")
}

Android版本支持的Java版本

AndroidJavaAPI and language features supported
14 (API 34)17Core libraries
13 (API 33)11Core libraries
12 (API 32)11Java API
11 and lowerAndroid versions

https://developer.android.com/build/jdks

The following table lists which version of Gradle is required for each version of the Android Gradle plugin. For the best performance, you should use the latest possible version of both Gradle and the plugin.

Plugin versionMinimum required Gradle version
8.4 (alpha)8.6-rc-1
8.3 (beta)8.4
8.28.2
8.18.0
8.08.0
7.47.5

The following table lists which version of Android Gradle plugin(AGP) is required for each version of Android Studio.

Android Studio versionRequired AGP version
Iguana - 2023.2.13.2-8.3
Hedgehog - 2023.1.13.2-8.2
Giraffe - 2022.3.13.2-8.1
Flamingo - 2022.2.13.2-8.0
Electric Eel - 2022.1.13.2-7.4

The minimum versions of Android Studio and AGP are as follows:

API levelMinimum Android Studio versionMinimum AGP version
34Hedgehog - 2023.1.18.1.1
33Flamingo - 2022.2.17.2

https://developer.android.com/build/releases/gradle-plugin

Make sure to choose a JDK version that is higher than or equal to the JDK versions used by plugins that you use in your Gradle build. To determine the minimum required JDK version for the Android Gradle Plugin (AGP), see the compatibility table in the release notes.

For example, the Android Gradle Plugin version 8.x requires JDK 17. If you try to run a Gradle build that uses it with an earlier version of the JDK, it reports a message like:

An exception occurred applying plugin request [id: ‘com.android.application’]

Failed to apply plugin ‘com.android.internal.application’.
Android Gradle plugin requires Java 17 to run. You are currently using Java 11.
Your current JDK is located in /usr/local/buildtools/java/jdk11
You can try some of the following options:
- changing the IDE settings.
- changing the JAVA_HOME environment variable.
- changing org.gradle.java.home in gradle.properties.

Android OTA(Over-The-Air)升级是指通过网络传输直接在设备上进行系统升级的一种方法。下面简要介绍Android OTA升级的流程以及常见问题分析。 Android OTA升级流程通常包括以下几个步骤: 1. 系统准备:开发者根据新版本的要求,为设备准备升级所需的系统文件。这些文件包括操作系统文件、应用程序文件以及升级脚本等。 2. 设备请求:设备通过连接到网络,并向服务器请求最新的系统升级。服务器根据设备的型号和当前系统版本,判断是否需要进行升级。 3. 传输升级文件:如果服务器确认设备需要进行升级,那么就会将升级文件传输给设备。这通常是通过HTTP或FTP等协议进行数据传输。 4. 升级验证:设备接收到升级文件后,会进行文件校验,以确保文件的完整性和一致性。 5. 升级安装:设备在校验通过后,会进行系统升级安装。这通常会涉及到文件解压、系统分区扩展等操作。 6. 安装后处理:升级完成后,设备会重新启动并进行一些后期处理工作,例如数据迁移、应用优化等。 常见问题分析: 1. 升级失败:升级过程中可能出现各种原因导致升级失败,如网络中断、升级文件损坏、设备存储空间不足等。解决方法可以包括重新尝试升级、检查网络连接、清理设备存储空间等。 2. 兼容性问题:新版本的系统可能对设备硬件或软件要求更高,而一些老旧设备可能无法满足这些要求。这可能导致升级后设备性能下降或功能不可用。解决方法可以是提供适配的系统版本或更新设备硬件。 3. 数据丢失:升级过程中可能导致设备的数据丢失,包括联系人、短信、应用程序数据等。为了避免这种问题,可以提醒用户备份数据或提供数据迁移工具。 4. 升级时间过长:升级过程可能需要较长时间,尤其是在升级文件较大或设备性能较低的情况下。解决方法可以是优化升级文件的大小和传输速度,或提供快速升级选项。 总结:Android OTA升级通过网络直接在设备上进行系统升级,流程包括准备、请求、传输、验证、安装和处理。常见问题包括升级失败、兼容性问题、数据丢失和升级时间过长等,需要通过合适的解决方法来处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值