打包为应用
约 1460 字大约 5 分钟
当我们完成代码后,可以将代码打包为独立 apk。打包可以分为单文件打包、项目打包,其中单文件打包只能打包一个 js 文件,如果这个 js 文件依赖了其他的资源、代码文件,无法被打包进 apk 中,此时需要用项目打包。有关项目的功能请参考下一节“项目与打包”,这里我们重点介绍打包功能。
在文件列表中,点击需要打包的文件右边的更多图标(三个点),选择“打包单文件”。

进入打包界面。打包界面包含多个配置,你可以自定义权限、包名、应用名称等。调整后这些配置后,点击右下角的完成(√)图标,即可进行打包。
这里我们依次介绍关键的打包配置。
应用配置
- 应用名称:打包后应用安装后显示在桌面的名称
- 包名:应用的唯一标识符,相同包名和签名的安装包可以覆盖安装。包名只能包含字母、数字、下划线、英文点等,并且至少包含一个英文点,比如"com.example"。不合法的包名打包后无法安装,可能提示“安装包解析失败”。
- 版本名称:显示给用户的版本名称,比如"1.10.2"。
- 版本号:一个整数,代表内部版本号。每次更新版本时,需要增加这个整数。
- 图标:应用安装后显示在桌面的图标
- 权限:配置应用权限清单中的权限,默认为 126 个权限。你可以按需要配置权限,不同功能需要不同的权限:
- 读写文件:需要 READ_EXTERNAL_STORAGE,WRITE_EXTERNAL_STORAGE 权限
- 前台服务:需要 FOREGROUND_SERVICE 权限
- 访问网络:需要 INTERNET 权限
- 任务:需要 WAKE_LOCK 权限
- 开机启动:需要 RECEIVE_BOOT_COMPLETED 权限
- 悬浮窗:需要 SYSTEM_ALERT_WINDOW 权限
- adb 权限运行 shell 命令:需要 moe.shizuku.manager.permission.API_V23 权限
如果用到某些功能,但没有配置相应的权限,运行时可能报错。比如使用到前台服务,但是没有配置 FOREGROUND_SERVICE 权限,使用到相应功能时会崩溃。
权限还可配置为启动时自动申请,比如自动申请 WRITE_EXTERNAL_STORAGE 权限,则打包后应用启动后会弹出权限申请框。一些权限不可申请,只能在权限清单中配置。
特性
- 内置图标包:使用到内置图标,比如 ic_add_black_48dp 等,需要勾选此特性。
- 处理外部文件:使用到任务中的 IntentTask(打开、编辑文件等),需要勾选此特性。勾选后,在文件管理器中打开一些文件,会提示使用打包的应用打开。
- Node.js 引擎:是否使用 Node.js 引擎(第二代 API)。Node.js 引擎的体积较大,单架构达到十几 MB。
- 自动:自动根据打包的文件、项目中是否使用第二代 API 而决定
- 禁用:一律禁用 Node.js 引擎
- 启用:一律启用 Node.js 引擎
- 插件:当使用到 MLKit OCR、FFMpeg 等插件时,需要在这里勾选使用到的插件,插件才能被打包到 apk 中。内置 OCR 模块则无需在这里勾选插件。
构建配置
- 加密:选择加密等级。参考加密与级别说明。
- CPU 架构:默认为当前设备的架构。CPU 架构将影响软件的体积、兼容性、占用内存、允许速度,arm64-v8a 架构速度更快、占用内存更高、且仅适用支持 64 位的机器,通常来说模拟器不支持 arm64-v8a。如果要让软件兼容性更好,可以选择 armeabi-v7a 或者双架构。
- 混淆组件名称:是否将内置的组件(比如广播、Activity、服务)等名称随机化。勾选此选项后,打包时间将变得很长,并且务必打包时保持在前台,以保持较高的调度优先级。
运行配置
- 隐藏日志:打包后应用是否显示日志界面,当脚本有 UI 界面时此选项不生效。一般来说,建议脚本不要没有任何界面,否则一些依赖界面的功能会出现错误,或者是容易被系统杀死。
- 显示启动界面:是否显示启动界面,默认是软件图标的界面。即使设置为关闭,在首次启动时由于需要初始化,仍然会显示一次。
- 启动界面文本:默认为 Powered by Auto.js Pro,可自定义文本内容。
- 启动界面图标:默认为软件图标。此图标不能铺满屏幕,如果你需要自定义,请使用自定义启动图功能。(参见应用内示例 -> 项目与打包 -> 自定义启动图)
签名
只有包名相同且签名相同的应用才能覆盖安装和升级。如果你需要持续更新某个应用,建议你使用自定义签名。因为默认签名是每次安装 Auto.js Pro 时随机生成的,一旦你卸载 Auto.js Pro 或者清除数据,默认签名将会丢失并且不能找回。签名丢失后,你更新应用重新打包后需要让用户卸载旧版本才能安装新版本。
要创建自定义签名,在签名管理中创建签名,输入密码、别名和别名密码即可创建。一个签名可以用于多个软件,每个软件用不同的别名和别名密码,但是 Auto.js Pro 自带的签名管理只支持创建一个别名。
签名文件、密码、别名、别名密码需要保存好,一旦丢失或忘记,没有任何途径可以找回。
