Skip to content

buildAndroidApp

UniApp Android 离线打包纯函数,整合项目构建、配置修改和模块集成等功能。

前置依赖

依赖参数

参数名类型说明
deps.existsSyncFileSystem['existsSync']检查文件是否存在
deps.readFileSyncFileSystem['readFileSync']读取文件内容
deps.writeFileSyncFileSystem['writeFileSync']写入文件内容
deps.copyFileSyncFileSystem['copyFileSync']复制文件
deps.mkdirSyncFileSystem['mkdirSync']创建目录
deps.readdirSyncFileSystem['readdirSync']读取目录内容
deps.statSyncFileSystem['statSync']获取文件状态
deps.cpFileSystem['promises']['cp']异步复制目录
deps.joinPath['join']路径拼接
deps.dirnamePath['dirname']获取目录名
deps.basenamePath['basename']获取文件名
deps.execChildProcess['exec']执行子进程命令
deps.platformstring进程平台信息
deps.parseJSON5Parser['parse']JSON5 解析函数
deps.xmlParserXMLParserConstructorXML 解析器构造函数
deps.xmlSerializerXMLSerializerConstructorXML 序列化器构造函数
deps.xpathXPathXPath 查询库
deps.setTimeouttypeof 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.uniappProjectPathstringUniApp 项目路径
options.androidProjectPathstringAndroid 项目路径
optionsUniAppAndroidBuildOptions其他构建选项
depsBuildAndroidAppDeps依赖注入对象

返回值

类型说明
Promise<UniAppAndroidBuildResult>Promise,解析为构建结果对象

工作原理

  1. 验证项目路径:检查 UniApp 和 Android 项目路径是否存在
  2. 解析 manifest.json:读取并解析 UniApp 项目配置
  3. 检测项目结构:识别 Android 项目结构(HBuilder-Integrate-AS 或 simpleDemo)
  4. 构建 UniApp:执行 UniApp 构建命令
  5. 拷贝资源文件:将构建产物拷贝到 Android 项目
  6. 修改配置文件:更新 AndroidManifest.xml、build.gradle 等
  7. 集成第三方模块:根据配置集成登录、分享等模块
  8. 构建 Android 项目:执行 Android 构建命令
  9. 返回结果:包含成功状态、输出路径、错误信息和详细日志

整合了 UniApp 构建、Android 配置和模块集成的完整流程,适用于自动化打包场景。