您的位置:首页 > 移动开发 > Android开发

实现android应用版本自动更新

2013-04-17 16:08 375 查看
一.服务器端

1.将需要更新的apk和版本信息文件发布到服务器,这里我使用的是本地tomcat中



2,。version.json版本的信息,里面有版本编号,客户端通过比较版本编号,来判断是否需要更新。



3.启动tomcat服务器

二.android客户端

得益于android系统的软件包管理和安装机制,我们可以方便的实现软件的自动更新。

1.得到现在使用程序的版本编号

在AndroidManifest.xml里定义了每个Androidapk的版本标识:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ericssonlabs"
android:versionCode="1"
android:versionName="1.0" >


其中,android:versionCode和android:versionName两个字段分别表示版本代码,版本名称。versionCode是整型数字,versionName是字符串。由于version是给用户看的,不太容易比较大小,升级检查时,可以以检查versionCode为主,方便比较出版本的前后大小。

那么,在应用中如何读取AndroidManifest.xml中的versionCode和versionName呢?可以使用PackageManager的API,参考以下代码:

publicstatic int getVerCode(Context context) {
intverCode = -1;
try {
verCode =context.getPackageManager().getPackageInfo(
"com.myapp",0).versionCode;
} catch(NameNotFoundException e) {
Log.e(TAG,e.getMessage());
}
returnverCode;
}
publicstatic String getVerName(Context context) {
StringverName = "";
try {
verName =context.getPackageManager().getPackageInfo(
"com.myapp",0).versionName;
} catch(NameNotFoundException e) {
Log.e(TAG,e.getMessage());
}
returnverName;
}


2. 从服务器获取版本信息文件,与现状的版本进行对比,如果版本vercode有发生变化,那么下载服务器上面的最新版本,并进行安装。





因为应用程序的安装时根据包名的,如果有相同包名的应用安装,那么就会替换。





注意:一般当有新的版本更新时,服务器会通过消息推送的形式,push给客户端,而不是需要每次程序启动时候,都去访问服务器。

源码下载:http://download.csdn.net/detail/kaka89757/5268674

参考文章:http://www.cnblogs.com/ylligang/articles/2277637.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: