① android中的友盟多渠道打包中怎麼生成key
享QQ要QQ互聯注冊授權應用同理微信微博要微信放平台微博平台拿APP授權
② ANDROID多渠道快速打包實踐
參考資料:
美團Android自動化之旅—生成渠道包
Android批量打包提速
AndroidMultiChannelBuildTool
背景
隨著發版需要,每次發版所需渠道包越來越多(現在差不多有一百個左右了),正常gradle打包由於耗時效率過低已無法滿足需求,開始了android多渠道快速打包實踐。
方法
下面主要介紹兩種快速打包的方式:
1、類似美團的方式,在META-INF中寫入渠道名的空文件,用於讀取空文件。 美團Android自動化之旅—生成渠道包
2、在apk末尾動態寫入渠道信息。 一種動態為apk寫入信息的方案
其實這兩種方式都是同一個原理,替換以前從manifest中讀取渠道號的方式,而使用新的獲取方式(渠道號如何寫入就如何讀取)。
所以這首先需要客戶端(重要!):
1、統一應用中獲取渠道的方式並替換之前的(最好兼容)。
2、注意第三方SDK渠道號的傳入,比如友盟sdk,否則第三方會使用默認從manifest中讀取的方式。
下面介紹一種已經測試過的方法(git上開源項目 AndroidMultiChannelBuildTool )
1、安裝環境由於腳本環境是使用python語言,所以需要我們 安裝環境 。
2、導入項目導入開源項目 AndroidMultiChannelBuildTool ),並把想要批量打包的apk文件拷貝到PythonTool目錄下(與py同級),運行py腳本即可打包完成。
以上基本實現快速打包,經過測試一分鍾百十個無壓力。另外需要注意這種方式只適用於打包需求一致渠道號不同,不適用特殊定製渠道。
備註:9月21日補充快速打包java版本,詳見 AndroidMultiChannelBuildTool-Java-master
③ android 怎麼更新友盟sdk
友盟自動更新服務已經不再提供啦,以下為官方說明:
「這個服務因為目前面臨N多非技術的挑戰,導致我們很難再從技術層面維護好這個服務:
iOS: 第三方自動更新服務已經被蘋果官方嚴格禁止了,集成第三方自動更新服務(如友盟+自動更新)的App在審核階段會被大概率的拒絕。蘋果官方數次要求友盟及早把iOS平台的更新服務停掉。在iOS新版本的系統上,其實應用更新已經是默認的功能了,所以第三方更新功能作用就不大了,沒有太多存在意義了。
Android: 面臨的問題比較多,比如應用市場(除了Google Play之外,國內也有越來越多的市場渠道會對集成友盟自動更新插件的App審核拒絕)、部分系統廠商的限制(系統廠商可能會禁止掉非系統的更新,導致友盟更新組件報錯或者拋異常)以及部分運營商的攔截(我們的下載CDN鏈接在某些地區的運營商會被禁止訪問),甚至APK的存儲服務還會面臨政策上的風險。」
④ android studio 怎麼打包各平台apk
(1)Android Studio菜單Build->Generate Signed APK
(2)彈出窗口
(3)創建密鑰庫及密鑰,創建後會自動選擇剛創建的密鑰庫和密鑰(已擁有密鑰庫跳過)
點擊「Create new...」按鈕創建密鑰庫
Key store path:密鑰庫文件的地址
Password/Confirm:密鑰庫的密碼
Key:
Alias:密鑰名稱
Password/Confirm:密鑰密碼
Validity(years):密鑰有效時間
First and Last Name:密鑰頒發者姓名
Organizational Unit:密鑰頒發組織
⑤ Android app的渠道包是什麼意思
1、渠道包:
渠道包指的是在各大應用市場,發布的apk包的清單文件中,某個meta-data標簽下,配置的value不一樣,這個標簽的作用就是用來區分是哪個市場的,比如你發布到360.這個值就是你就可以配置成360,豌豆莢就可以配置成wandoujia,那麼這么配置的作用是幹嘛的?很簡單,就是用來做統計的,比如我們項目中用的是友盟統計,它可以統計用戶從哪個平台下載了你們的app,從而更好的掌握用戶的操作習慣。所以,如果app沒有統計功能的需求,你只需要打一個同樣的包,直接發布到各個平台即可,根本不用關心什麼渠道。
2、首發渠道包的含義我並不理解,字面的意思可能是說
在同一個apk版本中,有些渠道平台擁有優先體驗最新版本的許可權,那麼這些平台就是首發平台,之後過了一個星期,才將這個apk發布到另外一些的平台。
3、抓包
首先要明白,抓包和渠道包沒有半點關系。
抓包指的是我們在請求伺服器的時候,發出去的所有請求我都可以直觀的看到,包括請求的地址,請求頭,請求體,以及伺服器返回的結果:響應頭,響應體等等。這個從不可見到直觀可見的抓取過程,才是抓包。
抓包的主要作用是方便與服務端人員的配合。Windows比較好用的抓包工具是Filder,OS可以使用Charles(收費)。
⑥ 求教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還是會分享給大家。
⑦ 求教Android Studio 多渠道打包問題,分數好說
Android的多渠道打包問題,一直是讓人頭疼的問題。之前用友盟的打包工具,但是不知道為什麼,打包出來的apk有時候運行會出異常。後來用ant來打包,但是這幾天升級了ADT22.2.1後,release總是出錯,很郁悶啊~~~
今天又試著在google上查找多渠道打包方案,讓我找到了一個好東西:
http://www.orchidshell.com/
蘭貝殼兒:一個Eclipse插件,為Android開發提供了多渠道打包功能和一些工具類。
⑧ android 友盟社會化組件 自定義分享列表怎麼弄
<!--###################注冊SDK使用的Activity######################-->
<!--分享編輯頁-->
<activity
android:name="com.umeng.socialize.view.ShareActivity"
android:configChanges="orientation|keyboard"
android:launchMode="singleTask"
android:noHistory="true"
android:theme="@style/Theme.UMDialog"
android:windowSoftInputMode="stateVisible|adjustResize">
</activity>
<!--############QQ空間和QQSSO授權的Activity注冊############-->
<activity
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true">
<intent-filter>
<actionandroid:name="android.intent.action.VIEW"/>
<categoryandroid:name="android.intent.category.DEFAULT"/>
<categoryandroid:name="android.intent.category.BROWSABLE"/>
<!--100424468,如果你使用的公用賬號,則不需要修改;否則修改成你在QQ開放平台申請的APPID-->
<dataandroid:scheme="tencent100424468"/>
</intent-filter>
</activity>
<activityandroid:name="com.tencent.plus.ImageActivity"/>
<activityandroid:name="com.tencent.connect.common.AssistActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:screenOrientation="portrait">
</activity>
<!--###################添加UmengAppkey######################-->
<meta-data
android:name="UMENG_APPKEY"
android:value="xxxxxxxxxxxxxxxxxxxxxx">
</meta-data>
</application>
<uses-sdkandroid:minSdkVersion="8"/>
<!--###################聲明SDK使用的相關許可權######################-->
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/><!--檢測網路狀態-->
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/><!--獲取mac地址作為用戶的備用唯一標識-->
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/><!--獲取用戶手機的IMEI,用來唯一的標識用戶。-->
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/><!--緩存資源優先存入SDcard-->
<uses-permissionandroid:name="android.permission.INTERNET"/><!--允許應用程序聯網,以便向我們的伺服器端發送數據。-->
<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/><!--用於評論模塊分享位置信息-->
<uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/><!--用於評論模塊分享位置信息-->privatevoidinitialUM(){
//首先在您的Activity中添加如下成員變數
mController=UMServiceFactory.getUMSocialService("com.umeng.share",
RequestType.SOCIAL);
//設置分享內容
mController
.setShareContent("友盟社會化組件(SDK)讓移動應用快速整合社交分享功能,http://www.umeng.com/social");
mController
.setShareMedia(newUMImage(mContext,R.drawable.ic_launcher));//設置分享圖片內容
SocializeConfigconfig=mController.getConfig();
//開通簡訊
config.setShareSms(true);
config.setShareMail(true);
config.setPlatforms(SHARE_MEDIA.QZONE,SHARE_MEDIA.TENCENT);
//wx967daebe835fbeac是你在微信開發平台注冊應用的AppID,這里需要替換成你注冊的AppID
StringappID="wxfc7bdd52daa288f9";
//微信圖文分享必須設置一個Url
StringcontentUrl="http://t.cn/zTXUNMu";
//添加微信平台,參數1為當前Activity,參數2為用戶申請AppID,參數3為點擊分享內容跳轉到的目標url
UMWXHandlerwxHandler=config.supportWXPlatform(getActivity(),appID,
contentUrl);
//設置分享標題
wxHandler.setWXTitle("浪騰微博客戶端不錯");
//支持微信朋友圈
UMWXHandlercircleHandler=config.supportWXCirclePlatform(
getActivity(),appID,contentUrl);
circleHandler.setCircleTitle("浪騰微博客戶端還不錯..");
}
⑨ 如何實現友盟第三方登錄與分享
獲取友盟Appkey
如果你之前已經在友盟注冊了應用,並獲取到了Appkey,可以繼續使用它.
如果你尚未在友盟注冊開發者賬號,需要先注冊,注冊之後登錄你的賬號,點擊添加新應用,填寫完應用基本信息後,將進入"下載SDK並添加代碼"頁面,此頁面即可得到Appkey。
下載並安裝SDK
* 下載[SDK最新版](http://dev.umeng.com/social/android/sdk-download)
* 添加代碼和資源引用,我們提供了兩種方式,可以根據需求選擇
A.解壓SDK壓縮包,將文件夾中的social_sdk_library_project文件夾導入Eclipse,並在您的工程中添加對此項目的引用即可。
B.解壓SDK壓縮包,將文件夾中的'main/libs'和'main/res'文件夾復制到你的項目工程根目錄下(如使用'ADT 17'以下用戶需要手動添加'libs'下的jar文件到工程Path中),同時將需要添加的對應平台(platform文件夾下)的jar包和res文件放到你的工程目錄下 />
針對不平台所需要添加的數據
1 微信平台
2
3 <activity
4 android:name="com.umeng.example.wxapi.WXEntryActivity"
5 android:configChanges="keyboardHidden|orientation|screenSize"
6 android:exported="true"
7 android:screenOrientation="portrait"
8 android:theme="@android:style/Theme.Translucent.NoTitleBar" /> 9
10 人人網
11
12 <activity
13 android:name="com.renn.rennsdk.oauth.OAuthActivity"
14 android:configChanges="orientation|navigation|keyboardHidden" />15
16 騰訊
17
18<activity
19 android:name="com.tencent.tauth.AuthActivity"
20 android:launchMode="singleTask"
21 android:noHistory="true" >
22 <intent-filter>
23 <action android:name="android.intent.action.VIEW" />
24 <category android:name="android.intent.category.DEFAULT" />
25 <category android:name="android.intent.category.BROWSABLE" />
26 <data android:scheme="tencent100424468" />
27 </intent-filter>
28 </activity>
29 <activity android:name="com.tencent.connect.common.AssistActivity"
30 android:screenOrientation="portrait"
31 android:theme="@android:style/Theme.Translucent.NoTitleBar" />32
33 谷歌地圖
34
35 <uses-library
36 android:name="com.google.android.maps"
37 android:required="false" />
38 <uses-library android:name="android.test.runner" />39 facebook
40 <activity
41 android:name="com.facebook.FacebookActivity"
42 android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
43 android:label="@string/app_name"
44 android:theme="@android:style/Theme.Translucent.NoTitleBar" />
45 <provider android:name="com.facebook.FacebookContentProvider" android:authorities="com.facebook.app.FacebookContentProvider+appid"
46 android:exported="true" />
47 <meta-data
48 android:name="com.facebook.sdk.ApplicationId"
49 android:value="@string/facebook_app_id" />50
51 新浪微博
52
53 <activity
54 android:name=".WBShareActivity"
55 android:configChanges="keyboardHidden|orientation"
56 android:screenOrientation="portrait" >
57 <intent-filter>
58 <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
59 <category android:name="android.intent.category.DEFAULT" />
60 </intent-filter>
61 </activity>
62 <activity
63 android:name="com.sina.weibo.sdk.component.WeiboSdkBrowser"
64 android:configChanges="keyboardHidden|orientation"
65 android:windowSoftInputMode="adjustResize"
66 android:exported="false" >
67 </activity>68
69 <service android:name="com.sina.weibo.sdk.net.DownloadService"
70 android:exported="false"></service>71
72 支付寶
73
74<activity
75 android:name=".apshare.ShareEntryActivity"
76 android:configChanges="keyboardHidden|orientation|screenSize"
77 android:exported="true"
78 android:screenOrientation="portrait"
79 android:theme="@android:style/Theme.Translucent.NoTitleBar" />
4. 打開平台選擇面板
4.1 各個平台的配置,建議放在全局Application或者程序入口
1 PlatformConfig.setWeixin("wx967daebe835fbeac", ""); //微信 appid appsecret
2 PlatformConfig.setSinaWeibo("3921700954","");//新浪微博 appkey appsecret
3
4 PlatformConfig.setYixin("");//易信 appkey
5
6 PlatformConfig.setRenren("201874","","");//人人 appid appkey appsecret
7 PlatformConfig.setQQZone("100424468", ""); // qq qzone appid appkey
8 PlatformConfig.setAlipay("2015111700822536");//alipay appid
說明:需要使用第三方公司api的平台,新浪,騰訊等,是需要去申請appkey的。人人豆瓣只能在伺服器端設置。其它需要配置appid的平台,如qq,微信,易信,twitter等都需要在本地設置。還有一部分平台需要在mainfest中配置,前面已經提到過。
授權
目前友盟社會化組件支持的第三方登錄平台為:新浪微博、QQ、微信、人人網、豆瓣。(特別說明:QQ空間,qq微博使用qq授權)
⑩ Android 怎麼獲取 umeng 的 渠道信息
Andriod版本APP獲取umeng的渠道信息,可以讓技術人員在程序中嵌入渠道編碼,具體步驟如下:
進入友盟網站,注冊帳號,綁定友盟應用統計;
下載友盟SDK文件,由技術開發人員嵌入到APP程序代碼中,具體操作方法可以參考友盟網站的嵌入指南;
根據安卓版本不同的發布渠道,定義好channel ID;
修改代碼中與channel相關的代碼,比如將<meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>中的Channel ID替換為您應用的推廣渠道名稱,channel id自定義。
對應每個渠道生成一一對應的APK安裝包;
將標記好Channel ID的渠道安裝包,在對應的渠道發布;
定時登錄友盟後台查看渠道數據。