热卖商品
新闻详情
Android多渠道包实现不同功能_cnting-CSDN博客
来自 : CSDN技术社区
发布时间:2021-03-24
需求 华为渠道使用华为支付 其他渠道使用支付宝、微信
这样就要求在支付页面 选择支付方式时 华为渠道显示的是华为支付 而其他页面显示的是支付宝和微信
实现 1. 使用productFlavors,共用大部分代码 而支付页面做功能上的区分 在src目录下新建两个文件夹huawei和normal 跟main文件夹在同一级。在huawei和normal里可以建java和res目录 里面就可以放同名的activity了。如果说一个activity大部分地方是相同的 只有个按钮不同 这个就得靠自己抽象出来了在app级的build.gradle文件中添加productFlavor
android { flavorDimensions app productFlavors { huawei {} normal {} sourceSets { main { java.srcDir src/main/java res.srcDir src/main/res jniLibs.srcDir src/main/jniLibs manifest.srcFile src/main/AndroidManifest.xml assets.srcDir src/main/assets dependencies { huaweiImplementation com.huawei.android.hms:iap:2.6.1.301
这样就可以在Build Variants里看到多种build方式
所以如果想把SplashActivity的图片改成带华为图标的 则在huawei/res/里放入一个相同的文件名的图片就可以了 2.使用第三方SDK
有些渠道使用第三方sdk 比如在华为渠道添加华为支付 使用下面这种方式 即渠道名 Implementation
dependencies { huaweiImplementation com.huawei.android.hms:iap:2.6.1.3013.使用walle 如何打渠道包
walle是在productFlavors下一级生成多个渠道包 如果配置了productFlavor 生成的渠道包会如下
huaweiRelease 360xiaomihuawei… normalRelease 360xiaomihuawei…所以如果想只有华为渠道用huaweiRelease的包 其他渠道用normal的包 可以先将normal的包都打出来 然后再单独打个huawei的包 如下代码
basePath $(cd ../ ;pwd)#把所有normal的包都打出来../gradlew -p $basePath clean assembleNormalReleaseChannels -PchannelFile $basePath/app/channel#单独打华为的包../gradlew -p $basePath assembleHuaweiReleaseChannels -PchannelList huawei
Demo地址 https://github.com/cnting/ProductFlavorDemo
参考
[1]: https://www.mtyun.com/library/mt-apk-adaptation
[2]: http://www.cfm880.com/2017/07/08/记一次gradle多渠道 功能分割/
[3]: https://blog.csdn.net/u012551350/article/details/51274284
[4]: https://ghui.me/post/2015/03/create-several-variants/
[5]:https://zhuanlan.zhihu.com/p/33722674
[6]:https://gradle-guide.books.yourtion.com/Chapter06/64.html
本文链接: http://createflavours.immuno-online.com/view-689420.html
发布于 : 2021-03-24
阅读(0)
最新动态
2021-03-24
2021-03-24
2021-03-24
2021-03-24
2021-03-24
2021-03-24
2021-03-24
2021-03-24
2021-03-24