一、说明:依照《SDK添加渠道对接文档(内部).docx》文档,把渠道SDK接入到我们的poolsdk中间件之后,需要将相应的资源按一定的规范提交到公共SDK后台供打包工具下载。
二、资源组织规范:
如下图所示:
ForAssets文件夹:存放的是安卓工程中assets文件夹中的资源;
ForFiles文件夹:存放的是微信支付回调页WXEntryActivity.smali和WXPayEntryActivity.smali(如果渠道SDK存在微信支付的情况下,并且有这两个文件的要求下,就把它的smali文件保存在此次。如果没有,可以留空);
ForLibs文件夹:存放的是so库;
ForRes文件夹:存放的是安卓工程中的res资源;
unknow文件夹:存放的是apktool反编译出来的unknown文件夹中的文件;
classes.dex文件:apk经过特殊处理后得到的dex文件(可通过在_Tool文件夹里ExtractCode文件夹中的ExtractCode.bat脚本进行抽取);
config.xml文件:打包工具的配置文件;
ForManifest.xml文件:安卓工程中manifest中的文件,需去掉启动activity;
poolsdkfile.zip文件:该文件为以上文件的压缩,最终提交到公共SDK后台的也是此文件;
三、资源在仓库中的存储和命名规范:
如下图所示:
渠道SDK的简称:一般为渠道SDK名字的拼音全拼,要求与公共后台填写的简称一样(主要是方便以后的查找)
SDK版本号:要求命名要与渠道给过来的SDK文件标识的版本号一致(也是为了方便以后的查找)
foolsdkfile:该文件夹存放的就是资源组织规范中展示的内容
四、注意点:
1)提取assets中的资源时,除了在安卓工程中的assets文件夹中的资源,也要留意有些jar包中也夹带着assets资源,这些资源也是需要复制到ForAssets文件夹中的。这里建议,使用apktool直接反编译apk,然后得出的assets的资源即为所有的assets资源。
2)ForFiles中关于微信的两个文件的samli资源的,请参考《SDK添加渠道对接文档(内部).docx》文档中的附加注意点的第一点。
3)ForRes中的资源,由于这资源是用来与游戏母包的资源进行合并再打包的,所以很可能存在资源同名的冲突,所以我们要去掉一些通用资源。例如:string.xml中的app_name,drawable中的ic_launcher.png,layout中的activity_main.xml等。否则打包工具因为资源冲突而打包失败。
4)ForManifest中复制的是渠道SDK里面必须的权限和四大组件以及各种meta-data的配置,尽量不要复制测试用例相关的资源。
5)config.xml打包工具配置文件,有些特殊功能的配置,可以参考《SDK添加渠道对接文档(内部).docx》文档中的附加注意点的第二点和第三点。
五、gradle自动抽取资源文件:
前四点是资源抽取的说明以及方法,这里提供一种快捷的抽取资源的方法,该方法基于gradle自动化构建系统。具体使用方法,请查看文档《gradle快捷抽取资源》。