6.6.3 - Alpha3 - Gradle 构建脚本提升版本自适应能力 (discussion #369)
This commit is contained in:
@@ -732,7 +732,7 @@ android {
|
||||
// Configures multiple APKs based on ABI.
|
||||
abi {
|
||||
// Enables building multiple APKs per ABI.
|
||||
isEnable = /* isNotAssembleInrt */ !gradle.startParameter.taskNames.any {
|
||||
isEnable = /* isNotAssembleInrt */ gradle.startParameter.taskNames.none {
|
||||
it.contains(Regex("^(:?$flavorNameApp:)?$buildActionAssemble$flavorNameInrt", IGNORE_CASE))
|
||||
}
|
||||
// By default, all ABIs are included, so use reset() and include to specify that we only
|
||||
@@ -847,14 +847,29 @@ class Versions(filePath: String) {
|
||||
private var javaVersionInfoSuffix = ""
|
||||
|
||||
val javaVersion: JavaVersion by lazy {
|
||||
var niceVersionInt = javaVersionRaw.toInt()
|
||||
var javaVersionInt = determineJavaVersion()
|
||||
gradle.beforeProject {
|
||||
extensions.extraProperties["javaVersion"] = javaVersionInt
|
||||
}
|
||||
JavaVersion.toVersion(javaVersionInt)
|
||||
}
|
||||
|
||||
private fun determineJavaVersion(): Int {
|
||||
if (gradle.extra.has("javaVersionOverriddenByUser")) {
|
||||
(gradle.extra.get("javaVersionOverriddenByUser") as? Int)?.let {
|
||||
javaVersionInfoSuffix += " [user-specified]"
|
||||
return it
|
||||
}
|
||||
}
|
||||
|
||||
var versionInt = javaVersionRaw.toInt()
|
||||
var isFallback = false
|
||||
|
||||
while (niceVersionInt > javaVersionMinSupported) {
|
||||
if (JvmTarget.values().any { it.name.contains(Regex("_$niceVersionInt$")) }) {
|
||||
while (versionInt > javaVersionMinSupported) {
|
||||
if (JvmTarget.values().any { it.name.contains(Regex("_$versionInt$")) }) {
|
||||
break
|
||||
}
|
||||
niceVersionInt -= 1
|
||||
versionInt -= 1
|
||||
isFallback = true
|
||||
}
|
||||
|
||||
@@ -862,26 +877,20 @@ class Versions(filePath: String) {
|
||||
javaVersionInfoSuffix += " [fallback]"
|
||||
}
|
||||
|
||||
if (gradle.extra.has("gradleVersionToCoerceJavaVersion")) {
|
||||
(gradle.extra["gradleVersionToCoerceJavaVersion"] as? String)?.let {
|
||||
val maxGradleVersion = getMaxSupportedJavaVersion(it)
|
||||
if (niceVersionInt > maxGradleVersion) {
|
||||
niceVersionInt = maxGradleVersion
|
||||
javaVersionInfoSuffix += " [coerced]"
|
||||
if (versionInt > currentVersionInt) {
|
||||
versionInt = currentVersionInt
|
||||
javaVersionInfoSuffix += " [consistent-downgraded]"
|
||||
}
|
||||
|
||||
if (gradle.extra.has("javaVersionCoercedByGradle")) {
|
||||
(gradle.extra["javaVersionCoercedByGradle"] as? Int)?.let {
|
||||
if (versionInt > it) {
|
||||
versionInt = it
|
||||
javaVersionInfoSuffix += " [coercive-gradle-downgraded]"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (niceVersionInt > currentVersionInt) {
|
||||
niceVersionInt = currentVersionInt
|
||||
javaVersionInfoSuffix += " [consistent]"
|
||||
}
|
||||
|
||||
gradle.beforeProject {
|
||||
extensions.extraProperties["javaVersion"] = niceVersionInt
|
||||
}
|
||||
|
||||
JavaVersion.toVersion(niceVersionInt)
|
||||
return versionInt
|
||||
}
|
||||
|
||||
private var isBuildNumberAutoIncremented = false
|
||||
@@ -962,51 +971,6 @@ class Versions(filePath: String) {
|
||||
properties.store(file.writer(), null)
|
||||
}
|
||||
|
||||
private fun getMaxSupportedJavaVersion(gradleVersion: String): Int {
|
||||
|
||||
/* https://docs.gradle.org/current/userguide/compatibility.html . */
|
||||
val presetVersionMap = listOf(
|
||||
17 to "7.3",
|
||||
18 to "7.5",
|
||||
19 to "7.6",
|
||||
20 to "8.3",
|
||||
21 to "8.5",
|
||||
22 to "8.8",
|
||||
23 to "8.10",
|
||||
24 to "8.11", /* Unofficial as of Mar 19, 2025. */
|
||||
)
|
||||
|
||||
fun parseVersion(version: String) = version.split(Regex("[.-]")).map { it.toIntOrNull() ?: 0 }
|
||||
|
||||
val inputGradleVersionInts = parseVersion(gradleVersion)
|
||||
|
||||
var maxJavaVersion: Int = presetVersionMap.first().first
|
||||
|
||||
for ((presetJavaVersion, presetGradleVersion) in presetVersionMap) {
|
||||
val presetGradleVersionInts: List<Int> = parseVersion(presetGradleVersion)
|
||||
|
||||
for (i in presetGradleVersionInts.indices) {
|
||||
when {
|
||||
i > inputGradleVersionInts.lastIndex -> {
|
||||
break
|
||||
}
|
||||
inputGradleVersionInts[i] > presetGradleVersionInts[i] -> {
|
||||
maxJavaVersion = presetJavaVersion
|
||||
break
|
||||
}
|
||||
inputGradleVersionInts[i] < presetGradleVersionInts[i] -> {
|
||||
break
|
||||
}
|
||||
i == presetGradleVersionInts.lastIndex -> {
|
||||
maxJavaVersion = presetJavaVersion
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return maxJavaVersion
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
object Utils {
|
||||
|
||||
@@ -6,26 +6,40 @@
|
||||
|
||||
# v6.6.3
|
||||
|
||||
###### 2025/05/02
|
||||
###### 2025/05/13
|
||||
|
||||
* `新增` 版本历史功能, 可查看发行版本历史更新记录 (多语言) 与统计数据
|
||||
* `新增` timers.keepAlive 方法 (已全局化), 用于保持脚本活跃状态
|
||||
* `新增` engines.on('start/stop/error', callback) 等事件监听方法, 用于监听脚本引擎全局事件
|
||||
* `新增` images.detectMultiColors 方法, 用于多点颜色校验 _[`issue #374`](http://issues.autojs6.com/374)_
|
||||
* `修复` 主页文档标签显示在线文档时部分内容被系统导航栏遮挡的问题
|
||||
* `修复` 部分设备代码编辑器空行显示方框字符的问题
|
||||
* `修复` 主题色设置页面调色盘对话框可能无限叠加的问题
|
||||
* `修复` 无障碍服务关闭时音量加键停止所有脚本功能失效的问题
|
||||
* `修复` 定时任务页面编辑自定义广播内容时出现的输入法遮挡问题
|
||||
* `修复` APK 文件类型信息对话框可能无法获取应用名称及 SDK 信息的问题
|
||||
* `修复` Android 15 部分页面状态栏背景颜色可能无法动态跟随主题色的问题
|
||||
* `修复` dialogs 模块无法正常使用 customView 属性的问题 _[`issue #364`](http://issues.autojs6.com/364)_
|
||||
* `修复` 使用 JavaAdapter 时导致 ClassLoader 调用栈溢出的问题 _[`issue #376`](http://issues.autojs6.com/376)_
|
||||
* `修复` console.setContentTextColor 方法导致日志字体颜色丢失默认值的问题 _[`issue #346`](http://issues.autojs6.com/346)_
|
||||
* `修复` README.md 中部分语言日期格式不正确的问题
|
||||
* `优化` 关于应用与开发者页面增加水平布局适配
|
||||
* `优化` 主题色扩充适配范围并支持更多控件类型
|
||||
* `优化` 主页抽屉在横向屏幕或超宽屏幕的宽度适应性
|
||||
* `优化` 关于应用与开发者页面增加水平布局及小屏布局适配
|
||||
* `优化` 设置页面对话框相关设置支持 "使用默认值" 菜单选项
|
||||
* `优化` 文件管理器浮动按钮展开后点击其他区域可自动隐藏
|
||||
* `优化` 打包单文件时自动读取并勾选已安装应用的声明权限 _[`issue #362`](http://issues.autojs6.com/362)_
|
||||
* `优化` 已忽略更新记录及客户端模式连接地址记录支持清空操作
|
||||
* `优化` 版本更新信息支持多语言显示 (与当前显示语言同步)
|
||||
* `优化` 使用异步加载方式一定程度提升文件管理器列表滑动流畅性
|
||||
* `优化` Gradle 构建脚本提升版本自适应能力 _[`discussion #369`](http://discussions.autojs6.com/369)_
|
||||
* `依赖` 本地化 Material Dialogs 版本 0.9.6.0
|
||||
* `依赖` 本地化 Material Date Time Picker 版本 4.2.3
|
||||
* `依赖` 附加 Jsoup 版本 1.19.1
|
||||
* `依赖` 附加 Material Progressbar 版本 1.4.2
|
||||
* `依赖` 附加 Flexmark Java HTML to Markdown 版本 0.64.8
|
||||
* `依赖` 升级 Gradle 版本 8.14-rc-1 -> 8.14-rc-2
|
||||
* `依赖` 升级 Gradle 版本 8.14-rc-1 -> 8.14
|
||||
* `依赖` 升级 Androidx Room 版本 2.7.0 -> 2.7.1
|
||||
|
||||
# v6.6.2
|
||||
|
||||
|
||||
@@ -6,26 +6,40 @@
|
||||
|
||||
# v6.6.3
|
||||
|
||||
###### 2025/05/02
|
||||
###### 2025/05/13
|
||||
|
||||
* `新增` 版本历史功能, 可查看发行版本历史更新记录 (多语言) 与统计数据
|
||||
* `新增` timers.keepAlive 方法 (已全局化), 用于保持脚本活跃状态
|
||||
* `新增` engines.on('start/stop/error', callback) 等事件监听方法, 用于监听脚本引擎全局事件
|
||||
* `新增` images.detectMultiColors 方法, 用于多点颜色校验 _[`issue #374`](http://issues.autojs6.com/374)_
|
||||
* `修复` 主页文档标签显示在线文档时部分内容被系统导航栏遮挡的问题
|
||||
* `修复` 部分设备代码编辑器空行显示方框字符的问题
|
||||
* `修复` 主题色设置页面调色盘对话框可能无限叠加的问题
|
||||
* `修复` 无障碍服务关闭时音量加键停止所有脚本功能失效的问题
|
||||
* `修复` 定时任务页面编辑自定义广播内容时出现的输入法遮挡问题
|
||||
* `修复` APK 文件类型信息对话框可能无法获取应用名称及 SDK 信息的问题
|
||||
* `修复` Android 15 部分页面状态栏背景颜色可能无法动态跟随主题色的问题
|
||||
* `修复` dialogs 模块无法正常使用 customView 属性的问题 _[`issue #364`](http://issues.autojs6.com/364)_
|
||||
* `修复` 使用 JavaAdapter 时导致 ClassLoader 调用栈溢出的问题 _[`issue #376`](http://issues.autojs6.com/376)_
|
||||
* `修复` console.setContentTextColor 方法导致日志字体颜色丢失默认值的问题 _[`issue #346`](http://issues.autojs6.com/346)_
|
||||
* `修复` README.md 中部分语言日期格式不正确的问题
|
||||
* `优化` 关于应用与开发者页面增加水平布局适配
|
||||
* `优化` 主题色扩充适配范围并支持更多控件类型
|
||||
* `优化` 主页抽屉在横向屏幕或超宽屏幕的宽度适应性
|
||||
* `优化` 关于应用与开发者页面增加水平布局及小屏布局适配
|
||||
* `优化` 设置页面对话框相关设置支持 "使用默认值" 菜单选项
|
||||
* `优化` 文件管理器浮动按钮展开后点击其他区域可自动隐藏
|
||||
* `优化` 打包单文件时自动读取并勾选已安装应用的声明权限 _[`issue #362`](http://issues.autojs6.com/362)_
|
||||
* `优化` 已忽略更新记录及客户端模式连接地址记录支持清空操作
|
||||
* `优化` 版本更新信息支持多语言显示 (与当前显示语言同步)
|
||||
* `优化` 使用异步加载方式一定程度提升文件管理器列表滑动流畅性
|
||||
* `优化` Gradle 构建脚本提升版本自适应能力 _[`discussion #369`](http://discussions.autojs6.com/369)_
|
||||
* `依赖` 本地化 Material Dialogs 版本 0.9.6.0
|
||||
* `依赖` 本地化 Material Date Time Picker 版本 4.2.3
|
||||
* `依赖` 附加 Jsoup 版本 1.19.1
|
||||
* `依赖` 附加 Material Progressbar 版本 1.4.2
|
||||
* `依赖` 附加 Flexmark Java HTML to Markdown 版本 0.64.8
|
||||
* `依赖` 升级 Gradle 版本 8.14-rc-1 -> 8.14-rc-2
|
||||
* `依赖` 升级 Gradle 版本 8.14-rc-1 -> 8.14
|
||||
* `依赖` 升级 Androidx Room 版本 2.7.0 -> 2.7.1
|
||||
|
||||
# v6.6.2
|
||||
|
||||
|
||||
Reference in New Issue
Block a user