标签:
今天说一下关于友盟的自动版本更新(傻瓜式版本更新)
关于自动更新的话,如果让android程序猿自己写的话还是不是那么简单的(对于我这个菜鸟来说...),又要检查当前版本,又要在服务器存储新的版本,又要下载更新等,但是这些复杂的事友盟已经替我们做好了,我们只需要简单的配置一下AndroidManifest.xml文件,之后代码中只填写一句话就可以实现简单的自动版本更新,下面我说一下步骤:
下载最新版SDK的zip包,将其中的libs文件夹合并到本地工程libs子目录下。即把其中的jar文件考到libs下,把其中的.so文件考到libs下的armeabi文件夹下
把下载好的SDK包下面的res中的所有资源文件对应的复制到自己的工程所对应的文件夹下,因为自动更新时系统会用到这些资源文件,没有的话就GG了
以下的内容以官方为准!!
打开AndroidManifest.xml,添加SDK需要的权限到<manifest>
标签下:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
添加APPKEY和渠道到<application>
标签下: (如果已经集成了统计SDK等友盟其他服务,不需要重复添加APPKEY)(就是如果已经有了这两句话就不需要添加了)
<meta-data android:value="YOUR APP KEY" android:name="UMENG_APPKEY"/>(这里的"UMENG_APPKEY"替换成你在友盟申请到的appkey)
<meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>(这里的"UMENG_CHANNEL"是更新的渠道,不填的话就是默认的渠道)
把service和activity复制到AndroidManifest.xml的<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>
在程序的主入口(一般为MainActivity)的setContentView()之前写上这一句话UmengUpdateAgent.update(this);
就像这样:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
UmengUpdateAgent.update(this);
其实到这里已经基本ok了,但是友盟考虑到用户的流量问题,默认情况下没有wifi是不更新的,如果想在没有wifi的情况下也提示更新需要添加UmengUpdateAgent.setUpdateOnlyWifi(false)在UmengUpdateAgent.update(this)之前
上传apk的话,在友盟的我的产品->选对应的应用->组件->自动更新,然后上传就ok了,这里需要注意的是友盟会根据你的versioncode与versionname来做对比,判断是否需要更新,更改versioncode与versionname需要在AndroidManifest.xml中更改
最后祝大家工作愉快,有问题可以留言,大家讨论!
标签:
原文地址:http://www.cnblogs.com/colorful-life/p/4575974.html