文章出處

一、友盟多渠道打包:

  在AndroidManifest.xaml文件中application節點下:

<!--友盟多渠道打包-->
        <meta-data
            android:name="UMENG_CHANNEL"
            android:value="${UMENG_CHANNEL_VALUE}" />

  然后在app下的build.gradle文件下的android節點下:

//    方式一:
    productFlavors{
        wandoujia{
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
        }
        xiaomi{
            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
        }
    }

然后重新編譯一下app,選擇Build->Generate Signed Apk,然后會出現多渠道:

 

 

下面有兩種優化方式:

  優化1:

//優化1:
    productFlavors{
        wandoujia{}
        xiaomi{}
    }
    productFlavors.all { flavor ->
        flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]}

 

  優化2:

 //優化2:
    productFlavors{
        wandoujia{}
        xiaomi{}
    }
    productFlavors.all {flavor ->
        flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def outputFile = output.outputFile
            if(outputFile != null && outputFile.name.endsWith(".apk")){
                def fileName = outputFile.name.replace(".apk","-${defaultConfig.versionName}.apk")
                output.outputFile = new File(outputFile.parent, fileName);
            }
        }
    }

 

 

在代碼中獲取渠道信息:

 

private String getChannel(){
        try {
            PackageManager pm = getPackageManager();
            ApplicationInfo appInfo = pm.getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);
            return appInfo.metaData.getString("UMENG_CHANNEL");
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return "";
    }

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()