Android 多渠道配置
多渠道打包早已不是什么新技術(shù),網(wǎng)上一搜千千萬(wàn)萬(wàn)數(shù)不盡數(shù),但是對(duì)于沒(méi)使用過(guò)的開(kāi)發(fā)者,看了網(wǎng)上復(fù)制又復(fù)制的文章卻是一頭霧水,完全找不到符合自己需求的多渠道配置,以下總結(jié):
需求:
代碼擼起來(lái):
gradle的多渠道配置,利用productFlavors 需要幾個(gè)包就配置幾個(gè)馬甲,在android{} 里面添加如下:
配置三個(gè)渠道,然后 Sync Now,發(fā)現(xiàn)報(bào)錯(cuò):
ERROR: All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html Affected Modules: appdefaultConfig下添加`
flavorDimensions "versionName"根據(jù)需求配置:
AndroidManifest.xml 的application里面需先配置 meta:
說(shuō)明:
applicationId:顧名思義,指定對(duì)應(yīng)馬甲的包名。
versionName:這個(gè)不用說(shuō)。
resValue:指定馬甲的應(yīng)用名稱,注意:如果馬甲中指定了app的名稱,項(xiàng)目中的strings.xml文件的app_name必須刪除
manifestPlaceholders:指定馬甲的icon,需要在src目錄下新建相對(duì)應(yīng)渠道的文件夾:
該目錄下可以存放res等資源文件,如華為馬甲為例:
在“huawei”渠道目錄下的mipmap文件夾中有一張app_icon的圖片,實(shí)例:
發(fā)現(xiàn)我把其他渠道的icon名稱都配了“app_icon”,這個(gè)不是固定,自定義的。主目錄下的app_icon是默認(rèn)的,AndroidManifest.xml默認(rèn)配置。
AndroidManifest如下:
打包
簽名包需要在gradle配置signingConfigs:
channel.jks我已放置app目錄下。
雙擊–》
assemble:打出來(lái)的包,包含release和debug兩種類型。
assembleDebug:只有debug。
assembleRelease:只有release。
也可以渠道單獨(dú)打包,如assembleXiaomi等等可以自己嘗試。
我雙擊assembleRelease之后:
注意位置查看,打出來(lái)的都是release。
最后我在MainActivity中獲取渠道測(cè)試:
public class MainActivity extends AppCompatActivity {private TextView tv_content;private TextView tv_id;private TextView tv_channel;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv_id = findViewById(R.id.tv_id);tv_channel = findViewById(R.id.tv_channel);tv_content = findViewById(R.id.tv_content);tv_id.setText(BuildConfig.APPLICATION_ID);tv_channel.setText(BuildConfig.FLAVOR);tv_content.setText(BuildConfig.VERSION_NAME);} }簡(jiǎn)單獲取對(duì)應(yīng)的渠道信息。
效果:
總結(jié)
以上是生活随笔為你收集整理的Android 多渠道配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《数据库原理》学生表,课程表,选课表的相
- 下一篇: 西安电子科技大学计算机类专业学费,西安电