Skip to content

integrateThirdPartyModule

集成第三方模块到Android项目的通用函数,支持库文件、Gradle依赖、源文件和清单文件修改。

前置依赖

依赖参数

参数名类型说明
deps.existsSyncFileSystem['existsSync']检查文件是否存在
deps.readFileSyncFileSystem['readFileSync']读取文件内容
deps.writeFileSyncFileSystem['writeFileSync']写入文件内容
deps.copyFileSyncFileSystem['copyFileSync']复制文件
deps.mkdirSyncFileSystem['mkdirSync']创建目录
deps.joinPath['join']路径拼接
deps.dirnamePath['dirname']获取目录名
deps.xmlParserXMLParserConstructorXML 解析器构造函数
deps.xmlSerializerXMLSerializerConstructorXML 序列化器构造函数
deps.xpathXPathXPath 查询库

环境要求

  • @xmldom/xmldom: XML DOM 解析库
  • xpath: XPath 查询库
bash
npm install @xmldom/xmldom xpath

函数签名

typescript
function integrateThirdPartyModule(
  projectPath: string,
  moduleDir: string,
  packageName: string,
  config: ThirdPartyModuleConfig,
  deps: IntegrateThirdPartyModuleDeps
): Promise<{ success: boolean; message?: string; error?: string; logs: string[] }>

interface ThirdPartyModuleConfig {
  name: string
  libFiles?: Array<{ source: string; targetName?: string }>
  gradleDependencies?: string[]
  sourceFiles?: Array<{
    source: string
    targetDir: string
    targetName?: string
    packageReplacements?: Array<{ oldPackage: string; newPackage: string }>
  }>
  manifestModifications?: ManifestModification[]
  dcloudPropertiesConfig?: {
    featureName: string
    featureImpl: string
    moduleName: string
    moduleImpl: string
  }
}

参数

参数名类型必填说明
projectPathstringAndroid项目路径
moduleDirstring模块目录(如 'app' 或 'HBuilder-uniPlugin')
packageNamestring应用包名
config.namestring模块名称
config.libFilesArray需要拷贝到libs目录的文件列表
config.gradleDependenciesstring[]Gradle依赖列表
config.sourceFilesArray需要拷贝的Java/Kotlin源文件
config.manifestModificationsManifestModification[]AndroidManifest.xml修改项
config.dcloudPropertiesConfigobjectdcloud_properties.xml配置项
depsIntegrateThirdPartyModuleDeps依赖注入对象

返回值

类型说明
Promise<{ success: boolean; message?: string; error?: string; logs: string[] }>Promise,解析为集成结果对象

工作原理

  1. 拷贝库文件:将 .aar.jar 文件拷贝到 libs 目录
  2. 添加Gradle依赖:在 build.gradle 中添加依赖声明
  3. 拷贝源文件:将 Java/Kotlin 源文件拷贝到对应包目录,支持包名替换
  4. 修改AndroidManifest.xml:根据配置添加权限、Activity、Service 等
  5. 配置dcloud_properties.xml:添加 UniApp 原生插件配置
  6. 返回结果:包含成功状态、消息、错误信息和详细日志

这是所有第三方模块集成的基础函数,其他集成函数(如微信登录、QQ登录等)都基于此函数实现。