android-------- 多渠道打包(藉助友盟移動統計分析)

來源:互聯網
上載者:User

標籤:led   alt   來講   col   tde   gconf   deb   統計分析   UI   

好久沒有發部落格了,原因是換工作了,今天端午假期,所以來發一篇部落格,

多渠道打包,藉助友盟移動統計分析,希望對各位有所協助

 

多渠道打包的理解:

渠道包就是要在安裝包中添加渠道資訊,也就是channel,對應不同的渠道,例如:小米市場、豌豆莢、應用寶市場等

為什麼要提供多渠道包?

我們要在安裝包中添加不同的標識,應用在請求網路的時候攜帶渠道資訊,方便後台做運營統計(這就是添加渠道資訊的用處)。

實現多渠道打包的原理

一般來講,這個渠道的標識會放在AndroidManifest.xml的Application的一個Metadata中。然後就可以在java中通過API擷取對應的資料了。

 

進入主題

註冊友盟,並且添加新應用,獲得AppKey

 

引入依賴

 compile ‘com.umeng.sdk:common:latest.integration‘

 

 

AndroidManifest.xml 添加appkey 和渠道預留位置

<!--友盟統計相關 meta-data-->        <meta-data            android:value="5b2497a6f29d985d850001b3"            android:name="UMENG_APPKEY"/><!--友盟 appkey-->                <meta-data            android:value="${UMENG_CHANNEL_VALUE}"            android:name="UMENG_CHANNEL"/><!--渠道號-->

 

在build.gradle中去動態替換掉我們的預留位置的value即可

defaultConfig {        applicationId "com.zhangqie.channel"        minSdkVersion 15        targetSdkVersion 22        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"        multiDexEnabled true //突破應用方法數65535的一個限制          manifestPlaceholders = [UMENG_CHANNEL_VALUE:"name"]    }

 

簽名檔案產生  可以看我的部落格Android Studio apk打包,keystore.jks檔案產生,根據keystore密鑰擷取SHA1安全碼

簽名配置

signingConfigs {        debug {}        //release包添加簽名檔案配置        release{            storeFile file("../channle.jks")            storePassword "123456"            keyAlias "channle"            keyPassword "123456"        }    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘            signingConfig signingConfigs.release        }    }

 

渠道指定兩種方式

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

  //2 productFlavors.all{ flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] }

把前面的注釋取消,  第2處下面代碼刪除就是第二種方式

 

之後再控制台 Terminal

輸入 gradlew assembleRelease  執行打包(注意:  Mac的要這樣添加 ./gradlew assembleRelease

當然 gradlew assembleDebug  這是debug的

也可以指定打包  gradlew assembleWandoujiaRelease豌豆莢的

 

執行打包

 

我弄時遇到一個坑

原因是我的 位置順序放錯誤了

buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘            signingConfig signingConfigs.release                 }    } signingConfigs {        debug {}        //release包添加簽名檔案配置        release{            storeFile file("../channle.jks")            storePassword "123456"            keyAlias "channle"            keyPassword "123456"        }    }

 

所以要注意,

打包完成

 

產生apk包了

 

我們可以改變apk輸出的名稱

buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘            signingConfig signingConfigs.release            //指定我們release包的輸出檔案名 就是我們的渠道名字            applicationVariants.all{ variant ->                variant.outputs.each { output->                    def outFile = output.outputFile                    if (outFile != null && outFile.name.endsWith(".apk")){                        def fileName = "${variant.productFlavors[0].name}"+".apk"                        output.outputFile = new File(outFile.parent,fileName);                    }                }            }        }    }

 

輸入 gradlew assembleRelease  執行打包

 

名稱已改變,根據自己的需要設定,

 

這樣我們多渠道打包就完成了

 

android-------- 多渠道打包(藉助友盟移動統計分析)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.