android 中动态加载广告sdk

关于动态加载sdk的话题,网上介绍比较多;今天通过第三方工具来取个巧,虽然方法也有点不太靠谱,但终归是一个思路。

项目里面接入了穿山甲sdk和广点通sdk广告,结果放到应用市场时说被拒了,因为有广告,所以产品同学问能把广告动态下发吗,一天时间够吗?我心中的是一万匹羊驼跑过,先不说应用市场是怎么检测的,如果是检测 Manifest 就惨了,基本没办法;现在先假设没检查配置清单,怎么办呢?项目里接过 Tinker 热修复功能,干脆就直接用热修复来实现插件化吧,虽然生效率有待提高,但总归是个方法。(Tinker 支持增加Activity,不支持 Service 等)


Android Studio 本身提供了打马甲包的功能,所以就用到了 马甲包+热修复 模式。广告业务比较杂,尤其是牵涉到各种广告bean的引用,如果基础包就把sdk都删除掉,那么项目中会因为引用缺少文件而报错,我们此时需要做的就是在主工程中把广告相关的bean之类的代码都放到一个总的文件里,里面可根据逻辑在划分n个文件;然后创建个马甲包,把上面的文件对象拷贝一份,保持同样的类名和方法名,但把方法中的广告逻辑干掉,同时不影响主逻辑;方法中形参的bean可以用 Object 来代替,在方法中使用类型转换。然后基础包用马甲包命令打包,补丁包用主工程包命令打包,然后通过合成补丁来完成广告sdk和广告业务的下发。

你可能感兴趣的:(Android,知识)