這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)Android中怎么實(shí)現(xiàn)多渠道打包功能,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
分宜網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
1.生成簽名文件
點(diǎn)擊 Build -> Generate Signed APK:
2.創(chuàng)建一個(gè)簽名
紅色填寫部分需要認(rèn)真填寫,并牢記,其余部分隨意填寫
有了簽名,單個(gè)app打包我就不詳細(xì)說了,具體說下多渠道打包的步驟
2.多渠道打包
作用:就是根據(jù)不同的渠道值,去具體分析每個(gè)渠道的用戶情況
步驟一:
在AndroidManifest.xml的application標(biāo)簽里添加一個(gè)meta-data標(biāo)簽定義
步驟二:
修改app下的build.gradle文件,在build.gradle中添加productFlavors屬性配置占位符
productFlavors { baidu { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"] } helper91 { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "helper91"] } anzhuo { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "anzhuo"] } }
或者
productFlavors { baidu { } helper91 { } anzhuo { } } productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] }
配置完成,現(xiàn)在打包會(huì)發(fā)現(xiàn)
可以選擇不同的渠道去生成不同的apk文件
3.多渠道中修改某個(gè)渠道的包名
helper91 { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "helper91"] applicationId="com.test.channel" }
4.某個(gè)渠道使用不同應(yīng)用名稱或圖標(biāo)
比如百度渠道要使用自己?jiǎn)为?dú)的應(yīng)用名稱和圖標(biāo)
1.src目錄下創(chuàng)建名字baidu的文件夾,這里文件夾的名字要和.gradle設(shè)置的渠道名字一樣
2.創(chuàng)建values->strings.xml文件并創(chuàng)建字段”app_name”值為自己想要的應(yīng)用名稱
3.修文應(yīng)用圖標(biāo),在baidu文件夾下創(chuàng)建res文件夾,并且在res文件夾下邊創(chuàng)建mipmap-hdpi,mipmap-mdpi,mipmap-xhdpi,mipmap-xxhdpi,mipmap-xxxhdpi,不同像素值得文件夾,并把想要設(shè)置為應(yīng)用的圖標(biāo)拷貝進(jìn)去,注意這里的圖片的名字必須和main下的一致。
5.自動(dòng)規(guī)范apk的名字
applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (variant.buildType.name.equals('release')) { //生成apk名字的格式:Channel_1.0.0_2016-06-22_baidu.apk //可自定義自己想要生成的格式 def fileName = "Channel_${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk" output.outputFile = new File(outputFile.parent, fileName) } } }
def releaseTime() { return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC")) }
上述就是小編為大家分享的Android中怎么實(shí)現(xiàn)多渠道打包功能了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。