Skip to content

Commit 1761650

Browse files
6.5.0 - 新增 opencc 模块; 修复编辑器问题; 优化打包应用功能及文件管理器
1 parent afc0bce commit 1761650

File tree

907 files changed

+6730
-2969
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

907 files changed

+6730
-2969
lines changed

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,5 @@ sync.ffs_db
2727
/local.properties
2828
/sign.properties
2929

30-
**/assets/declarations
31-
**/assets/sample/declarations
30+
**/assets-app/declarations
31+
**/assets-app/sample/declarations

README.md

Lines changed: 46 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,45 @@ AutoJs6 在 Auto.js 最终项目的基础上, 于 `2021/12/01` 进行二次开
131131

132132
[comment]: <> "Version history only shows last 3 versions"
133133

134+
# v6.5.0
135+
136+
###### 2023/12/02
137+
138+
* `新增` opencc 模块 (参阅 项目文档 > [中文转换](https://docs.autojs6.com/#/opencc)) (Ref to [LZX284](https://github.com/SuperMonster003/AutoJs6/pull/187/files#diff-8cff73265af19c059547b76aca8882cbaa3209291406f52df1dafbbc78e80c46R268))
139+
* `新增` UiSelector 增加 [plus](https://docs.autojs6.com/#/uiObjectType?id=m-plus) 及 [append](https://docs.autojs6.com/#/uiObjectType?id=m-append) 方法 _[`issue #115`](http://issues.autojs6.com/115)_
140+
* `新增` 打包应用页面增加 ABI 及库的筛选支持 (Ref to [AutoX](https://github.com/kkevsekk1/AutoX)) _[`issue #189`](http://issues.autojs6.com/189)_
141+
* `修复` 打包应用文件体积异常庞大的问题 (Ref to [AutoX](https://github.com/kkevsekk1/AutoX) / [LZX284](https://github.com/SuperMonster003/AutoJs6/pull/187/files#diff-d932ac49867d4610f8eeb21b59306e8e923d016cbca192b254caebd829198856R61)) _[`issue #176`](http://issues.autojs6.com/176)_
142+
* `修复` 打包应用无法显示并打印部分异常消息的问题
143+
* `修复` 打包应用页面选择应用图标后可能显示空图标的问题
144+
* `修复` 打包应用包含 MLKit Google OCR 库时可能出现的上下文未初始化异常
145+
* `修复` ocr.<u>mlkit/ocr</u>.<u>recognizeText/detect</u> 方法无效的问题
146+
* `修复` 部分文本 (如日志页面) 显示语言与应用设置语言可能不相符的问题
147+
* `修复` 部分语言在主页抽屉开关项可能出现文本溢出的问题
148+
* `修复` 部分设备无障碍服务开启后立即自动关闭且无任何提示消息的问题 _[`issue #181`](http://issues.autojs6.com/181)_
149+
* `修复` 部分设备无障碍服务开启后设备物理按键可能导致应用崩溃的问题 (试修) _[`issue #183`](http://issues.autojs6.com/183)_ _[`issue #186`](http://issues.autojs6.com/186#issuecomment-1817307790)_
150+
* `修复` 使用 auto(true) 重启无障碍服务后 pickup 功能异常的问题 (试修) _[`issue #184`](http://issues.autojs6.com/184)_
151+
* `修复` floaty 模块创建浮动窗口拖动时可能导致应用崩溃的问题 (试修)
152+
* `修复` app.startActivity 无法使用简称参数的问题 _[`issue #182`](http://issues.autojs6.com/182)_ _[`issue #188`](http://issues.autojs6.com/188)_
153+
* `修复` importClass 导入的类名与全局变量冲突时代码抛出异常的问题 _[`issue #185`](http://issues.autojs6.com/185)_
154+
* `修复` Android 7.x 无法使用无障碍服务的问题
155+
* `修复` Android 14+ 可能无法正常使用 runtime.<u>loadJar/loadDex</u> 方法的问题 (试修)
156+
* `修复` 安卓系统快速设置面板中 "布局范围分析""布局层次分析" 不可用的问题 _[`issue #193`](http://issues.autojs6.com/193)_
157+
* `修复` 自动检查更新功能可能导致应用 [ANR](https://developer.android.com/topic/performance/vitals/anr) 的问题 (试修) _[`issue #186`](http://issues.autojs6.com/186)_
158+
* `修复` 文件管理器示例代码文件夹点击 "向上" 按钮后无法回到工作路径页面的问题 _[`issue #129`](http://issues.autojs6.com/129)_
159+
* `修复` 代码编辑器使用替换功能时替换按钮无法显示的问题
160+
* `修复` 代码编辑器长按删除时可能导致应用崩溃的问题 (试修)
161+
* `修复` 代码编辑器点击 fx 按钮无法显示模块函数快捷面板的问题
162+
* `修复` 代码编辑器模块函数快捷面板按钮函数名称可能溢出的问题
163+
* `优化` 代码编辑器模块函数快捷面板适配夜间模式
164+
* `优化` 打包应用启动页面适配夜间模式并调整应用图标布局
165+
* `优化` 打包应用页面支持使用软键盘 ENTER 键实现光标跳转
166+
* `优化` 打包应用页面支持点击 ABI 标题及库标题切换全选状态
167+
* `优化` 打包应用页面默认 ABI 智能选择并增加不可选择项的引导提示
168+
* `优化` 文件管理器根据文件及文件夹的类型及特征调整菜单项的显示情况
169+
* `优化` 文件管理器文件夹右键菜单增加打包应用选项
170+
* `优化` 无障碍服务启用但功能异常时在 AutoJs6 主页抽屉开关处将体现异常状态
171+
* `优化` 部分依赖或本地库版本调整 _[`CHANGELOG.md`](http://project.autojs6.com/blob/master/app/src/main/assets/doc/CHANGELOG.md#v650)_
172+
134173
# v6.4.2
135174

136175
###### 2023/11/15
@@ -170,47 +209,6 @@ AutoJs6 在 Auto.js 最终项目的基础上, 于 `2021/12/01` 进行二次开
170209
* `优化` 构建工具自适应 Temurin 平台
171210
* `优化` 部分依赖或本地库版本调整 _[`CHANGELOG.md`](http://project.autojs6.com/blob/master/app/src/main/assets/doc/CHANGELOG.md#v641)_
172211

173-
# v6.4.0
174-
175-
###### 2023/10/30
176-
177-
* `新增` ocr 模块支持 Paddle Lite 引擎 (by [TonyJiangWJ](https://github.com/TonyJiangWJ)) _[`pr #120`](http://pr.autojs6.com/120)_
178-
* `新增` 打包功能支持内置插件与外部插件两种打包方式 (by [LZX284](https://github.com/LZX284)) _[`pr #151`](http://pr.autojs6.com/151)_
179-
* `新增` WebSocket 模块 (参阅 项目文档 > [WebSocket](https://docs.autojs6.com/#/webSocketType))
180-
* `新增` barcode / qrcode 模块 (参阅 项目文档 > [条码](https://docs.autojs6.com/#/barcode) / [二维码](https://docs.autojs6.com/#/qrcode))
181-
* `新增` shizuku 模块 (参阅 项目文档 > [Shizuku](https://docs.autojs6.com/#/shizuku)) 及主页抽屉权限开关
182-
* `新增` device.rotation / device.orientation 等方法
183-
* `新增` 内部 Java 类支持 class 静态属性访问
184-
* `新增` 支持在安卓系统设置页面选择并切换应用语言 (安卓 13 及以上)
185-
* `新增` 支持设置页面添加或长按应用图标激活 [应用快捷方式](https://developer.android.com/guide/topics/ui/shortcuts?hl=zh-cn) , 可启动文档和设置等页面
186-
* `修复` 重新合并部分 PR (by [aiselp](https://github.com/aiselp)) 以解决部分脚本无法正常结束运行的问题 _[`pr #75`](http://pr.autojs6.com/75)_ _[`pr #78`](http://pr.autojs6.com/78)_
187-
* `修复` 打包应用无法使用 AutoJs6 新增 API 的问题 (by [LZX284](https://github.com/LZX284)) _[`pr #151`](http://pr.autojs6.com/151)_
188-
* `修复` 打包应用在系统夜间模式下的样式异常
189-
* `修复` VSCode 插件保存文件到本地时文件扩展名信息丢失的问题
190-
* `修复` 使用协程特性运行项目产生未捕获异常致使应用崩溃的问题
191-
* `修复` 重启或退出应用时浮动按钮无法记录其位置状态信息的问题
192-
* `修复` 设备屏幕方向改变时无法获取更新后的设备配置信息的问题 _[`issue #153`](http://issues.autojs6.com/153)_
193-
* `修复` 屏幕旋转至横向时 Toolbar 标题字体过小的问题
194-
* `修复` 屏幕旋转至横向时应用主页的页签排版过于拥挤的问题
195-
* `修复` 屏幕旋转至横向时浮动按钮可能溢出屏幕的问题 _[`issue #90`](http://issues.autojs6.com/90)_
196-
* `修复` 屏幕多次旋转时无法恢复浮动按钮的坐标及屏幕侧边方向的问题
197-
* `修复` 部分设备消息浮动框可能出现遗漏显示或重复显示的问题
198-
* `修复` 消息浮动框在多个脚本同时运行时可能存在被遮蔽的问题 _[`issue #67`](http://issues.autojs6.com/67)_
199-
* `修复` 使用广播分析布局时点击布局无法弹出菜单且导致应用崩溃的问题
200-
* `修复` 第二次及以后创建的 WebSocket 实例均无法正常触发监听器的问题
201-
* `修复` 撤销 importPackage 的全局重定向方法以避免某些作用域下的包导入异常 _[`issue #88`](http://issues.autojs6.com/88)_
202-
* `修复` 日志活动页面使用复制或导出功能时可能导致应用崩溃的问题
203-
* `优化` 日志活动页面导出功能重命名为发送功能并重新实现符合实际意义的导出功能
204-
* `优化` 日志活动页面发送功能支持条目数量过大时自动截取并作出提示
205-
* `优化` ocr 模块同时兼容 Google MLKit 及 Paddle Lite 引擎 (参阅 项目文档 > [光学字符识别](https://docs.autojs6.com/#/ocr?id=p-mode))
206-
* `优化` 提升无障碍服务自动启动的成功概率
207-
* `优化` Kotlin 注解处理由 kapt 迁移至 KSP
208-
* `优化` 构建工具支持 IntelliJ Idea EAP 版本
209-
* `优化` 构建工具自适应 Java 发行版本以尽量避免 "无效的发行版本" 问题
210-
* `优化` 构建工具优化 IDE 及相关插件的版本退级逻辑并增加版本预测能力
211-
* `优化` 适配 VSCode 插件 1.0.7
212-
* `优化` 部分依赖或本地库版本调整 _[`CHANGELOG.md`](http://project.autojs6.com/blob/master/app/src/main/assets/doc/CHANGELOG.md#v640)_
213-
214212
##### 更多版本历史可参阅
215213

216214
* [CHANGELOG.md](http://changelog.autojs6.com)
@@ -227,12 +225,12 @@ AutoJs6 在 Auto.js 最终项目的基础上, 于 `2021/12/01` 进行二次开
227225

228226
#### Android Studio 准备
229227

230-
下载 `Android Studio Hedgehog | 2023.1.1 RC 3` 版本 (按需选择其一):
228+
下载 `Android Studio Hedgehog | 2023.1.1` 版本 (按需选择其一):
231229

232-
- [android-studio-2023.1.1.25-windows.exe](https://redirector.gvt1.com/edgedl/android/studio/install/2023.1.1.25/android-studio-2023.1.1.25-windows.exe) (1.1 GB)
233-
- [android-studio-2023.1.1.25-windows.zip](https://redirector.gvt1.com/edgedl/android/studio/ide-zips/2023.1.1.25/android-studio-2023.1.1.25-windows.zip) (1.1 GB)
230+
- [android-studio-2023.1.1.26-windows.exe](https://redirector.gvt1.com/edgedl/android/studio/install/2023.1.1.26/android-studio-2023.1.1.26-windows.exe) (1.1 GB)
231+
- [android-studio-2023.1.1.26-windows.zip](https://redirector.gvt1.com/edgedl/android/studio/ide-zips/2023.1.1.26/android-studio-2023.1.1.26-windows.zip) (1.1 GB)
234232

235-
>: 上述版本发布时间为 2023119 日. 如需下载其他版本, 或上述链接已失效, 可访问 [Android Studio 发行版本归档](https://developer.android.com/studio/archive?hl=en) 页面.
233+
>: 上述版本发布时间为 20231130 日. 如需下载其他版本, 或上述链接已失效, 可访问 [Android Studio 发行版本归档](https://developer.android.com/studio/archive?hl=en) 页面.
236234

237235
安装或解压上述文件, 运行 Android Studio 软件 (如 `"D:\android-studio\bin\studio64.exe"`).
238236

@@ -369,13 +367,13 @@ Gradle
369367

370368
| 贡献人员 | 提交数 | 最近提交 |
371369
|:-----------------------------------------------------:|:-------------------------------------------------------------------------------:|:------------:|
370+
| [LZX284](https://github.com/LZX284) (Ai) | [17](https://github.com/SuperMonster003/AutoJs6/commits?author=LZX284) | `2023/11/19` |
372371
| [TonyJiangWJ](https://github.com/TonyJiangWJ) | [4](https://github.com/SuperMonster003/AutoJs6/commits?author=TonyJiangWJ) | `2023/10/31` |
373-
| [LZX284](https://github.com/LZX284) (Ai) | [13](https://github.com/SuperMonster003/AutoJs6/commits?author=LZX284) | `2023/10/09` |
374372
| [little-alei](https://github.com/little-alei) (抠脚本人) | [12](https://github.com/SuperMonster003/AutoJs6/commits?author=little-alei) | `2023/07/12` |
375373
| [aiselp](https://github.com/aiselp) | [6](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+author%3Aaiselp) | `2023/06/14` |
376374
| [LYS86](https://github.com/LYS86) (LYS) | [2](https://github.com/SuperMonster003/AutoJs6/commits?author=LYS86) | `2023/06/03` |
377375

378-
数据更新于 `2023/10/31`.
376+
数据更新于 `2023/12/02`.
379377

380378
数据条目按 `最近提交` 降序排序.
381379

@@ -398,6 +396,7 @@ Gradle
398396
- The summary of the latest changelog for committing to Git [ DO NOT commit or push ]
399397
- Update badges like [ android studio / rhino / ... ]
400398
- Update android studio download links and version names
399+
- Update contribution section
401400
- Remove the part like [ alpha / beta / ... ] of VERSION_NAME in version.properties
402401
- Update dependencies TypeScript declarations if needed.
403402
- Re-generate documentation by running the python script

app/build.gradle.kts

Lines changed: 72 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ dependencies /* Unclassified */ {
4444
// SwipeRefreshLayout
4545
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
4646

47+
// FlexboxLayout
48+
implementation("com.google.android.flexbox:flexbox:3.0.0")
49+
4750
// Common Markdown
4851
implementation("com.github.atlassian:commonmark-java:commonmark-parent-0.9.0")
4952

@@ -263,6 +266,11 @@ dependencies /* MLKit */ {
263266
implementation("com.google.mlkit:barcode-scanning:17.2.0")
264267
}
265268

269+
dependencies /* OpenCC */ {
270+
// OpenCC
271+
implementation("com.github.qichuan:android-opencc:1.2.0")
272+
}
273+
266274
dependencies /* Auto.js Extensions */ {
267275
// Settings Compat
268276
// @Integrated by SuperMonster003 on Mar 30, 2023.
@@ -361,6 +369,24 @@ android {
361369
"icon" to "@mipmap/ic_launcher",
362370
)
363371
)
372+
packagingOptions.apply {
373+
// @Reference to kkevsekk1/AutoX (https://github.com/kkevsekk1/AutoX) on Nov 16, 2023.
374+
// ! https://github.com/kkevsekk1/AutoX/blob/a6d482189291b460c3be60970b74c5321d26e457/inrt/build.gradle.kts#L91
375+
jniLibs.excludes += "*"
376+
resources.excludes.addAll(
377+
listOf(
378+
"com/**/*",
379+
"frameworks/**/*",
380+
"junit/**/*",
381+
"LICENSE-junit.txt",
382+
"spec.txt",
383+
)
384+
)
385+
}
386+
// @Reference to kkevsekk1/AutoX (https://github.com/kkevsekk1/AutoX) on Nov 16, 2023.
387+
// ! https://github.com/kkevsekk1/AutoX/blob/a6d482189291b460c3be60970b74c5321d26e457/inrt/build.gradle.kts#L93
388+
// noinspection ChromeOsAbiSupport
389+
ndk.abiFilters += ""
364390

365391
gradle.taskGraph.whenReady(object : Action<TaskExecutionGraph> {
366392
override fun execute(taskGraph: TaskExecutionGraph) {
@@ -370,7 +396,10 @@ android {
370396
?.doLast {
371397
copy {
372398
val src = "build/outputs/apk/$flavorNameInrt/$buildTypeRelease"
373-
val dst = "src/main/assets"
399+
400+
// @Reference to LZX284 (https://github.com/LZX284) on Nov 16, 2022.
401+
val dst = "src/main/assets-$flavorNameApp"
402+
374403
val ext = Utils.FILE_EXTENSION_APK
375404

376405
if (!file(src).isDirectory) {
@@ -380,7 +409,14 @@ android {
380409
from(src); into(dst)
381410

382411
val verName = versionName?.replace(Regex("\\s"), "-")?.lowercase()
383-
val srcFileName = "$flavorNameInrt-v$verName-universal.$ext" /* e.g. inrt-v6.4.0-beta-universal.apk */
412+
413+
/* e.g. inrt-v6.4.0-beta-universal.apk */
414+
val srcFileName = "$flavorNameInrt-v$verName-universal.$ext".also {
415+
if (!file(File(src, it)).exists()) {
416+
throw GradleException("Source file \"${file(File(src, it))}\" doesn't exist")
417+
}
418+
}
419+
384420
val dstFileName = "$templateName.$ext"
385421
val isOverridden = file(File(dst, dstFileName)).exists()
386422
include(srcFileName)
@@ -396,32 +432,37 @@ android {
396432

397433
androidResources {
398434
if (gradle.startParameter.taskNames.any { it.contains(Regex("^(:?$flavorNameApp:)?$buildActionAssemble")) }) {
399-
ignoreAssetsPatterns.add(".idea")
435+
ignoreAssetsPatterns.addAll(listOf(".idea", "declarations", "sample/declarations"))
400436
}
401437
if (gradle.startParameter.taskNames.any { it.contains(Regex("^(:?$flavorNameApp:)?$buildActionAssemble$flavorNameInrt", IGNORE_CASE)) }) {
402438
// @Hint by SuperMonster003 on Oct 16, 2023.
403-
// ! Nothing needs to be added into assets for flavor "inrt",
404-
// ! as assets will be copied from flavor "app"
439+
// ! Runtime assets will be copied from flavor "app"
405440
// ! while building an apk on org.autojs.autojs.ui.project.BuildActivity.
406-
ignoreAssetsPatterns.add("!*") /* Ignore everything. */
441+
ignoreAssetsPatterns.addAll(emptyList())
407442
}
408443
}
409444

410445
}
411446

412447
sourceSets {
448+
413449
// @Hint by LZX284 on Nov 15, 2023.
414450
// ! The assets file is divided into three directories according to different flavors.
415451
// ! But the files are not actually moved to avoid conflicts with the latest modifications.
416-
getByName("main"){
452+
// !
453+
// @Hint by SuperMonster003 on Nov 16, 2023.
454+
// ! The assets division idea was accepted, and it wouldn't hurt to try. :)
455+
456+
getByName("main") {
417457
assets.srcDirs("src/main/assets")
418458
}
419-
getByName(flavorNameApp){
420-
assets.srcDirs("src/main/assets_$flavorNameApp")
459+
getByName(flavorNameApp) {
460+
assets.srcDirs("src/main/assets-$flavorNameApp")
421461
}
422-
getByName(flavorNameInrt){
423-
assets.srcDirs("src/main/assets_$flavorNameInrt")
462+
getByName(flavorNameInrt) {
463+
assets.srcDirs("src/main/assets-$flavorNameInrt")
424464
}
465+
425466
}
426467

427468
compileOptions {
@@ -447,6 +488,7 @@ android {
447488
"lib/x86_64/libc++_shared.so",
448489
"lib/armeabi-v7a/libc++_shared.so",
449490
"lib/arm64-v8a/libc++_shared.so",
491+
"lib/armeabi/libc++_shared.so",
450492
).let { resources.pickFirsts.addAll(it) }
451493

452494
jniLibs {
@@ -524,7 +566,21 @@ android {
524566
doLast {
525567
mapOf(
526568
"dir" to outputDir,
527-
"includes" to listOf("declarations/**", "sample/declarations/**"),
569+
"includes" to when (variantName.startsWith(flavorNameInrt)) {
570+
true -> listOf(
571+
"mlkit-google-ocr-models/**/*",
572+
"mlkit_barcode_models/**/*",
573+
"models/**/*",
574+
"openccdata/**/*",
575+
"project/**/*",
576+
"android-devices.db",
577+
"autojs.keystore",
578+
)
579+
else -> listOf(
580+
"declarations/**/*",
581+
"sample/declarations/**/*",
582+
)
583+
},
528584
).let { delete(fileTree(it)) }
529585
}
530586
}
@@ -537,13 +593,15 @@ android {
537593
// Configures multiple APKs based on ABI.
538594
abi {
539595
// Enables building multiple APKs per ABI.
540-
isEnable = true
596+
isEnable = /* isNotAssembleInrt */ !gradle.startParameter.taskNames.any {
597+
it.contains(Regex("^(:?$flavorNameApp:)?$buildActionAssemble$flavorNameInrt", IGNORE_CASE))
598+
}
541599
// By default, all ABIs are included, so use reset() and include to specify that we only
542600
// want APKs for x86 and x86_64.
543601
// Resets the list of ABIs that Gradle should create APKs for to none.
544602
reset()
545603
// Specifies a list of ABIs that Gradle should create APKs for.
546-
include("x86", "armeabi-v7a", "arm64-v8a", "x86_64")
604+
include("arm64-v8a", "x86_64", "armeabi-v7a", "x86", "armeabi")
547605
// Specifies that we do not want to also generate a universal APK that includes all ABIs.
548606
isUniversalApk = true
549607
}

app/src/androidTest/java/org/autojs/autojs/statics/RhinoE4XTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import org.mozilla.javascript.Scriptable;
66

77
/**
8-
* Created by Stardust on 2017/5/13.
8+
* Created by Stardust on May 13, 2017.
99
*/
1010
public class RhinoE4XTest {
1111

0 commit comments

Comments
 (0)