buildAndroidApp
UniApp Android 离线打包纯函数,整合项目构建、配置修改和模块集成等功能。
前置依赖
依赖参数
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.existsSync | FileSystem['existsSync'] | 检查文件是否存在 |
deps.readFileSync | FileSystem['readFileSync'] | 读取文件内容 |
deps.writeFileSync | FileSystem['writeFileSync'] | 写入文件内容 |
deps.copyFileSync | FileSystem['copyFileSync'] | 复制文件 |
deps.mkdirSync | FileSystem['mkdirSync'] | 创建目录 |
deps.readdirSync | FileSystem['readdirSync'] | 读取目录内容 |
deps.statSync | FileSystem['statSync'] | 获取文件状态 |
deps.cp | FileSystem['promises']['cp'] | 异步复制目录 |
deps.join | Path['join'] | 路径拼接 |
deps.dirname | Path['dirname'] | 获取目录名 |
deps.basename | Path['basename'] | 获取文件名 |
deps.exec | ChildProcess['exec'] | 执行子进程命令 |
deps.platform | string | 进程平台信息 |
deps.parse | JSON5Parser['parse'] | JSON5 解析函数 |
deps.xmlParser | XMLParserConstructor | XML 解析器构造函数 |
deps.xmlSerializer | XMLSerializerConstructor | XML 序列化器构造函数 |
deps.xpath | XPath | XPath 查询库 |
deps.setTimeout | typeof setTimeout | 超时函数 |
环境要求
- @xmldom/xmldom: XML DOM 解析库
- xpath: XPath 查询库
- json5: JSON5 解析库
bash
npm install @xmldom/xmldom xpath json5函数签名
typescript
function buildAndroidApp(
options: UniAppAndroidBuildOptions,
deps: BuildAndroidAppDeps
): Promise<UniAppAndroidBuildResult>参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
options.uniappProjectPath | string | 是 | UniApp 项目路径 |
options.androidProjectPath | string | 是 | Android 项目路径 |
options | UniAppAndroidBuildOptions | 是 | 其他构建选项 |
deps | BuildAndroidAppDeps | 是 | 依赖注入对象 |
返回值
| 类型 | 说明 |
|---|---|
Promise<UniAppAndroidBuildResult> | Promise,解析为构建结果对象 |
工作原理
- 验证项目路径:检查 UniApp 和 Android 项目路径是否存在
- 解析 manifest.json:读取并解析 UniApp 项目配置
- 检测项目结构:识别 Android 项目结构(HBuilder-Integrate-AS 或 simpleDemo)
- 构建 UniApp:执行 UniApp 构建命令
- 拷贝资源文件:将构建产物拷贝到 Android 项目
- 修改配置文件:更新 AndroidManifest.xml、build.gradle 等
- 集成第三方模块:根据配置集成登录、分享等模块
- 构建 Android 项目:执行 Android 构建命令
- 返回结果:包含成功状态、输出路径、错误信息和详细日志
整合了 UniApp 构建、Android 配置和模块集成的完整流程,适用于自动化打包场景。