U8SDK——如何满足渠道SDK的特殊需求

作者: 分类: U8SDK 发布时间: 2015-03-29 09:35 6没有评论

部分渠道SDK会有一些特殊的操作,比如UC,需要将最后的AndroidManifest.xml中所有的activity的android:launchMode设置为“standard”.因为8sdk设计的目的是统一的SDK接入框架,不能因为某些渠道SDK有特殊,我们就败坏了上层抽象层或者在游戏里面去满足这些特殊操作。

但是,这些特殊操作,又不能不实现。所以,我们就在u8sdk的打包工具中,来用脚本完成这些特殊操作。具体的设计思路是:

1、定义一个脚本执行的接口,打包各个渠道SDK的时候,在最后重新打包之前,如果该SDK有特殊需要执行的脚本,那么就执行该脚本
2、如果SDK需要特殊操作,那么可以在具体的SDK配置目录下,建立一个u8_script.py,脚本里面有一个需要实现的入口,def doU8Script(channel, decDir, newPackageName, sdkDir):
3、这样,如果该渠道SDK有特殊操作,就可以在该接口中完成具体的操作了。

下面,我们来具体看下实现。我们在apk_utils.py文件中增加一个方法,来调用这个特殊脚本的接口:

然后,我们在main.py中,在

之后调用:

这样,我们只需要在具体的sdk配置目录下,新建一个u8_script.py文件,然后里面定义一个def execute(channel, decompileDir, packageName):方法,就可以在这里完成特殊操作了。

我们以uc渠道为例,为其加上“AndroidManifest.xml中所有的activity的launchMode必须为standard”这个特殊需求。

我们在打包工具sdks/sdk/uc目录下新建一个u8_script.py脚本。这个脚本的内容如下:

这样,后面其他渠道SDK也有特殊需求的时候,我们就也可以在该sdk的配置目录下新建一个u8_script.py文件,实现这个特殊操作的接口就OK了

本文出自 U8SDK技术博客,转载时请注明出处及相应链接。

本文永久链接: http://www.uustory.com/?p=1517

评论功能已经关闭,请加入U8SDK技术群进行讨论和咨询:207609068
Ɣ回顶部
U8SDK技术群 x
技术同学请加入
点击加入