① 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的渠道安装包,在对应的渠道发布;
定时登录友盟后台查看渠道数据。