android studio 利用productFlavors 生成三種不同網絡環境的Apk

爲了方便開發,都會有不同的網絡環境

android 開發中我們在項目上線前都需要結果大量的測試,爲了方便不同環境的測試,我們需要打不同網絡環境的apk

今天給大家分享下一個項目打三種apk,這三種apk可以在手機上並行安裝,不會出現覆蓋

主要利用build.gradle 的productFlavors

下面直接上代碼 這些代碼都是在build.gradle文件裏android目錄下的

flavorDimensions "color"
productFlavors {
    productrRelease {
        applicationId "com.example.lishuai.productflavorsapk"
        resValue "string", "app_name", "FlavorsApk"
        buildConfigField 'int', 'SDK_APPID', '123'
        buildConfigField 'String', 'URL_HTTP', '"www.baidu.com"'
        manifestPlaceholders = [

                JPUSH_PKGNAME: applicationId,
                JPUSH_APPKEY : "3cd6db0f0d84ef85f6a38ed3",
                JPUSH_CHANNEL: "developer-default",
                _AMAP_KEY    : "63622f57b1ed9b3b9a11e4707422cbc7",
                _UMENG_KEY   : "5ad446b3f29d98062d00007d",
        ]
        dimension "color"
    }
productrDebug {
    applicationId "com.example.lishuai.productflavorsapk.debug"
    resValue "string", "app_name", "FlavorsDebug"
    buildConfigField 'int', 'SDK_APPID', '567'
    buildConfigField 'String', 'URL_HTTP', '"www.mi.com"'
    manifestPlaceholders = [

            JPUSH_PKGNAME: applicationId,
            JPUSH_APPKEY : "3cd6db0f0d84ef85f6a38ed3",
            JPUSH_CHANNEL: "developer-default",
            _AMAP_KEY    : "63622f57b1ed9b3b9a11e4707422cbc7",
            _UMENG_KEY   : "5ad446b3f29d98062d00007d",
    ]
    dimension "color"
}
}

添加後編譯會報錯,這時候我們還需要添加些東西

在build.gradle文件裏defaultConfig目錄下添加 multiDexEnabled true

這時候我們本來是可以開始打包的,但是我們爲了區分不同的apk的環境,我們可以把applicationId 的對應包名改了

app_name 對應AndroidManifest裏面Application的lable的內容,app_name的字段不要在strings.xml文件裏面出現

在productrRelease節點下有一個int類型的數據和String的數據(String的後面所根的值格式必須是'"sss"'這樣的) 

我們想要用這兩個根據打包類型變更的數據的話,可以這樣引用 BuildConfig.URL_HTTP

通過上面的簡單配置我們就可以在一套代碼裏生成多種環境的app

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章