SDK打包工具的实现——参考U8SDK
SDKTool包(生成SDKTool.jar包)
SDK的通用框架, 定义了SDK的接口,通过工厂创建SDK的实例
- SDKPlugin —— 业务层(包含Unity)访问SDK的唯一入口, 通过调用对应的SDKProxy实现相关操作。
- SDKFactory —— 实例化SDK的工厂,通过读取assets目录下的sdk_config.xml文件,配置对应的sdk信息,在需要实例化SDK时,读取这些配置信息,构造对应的SDK实例。
- IxxxSDK —— 某一种功能的SDK的通用接口,定义了这种SDK所拥有的功能方法。
- xxxSDK —— 某一种功能的SDK的代理, 代理通过SDKFactory构造真正的IxxxSDK的实例对象, SDKPlugin与代理直接交互,代理再调用对应的IxxxSDK的实例对象的方法。
母包(引用SDKTool.jar包, 生成apk)
- 母包的业务层(包括Unity部分)通过调用SDKPlugin的方法,实现对应的功能
- 母包中包含sdk_config.xml配置文档,但此时配置文档应该是空的,等待与SDK包的合并后添加内容
SDK包(引用SDKTool.jar包, 生成xxxSDK.jar)
- xxxSDK —— 实现了IxxxSDK中定义的方法
2. 合并步骤:
1).对母包进行解包操作(apktool), 得到包含解包后的内容的文件夹outputDir
2).对xxxSDK.jar进行解包操作(使用dex2jar的d2j-jar2dex将jar转成dex文件 使用baksmali将dex转成smali文件)
3).对xxxSDK的libs中所需要的jar文件进行类似第二步的操作, 得到多个存放smali文件的文件夹。将xxxSDK的libs中的so文件按照其目录结构复制到母包outputDir的libs中
4).将生成的smali文件按其目录结构复制到母包outputDir的smali文件夹内
5).根据xxxSDK的配置文件配置母包outputDir/assets/sdk_config.xml文件
6).合并AndroidManifest
7).拷贝xxxSDK的assets、res两个文件夹内的内容到母包对应文件夹中
8).重复2-7操作直到所有sdk合并完成
9).重新打包(apktool)
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了