android 同一套代碼打包多個apk在同個手機上安裝運行的方案

背景:爲了便於我們開發者的調試和產品測試人員的方便,由此產生需要在同一部機安裝多個APP的需求

同一套代碼打多個APP包並能夠在同一個手機上安裝運行,同時APP名稱、桌面icon圖標也都不同

首先在

app下的build.gradle中:

android {
buildTypes {
        debug {
            applicationIdSuffix "debug"

        }
        release {
            /*//混淆
            minifyEnabled false
            //前一部分代表系統默認的android程序的混淆文件,該文件已經包含了基本的混淆聲明,後一個文件是自己的定義混淆文件
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
productFlavors {
    // demo
    demo{
        // 設置applicationId(這裏很重要,兩個相同applicationId的apk不同同時安裝在同一臺Android手機中)
        applicationId "com.xxx.cce"

        // 自動生成@string/app_name爲demo
        resValue "string","app_name","demo"

        // 定義app_icon字段,在AndroidManifest.xml文件中用到
        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "demo",app_icon : "@mipmap/ic_launcher"]
    }
    // demo2
    demo2 {
        // 解釋同app1
        applicationId "com.xxx.cce2"
        resValue "string","app_name","demo2"
        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "demo2",app_icon : "@mipmap/ic_launcher1"]
    }
}
lintOptions {
    checkReleaseBuilds false
    abortOnError false
}

}

然後 使用

AndroidManifest.xml中 :

<application
    android:name=".xxxxx"
    android:allowBackup="true"
    android:icon="${app_icon}"
    android:label="@string/app_name"
    android:roundIcon="${app_roundicon}"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    tools:replace="android:allowBackup">

<provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="${applicationId}.fileprovider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_paths" />
</provider>

如果不配置一下FileProvider可能會出現提示安裝失敗的情況,所以儘量配置一下比較靠譜一點

原因:provider標籤的authorities屬性的值一定要是唯一的,如果兩個app的authorities屬性值一樣,就會提示安裝失敗,所以你懂得!

 

最後選擇Build---》Generate Signed APK --》Next--》

就會出現如下圖

兩個打包的方式,就是剛剛在build.gradle中配置的,應該不用多說吧,看的懂吧,然後選擇一個就打包成一個apk,然後繼續選擇另外一個繼續打包apk,然後安裝手機桌面就出現兩個apk了

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