你的位置:首页 > 操作系统

[操作系统]使用友盟进行apk的自动更新


 

【声明】 

欢迎转载,但请保留文章原始出处→_→ 

生命壹号:http://www.cnblogs.com/smyhvae/

文章来源:http://www.cnblogs.com/smyhvae/p/4653736.html

联系方式:smyhvae@163.com 

 


一、下载SDK:
官网链接:http://www.umeng.com/component_update
打开链接后,界面如下:

上图中,点开箭头处所示的位置,下载Android对应的版本:


 
上图中,单击红框部分下载SDK。
  
二、在友盟的后台注册应用:

上图中,单击红框部分,创建新的应用。

上图中,应用创建成功后,会生成AppKey,这就是我们后面要用到的。
 
二、在代码中进行配置:
现在开始看官方文档怎么说的,文档链接如下:http://dev.umeng.com/auto-update/android-doc/quick-start


1、导入SDK所需要的jar包:
将SDK中的libs文件夹合并到本地工程libs子目录下。
 
2、添加资源文件:
将SDK提供的res文件夹拷入工程目录下, 和工程本身res目录合并。提示:友盟SDK提供的资源文件都以umeng_开头。
 
3、配置AndroidManifest.
3.1、打开AndroidManifest.
1 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>2 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>3 <uses-permission android:name="android.permission.INTERNET"></uses-permission>

 上方代码中:第一行的权限是允许将下载的apk保存到sd卡中。第二行的权限是允许检查网络状态,从而根据不同网络环境决定何种下载策略,务必添加该权限。


 
3.2、紧接着,添加APPKEY和渠道到<application>标签下: (如果已经集成了统计SDK等友盟其他服务,不需要重复添加APPKEY)
<meta-data android:value="YOUR APP KEY" android:name="UMENG_APPKEY"/><meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>

 UMENG_APPKEY:用来定位该应用的唯一性,用您该应用的UMENG APPKEY,替换value中的"YOUR APP KEY"。


UMENG_CHANNEL:用来标注应用推广渠道,不同渠道可以上传不同更新包,您可以使用20位以内的英文和数字为渠道定名,替换value中的"Channel ID"。如果不改动,将代表默认渠道。(特别提示:如果需要使用友盟自动更新多渠道更新,必须先集成友盟统计SDK)


 
3.3、添加Service和Activity到<application>标签下:
<service  android:name="com.umeng.update.net.DownloadingService"  android:process=":DownloadingService" ></service><activity   android:name="com.umeng.update.UpdateDialogActivity"  android:theme="@android:style/Theme.Translucent.NoTitleBar" ></activity>

  


4、调用更新接口:
主要应用场景:
    最常见的是自动更新模式:当用户进入应用首页后,如果处于wifi环境则检测更新,如果有更新,弹出对话框提示有新版本,用户点选更新开始下载更新。
在应用程序入口Activity里的OnCreate() 方法中调用如下代码:
1 public void onCreate(Bundle savedInstanceState) {2   super.onCreate(savedInstanceState);3   UmengUpdateAgent.update(this);

 即调用上方的第3行代码即可。



注意: 
    考虑到用户流量的限制,目前我们默认在Wi-Fi接入情况下才进行自动提醒。如需要在任意网络环境下都进行更新自动提醒,则请在update调用之前添加以下代码:UmengUpdateAgent.setUpdateOnlyWifi(false)。 特别提示:针对机顶盒等可能不支持或者没有无线网络的设备, 请同样添加上述代码。

 
5、集成监测:
v2.4版本以后的SDK中默认开启了集成检测功能,在调用任意的更新接口后,我们将替您自动检查上述集成过程中2、3两个步骤是否被正确完成。 如果正确完成不会出现任何提示,否则会以如下的toast提示你。
你可以通过调用UmengUpdateAgent.setUpdateCheckConfig(false)来禁用此功能。

toast的含义如下:
    "Please copy all resources (res/) from SDK to your project!":请检查是不是把res文件夹下所有的资源文件都放到了工程中。
    "Please add Permission in AndroidManifest!":请检查上述步骤1.3中3.1的相关权限是否正确添加。
    "Please add Activity in AndroidManifest!":请检查上述步骤1.3中3.3的Activity是否正确添加。
    "Please add Service in AndroidManifest!":请检查上述步骤1.3中3.3中的Service是否正确添加。
    "Please set umeng appkey!":请检查上述步骤3.2中的APPKEY是否正确添加。

 
三、上传最新的apk进行更新:
假设之前的版本号是1.0,如果你现在又开发出了新的版本,那么只要上传到友盟网站,同时新开发的版本号(VersionCode)要大于1.0,客户端在启动时就会有更新提示。
我们来实验一下。

上图中,先单击红框部分的“组件”,再单击红框部分的“自动更新”,就会出现上图中的文字提示了。我们尤其需要注意上图中的蓝框部分的文字。
 
我们先修改一下工程文件中的代码,将TextView的文本内容改为“乌拉拉,我是第二个版本哟”。
然后修改一下app这个module中的gradle文件,提高版本号。如下图所示:

上图中,更新红框部分的版本号即可。注意第11行的versionCode必须为整数哦。然后生成新版的apk。
 
然后打开友盟的后台:

上图中,将新版的apk上传,并填写更新日志。点击“确定”,弹出如下界面:


 
四、测试: 
v1.0版本的apk运行之后是下面的界面:

加入了自动更新功能之后,再打开程序,弹出了如下界面:

上图中,点击“自动更新”之后,界面如下:

更新完了之后,效果如下:

 

备注:
如果点击更新之后,出现的是如下界面:

上图的错误是因为,前后两个版本的apk用的是不同的签名导致的。
 
另外推荐一个连接大家看看:
友盟自动更新常见问题索引(开发者必读)http://bbs.umeng.com/thread-5924-1-1.html
 
【工程文件】
2015-07-16-UpdateDemo工程文件
 
 
 
 
 

 




湖南旅游住哪里比较方便湖南旅游住宿攻略深圳去广西旅游报价跟团去广西旅游多少钱几月去广西旅游最好2015五一花都宝桑园采摘什么?宝桑园五一有什么水果? 2015花都宝桑园采摘时间表?宝桑园水果成熟期? 春耕时节游龙胜 感受不一样的梯田之美 广州2015五一节哪里有好玩的?五一劳动节广州哪里活动多? 南沙水鸟世界门票团购多少钱?广州南沙水鸟世界怎样预订? 南沙水鸟世界好不好玩?广州南沙水鸟世界有哪些好玩的? 2015珠海春季赏花的好去处?珠海去哪里赏牡丹花? 2015圆明新园牡丹花开放了吗?珠海圆明新园山茶花盛花期? 上海秋季赏花全攻略 上海植物园 上海秋季赏花全攻略 共青森林公园 赏花游园乐翻天 上海秋季赏花全攻略 美富翁建五星级水下旅馆 躺在床上看珊瑚 从天津到马尔代夫要多长时间? 马尔代夫是一个国家吗? 马尔代夫是落地签吗? 从北京到马尔代夫要多长时间? SQCB7M510GA1ME Datasheet SQCB7M510GA1ME Datasheet AQ147A101FAJME Datasheet AQ147A101FAJME Datasheet 06033A180FAT2A Datasheet 06033A180FAT2A Datasheet 齐齐哈尔到香港游线路 齐齐哈尔到香港游线路 齐齐哈尔到香港游线路 从大兴安岭去香港旅行线路 从大兴安岭去香港旅行线路 从大兴安岭去香港旅行线路 从黑龙江去香港旅行线路 从黑龙江去香港旅行线路 从黑龙江去香港旅行线路