Android多渠道打包の根據(jù)渠道來加載相應(yīng)的資源文件及Java代碼
方案需求
由于不同渠道疹尾,對項目會進行一定的修改昙篙,比如圖片秘豹、文字等携御,所以需要根據(jù)渠道來加載相應(yīng)的資源文件,以達到顯示相應(yīng)渠道定制的app既绕,同時不需要新建module方式進行實現(xiàn)
根據(jù)渠道啄刹,定制資源
- 配置渠道,在項目gradle中進行渠道配置
productFlavors {
demo1 {
applicationId 'com.hehe.demo1'
}
demo2 {
applicationId 'com.hehe.demo2'
}
}
-
新建文件夾凄贩,找到app\src\路徑誓军,新建文件夾為剛剛配置的渠道名,即demo1 疲扎、demo2昵时,注意文件夾名字必須和build.gradle里的渠道名對應(yīng),demo1 椒丧、demo2目錄與main目錄同級壹甥。
新建渠道目錄.png -
添加需要替換的資源,在打包時壶熏,如果資源的名稱與app\src\main目錄下res的資源一樣句柠,則會進行替換為當前的同名資源
添加需要替換的資源.png
比如我們現(xiàn)在替換app的logo圖片,及名稱
- app\src\main 下的清單文件
<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
打包結(jié)果棒假,能夠成功替換app的logo及名稱
結(jié)果.png
加載不同的Java代碼同理俄占,就不在此說明了。淆衷。缸榄。
其他方法也可以實現(xiàn),如新建module祝拯,對應(yīng)渠道添加相應(yīng)的module依賴甚带,也能實現(xiàn)該效果她肯,不過module過多的話,會導致項目編譯速度變得慢鹰贵。
- 非常慢晴氨!
- 非常非常慢!碉输!
- 非常非常非常慢W亚啊!敷钾!
Android自動打包
這個可以結(jié)合我前面兩篇關(guān)于Android集成Jenkins實現(xiàn)自動打包功能