批量打包 - 使用gradle

使用gradle批量打包

1.signingConfigs(簽名配置)

build.gradle文件的andorid塊中添加signingConfigs

例子:

signingConfigs {
    debugConfigs{
        storeFile file('/Users/laowang/keystore/debug/debug.keystore')
        keyAlias 'androiddebugkey'
        keyPassword 'android'
        storePassword 'android'

    }
    releaseConfigs {
        keyAlias 'laowang'
        keyPassword 'laowang'
        storeFile file('/Users/laowang/keystore/release/release.keystore')
        storePassword 'laowang'

    }
}
  • 這一步也可以在圖形界面中完成,具體步驟如下:
File -> Project Structure -> 選擇具體的Moudle -> 選擇signing選項(xiàng)卡 -> 底部可以選擇添加或者刪除配置,右側(cè)可以配置具體的配置內(nèi)容

2、buildTypes(構(gòu)建類型配置)

build.gradle文件的andorid塊中添加buildTypes

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    qihu360{
        signingConfig signingConfigs.releaseConfigs
        minifyEnabled true
        zipAlignEnabled true
    }
    bd{
        signingConfig signingConfigs.releaseConfigs
        minifyEnabled true
        zipAlignEnabled true
    }
    anzhi{
        signingConfig signingConfigs.releaseConfigs
        minifyEnabled true
        zipAlignEnabled true
    }
    wandoujia{
        signingConfig signingConfigs.releaseConfigs
        minifyEnabled true
        zipAlignEnabled true
    }
}
  • 這一步也可以在圖形界面中完成,具體步驟如下:
File -> Project Structure -> 選擇具體的Moudle -> 選擇Build Type選項(xiàng)卡 -> 底部可以選擇添加或者刪除配置,右側(cè)可以配置具體的配置內(nèi)容

3、在項(xiàng)目根文件夾下生成保存要替換文件的目錄

在項(xiàng)目根文件夾下生成保存要替換文件的目錄,并添加具體的渠道子文件夾,把Manifest.xml文件拷貝到各個(gè)目錄下,并修改相應(yīng)的渠道號(hào)(注意某些版本需要對(duì)meta-data添加tools:replace="android:value")

例子:

/
.../app/
....../channels/
........./bd/
........./qihu360/
........./anzhi/
........./wandoujia/

Manifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.xinye.test">

    <application android:allowBackup="true" android:label="@string/app_name"
        android:icon="@mipmap/ic_launcher" android:theme="@style/AppTheme">
        <!-- 在各個(gè)不同的文件夾下,value替換成相應(yīng)的渠道號(hào) -->
        <meta-data android:name="CHANNEL" android:value="anzhi"
            tools:replace="android:value"/>

        <activity android:name=".TestActivity"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
            android:screenOrientation="portrait">

            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>

        </activity>
    </application>

</manifest>

4、sourceSets(設(shè)置替換文件夾)

build.gradle文件的andorid塊中添加sourceSet

sourceSets{
    bd.setRoot('channels/bd')
    qihu360.setRoot('channels/qh360')
    anzhi.setRoot('channels/anzhi')
    wandoujia.setRoot('channels/wandoujia')
}

5、構(gòu)建

點(diǎn)擊grale -> 具體的moudle -> Task -> build -> build進(jìn)行構(gòu)建

可以在/具體的模塊/build/outputs/apk文件夾下看到生成的apk文件

6、附加內(nèi)容

讀取Manifest文件中的渠道號(hào)的代碼

public static String getApplicationMetadata(Context context,String metaDataKey) {
    ApplicationInfo info = null;
    try {
        PackageManager pm = context.getPackageManager();

        info = pm.getApplicationInfo(context.getPackageName(),
            PackageManager.GET_META_DATA);

        return String.valueOf(info.metaData.get(metaDataKey));
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}
最后編輯于
?著作權(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)容

  • 轉(zhuǎn)載注明出處:http://www.itdecent.cn/p/5255b100930e 0. 前言 完全由個(gè)人翻...
    王三的貓阿德閱讀 2,744評(píng)論 0 4
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評(píng)論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,275評(píng)論 6 342
  • 成長(zhǎng)使得生命增值! 01.你最寶貴的財(cái)富是什么? 1.每天回顧一下自己當(dāng)天注意力的開(kāi)銷 身體健康、情感社交、精神靈...
    守住這塊熱土閱讀 264評(píng)論 0 1
  • 暑假已經(jīng)過(guò)去了半個(gè)月,回到二十多年前,我們只會(huì)在鄉(xiāng)間野外沒(méi)日沒(méi)夜地撒歡,而如今我們的孩子們已經(jīng)利用暑假不斷地提高和...
    鶯時(shí)語(yǔ)閱讀 231評(píng)論 0 0

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