多渠道打包與AndResGuard的結(jié)合實(shí)踐

集成AndResGuard

參見(jiàn)AndResGuard文檔

多渠道打包

我使用的是packer-ng-plugin, 該打包工具打包速度非???。

  1. 新建一個(gè)markets.txt文件,按行分隔聲明渠道名稱。
  2. 下載packer-ng-plugin的打包tools,我這使用的是Python 腳本
  3. 復(fù)制PackerNg.java到項(xiàng)目中
  4. app.gradle中編寫(xiě)打包方法
def packageChannel(String releaseApk) {
    try {
        def stdout = new ByteArrayOutputStream()
        exec {
            //執(zhí)行python腳本打多渠道包
            commandLine 'python', rootProject.getRootDir().getAbsolutePath() + "/app/ngpacker.py", releaseApk, "./markets.txt", rootProject.getRootDir().getAbsolutePath() + "/build/archives"
            standardOutput = stdout
        }
        return stdout.toString().trim()
    }catch (ignored) {
        return "UnKnown";
    }
}
  1. 在資源混淆結(jié)束后執(zhí)行打包方法, 具體的fileName以實(shí)際指定輸出結(jié)果為準(zhǔn),AndResGuard的目錄為"AndResGuard_" + releaseApkName
project.afterEvaluate {
    //在Release后執(zhí)行資源混淆,然后多渠道打包
    //打包命令 ./gradlew resguard
    tasks.getByName("resguard") {
        it.doLast {
            println 'channel package task begin'
            def oldName = VERSIO_NNAME +"_${releaseTime()}_release"
            def fileName = oldName + "_signed_7zip_aligned.apk"
            def rApk = new File("app/build/outputs/apk/AndResProguard_" + oldName+ "/" + fileName)
            if (rApk.exists()) {
                println 'resGuard apk exits begin channel package'
                packageChannel(rApk.absolutePath)
            }
        }
    }
}
  1. 運(yùn)行
    在命令行中輸入gradle clean resguard即可成功得到混淆后的多渠道包

結(jié)合友盟統(tǒng)計(jì)

// 獲取渠道
final String channel = PackerNg.getMarket(this);
AnalyticsConfig.setChannel(channel);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 上一篇文章中詳細(xì)介紹了module中build.gradle文件的屬性和配置,今天詳細(xì)講解一下我在自己的應(yīng)用中主...
    sakasa閱讀 1,126評(píng)論 0 1
  • Android市場(chǎng)的渠道分散已不是什么新鮮事,但如何高效打包仍是令許多開(kāi)發(fā)者頭疼的問(wèn)題。本篇文章著重介紹了目前最新...
    _曾胖子閱讀 2,008評(píng)論 1 10
  • 按照渠道識(shí)別型分類: META-INF渠道識(shí)別型:網(wǎng)頁(yè)版、Python版、BAT腳本、Jar版、Manifest渠...
    比薩u閱讀 2,065評(píng)論 9 18
  • 目錄一、Python打包及優(yōu)化(美團(tuán)多渠道打包)二、Gradle打包三、其他打包方案:修改Zip文件的commen...
    守望君閱讀 5,930評(píng)論 4 17
  • android多渠道打包 1.如何查看apk的簽名信息 1將apk解壓; 2.找到META-INF 下的.RSA文...
    ping0505閱讀 1,127評(píng)論 0 1

友情鏈接更多精彩內(nèi)容