流程记录:
开始打包AB
1. 收集需要打包的资源路径
之后收集下Unity自带设置的AssetBundle。收集完这些之后,开始进行合并操作,第一步主要是对Unity设置的AB资源进行去重,第二部将Unity设置的AB所有的依赖资源、以及之前收集的资源路径所依赖的资源进行合并,
以上算是将所有需要打包的资源路径都收集完毕。
2. 导出AB资源
以下为ab资源的索引结构,
3. 导出工程所有用到的dll
导出打包平台的原生工程。
再讲源工程中的DLL复制过去,之后用 http://stahlworks.com/dev/?tool=zipunzip 这个工具进行一次压缩和加密。
4. 压缩AB
5. 将打包好的AB资源拷贝到分包工程目录中去
开始出包分包
利用C#开发的窗体应用,进行渠道选择,分包操作。工具UI窗体如下图:
左边是选择渠道,右边是配置。
首先初始化路径,点击生成开始分包。
具体分包流程如下
合并操作:递归遍历,传入两个父节点,先遍历源xml的子节点,从目标xml的子节点中找到相同name的节点。
需要注意的是在查找相同name的时候,如果name为intent-filter时需要特殊处理下,再找 intent-filter 下子节点中name为Action的节点并且属性名为“name”的属性值,如果属性值相同的则返回。
如果没找到相同节点,则在目标xml中新增一个元素,相当于复制。
如果找到相同节点,对比属性是否有缺失。
- 先将Common下的配置合并一次。
- 如果依赖渠道不为空,则还需要将依赖渠道再走一次合并逻辑。
- 最后再将选中的目标渠道合并一次。
- 开始设置签名信息,将工具中配置好的签名路径和密码读取出来,在写入到临时工程中的 build.gradle中,加入到 signingConfigs 标签中。
- 检查AndroidSdk是否配置,并生成local.properties
- 执行gradle clean命令
- 执行 gradle assembleRelease 开始打包。
- 检查下临时工程下是否正常打出release apk,将Manifest 中配置的包名读取出来,将apk重命名。
- 最后将APK 拷贝到输入 目录即可。
以上就是全部打包分包流程的记录了,用作记录和复习。