1、packerNg 式打包
成都网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、成都小程序开发、集团企业网站建设等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:假山制作等众多领域,积累了大量丰富的经验,同时也获得了客户的一致赞扬!Android应用使用的APK文件就是一个带签名信息的ZIP文件,根据 ZIP文件格式规范,每个ZIP文件的最后都必须有一个叫 Central Directory Record 的部分,这个CDR的最后部分叫”end of central directory record”,这一部分包含一些元数据,它的末尾是ZIP文件的注释。注释包含Comment Length和File Comment两个字段,前者表示注释内容的长度,后者是注释的内容,正确修改这一部分不会对ZIP文件造成破坏,利用这个字段,我们可以添加一些自定义的数据,PackerNg项目就是在这里添加和读取渠道信息。
<a href='https://github.com/mcxiaoke/packer-ng-plugin/blob/master/sample/build.gradle' > 对应github地址</a>
2、META-INF 式打包
可以只修改已有apk的渠道标志,快,批量,原理简单
3、Gradle 打渠道包
基本原理是利用Gradle的 manifest merger 功能
这个功能的主要用途是能够在运行时替换AndroidManifest.xml里面的内容
第一步 在AndroidManifest.xml里配置meta-data
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />
第二步 在模块的build.gradle文件的defaultConfig里加上PlaceHolder定义
android {
...
defaultConfig {
...
manifestPlaceholders = [ UMENG_CHANNEL_VALUE:"default_channel" ]
}
}
这里的作用有两个,一是声明UMENG_CHANNEL_VALUE是可替换值的PlaceHolder,二是为其设置默认值。
第三步 在模块的build.gradle文件里添加ProductFlavors配置
android {
productFlavors {
default_channel{}
wandoujia{}
_360{}
yingyongbao{}
xiaomi{}
baidu{}
huawei{}
jifeng{}
}
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [ UMENG_CHANNEL_VALUE:name ]
}
}
第四步 一次生成所有渠道包
到工程目录下运行gradlew assembleRelease。
可以看到这次编译一共产生了对应productFlavors段的不同渠道包。
可以反编译每个apk,打开AndroidManifest.xml看看,发现友盟这一段的配置已经相应的被修改了。
<meta-data
android:name="UMENG_CHANNEL"
android:value="default_channel" />
还可以利用Gradle生成单独的渠道包
如 gradlew assembleWandoujiaRelease
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文标题:android多渠道打包-创新互联
文章网址:https://www.cdcxhl.com/article28/dgggcp.html
成都网站建设公司_创新互联,为您提供网站收录、ChatGPT、网站内链、标签优化、App设计、网页设计公司
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联