1. android python多渠道打包,必須使用代碼方式嗎
Python在這里的作用是用來解壓apk,添加空渠道文件(如果在META-INF目錄內添加空文件,可以不用重新簽名應用),重新打包。
所以在寫程序的時候,必須通過代碼方式動態獲取渠道信息(從剛才添加的空渠道文件獲取),並傳給統計平台或者是自己的伺服器。
2. android studio為什麼要做多渠道打包
文檔說明,渠道信息通常需要在AndroidManifest.xml中配置如下值:
<meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>11
上面的value值Channel_ID就是渠道標識。我們的期望的就是在編譯時候這個值能夠自動變化以滿足區分多渠道的需求。
(一)在AndroidManifest.xml里設置動態渠道變數
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />123123
(二)在build.gradle設置proctFlavors
這里假定我們需要打包的渠道為酷安市場、360、小米、網路、豌豆莢
android {
proctFlavors {
kuan {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "kuan"]
}
xiaomi {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
}
qh360 {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qh360"]
3. Android為什麼要多渠道打包
android多渠道打包應該是android應用的多渠道打包推廣。
渠道打包就是分不同的市場打包,比如安卓市場,網路市場,Google市場,360市場等等,太多了。分渠道打包目的是為了針對不同市場做出不同的一些統計,數據分析,收集用戶信息。
4. android studio多渠道打包什麼方式比較好
第一就是配置:在項目的build.gradle裡面配置 先上圖,再上代碼。
第二步,就是打包。(網上有介紹用命令打包,可是我這人太懶,發現了個小竅門,直接在android studio 裡面進行。)上圖(另外,後面我還是補上了gradle命令打包的介紹。大家可以看看http://my.oschina.net/aibenben/blog/370985)
如果沒有keystore,先創建一個,默認為.jks文件,一樣的。
大家這里創建完後,可以再回頭看看前面配置的build.gradle裡面signingConfigs的內容。是不是就懂了(其實我這里有一個疑問,感覺如果用我這種方式去打包,簽名文件都沒有去讀取配置文件裡面的了)
5. android 什麼是多渠道打包
寫Android應用的人類每次發布App都需要面對數十個市場,而為了能夠採集到市場的表現數據,就必須為每一個市場生成相應的apk包,也就是俗稱的渠道包。
6. android多渠道打包為什麼大小不一樣
如果是 Android Studio 的話可以通過 Proct Flavors 解決:Configuring Gradle Builds
1. 在 build.gradle 裡面加上 proctFlavors:
...
android {
...
proctFlavors {
flavor1
flavor2
...
}
}
...
2. 在 src 文件夾下分別創建 flavor1、flavor2 子目錄;
3. flavor1 的圖片放在 flavor1/res/drawable;flavor2 的圖片放在 flavor2/res/drawable,文件名相同;
4. 其他資源比如顏色/字元串放在 flavor1/res/value 里的 xml 文件里,build 的時候會自動合並。
5. 代碼需要有區別的話可以通過自動生成的 BuildConfig.FLAVOR 判斷。
如果不同的 flavor 需要不同的applicationId/versionCode/versionName 可以寫在 flavor1:
...
proctFlavors {
flavor1 {
applicationId "com.example.flavor1"
versionName "1.0-flavor1"
}
...
}
flavor 還可以有 dimension:
...
android {
...
flavorDimensions "releaseType", "market"
proctFlavors {
free { flavorDimension "releaseType" }
pro { flavorDimension "releaseType" }
china { flavorDimension "market" }
global { flavorDimension "market" }
}
}
會自動生成 FreeChina、FreeGlogal、ProChina、ProGlobal 四個包。
7. android 多渠道打包的話極光還可以使用嗎
多渠道打包和極光不沖突吧
多渠道打包是相當於給apk做了個標識
用戶從不同的渠道下載會有不同的標識
極光推送依賴的只是手機設備唯一標識和你自己設置的別名等
8. 求教Android Studio 多渠道打包問題,分數好說
最後去google了一番,發現有些方法,是在gradle文件里切換各種不同的AndroidManifest.xml文件,感覺這樣也太麻煩些了。。。後面搜索了些,發些大家寫得都差不多,發現一個在gradle利用manifestPlaceholders這個屬性來替換渠道值的方法,但我按照這個方法,沒有成功,我就去扒官方的文檔才徹底搞定。下面就講講怎麼實現的吧。
一般用渠道的統計無非是用友盟或者其它之類的,今天就以友盟的為例吧。
渠道信息一般在AndroidManifest.xml中修改以下值:
Java
<meta-data android:name="UMENG_CHANNEL" android:value="wandoujia" />
<meta-dataandroid:name="UMENG_CHANNEL"android:value="wandoujia"/>
首先你必須在AndroidManifest.xml中的meta-data修改以下的樣子:
Java
<meta-dataandroid:name="UMENG_CHANNEL"android:value="${UMENG_CHANNEL_VALUE}" />
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}"/>
其中${UMENG_CHANNEL_VALUE}中的值就是你在gradle中自定義配置的值。
build.gradle文件就利用proctFlavors這樣寫:
Java
proctFlavors {wandoujia {manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]} {manifestPlaceholders = [UMENG_CHANNEL_VALUE: ""]}c360 {manifestPlaceholders = [UMENG_CHANNEL_VALUE: "c360"]}uc {manifestPlaceholders = [UMENG_CHANNEL_VALUE: "uc"]}}
proctFlavors{
wandoujia{
manifestPlaceholders=[UMENG_CHANNEL_VALUE:"wandoujia"]
}
{
manifestPlaceholders=[UMENG_CHANNEL_VALUE:""]
}
c360{
manifestPlaceholders=[UMENG_CHANNEL_VALUE:"c360"]
}
uc{
manifestPlaceholders=[UMENG_CHANNEL_VALUE:"uc"]
}
}
其中[UMENG_CHANNEL_VALUE: "wandoujia"]就是對應${UMENG_CHANNEL_VALUE}的值。
這樣生成apk時,選擇相應的Flavors來生成指定渠道的包就可以了,而且生成的apk會自動幫你加上相應渠道的後綴,非常方便和直觀。
多渠道打包從此就非常快捷了,今天就寫到這里,以後Android studio有相應的tips還是會分享給大家。
9. android多渠道打包
渠道打包就是分不同的市場打包,比如安卓市場,網路市場,Google市場,360市場等等,太多了。分渠道打包目的是為了針對不同市場做出不同的一些統計,數據分析,收集用戶信息。具體你可以看看umeng提供一些開源的免費類庫的統計服務。