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

Android APK版本升级设计

2016-07-07 09:55 399 查看


说明:Android APP的版本可以在androidmainfest.xml中定义,主要有android:versionCode和android:versionName。

Androidmainfest.xml文件中内容,如下例子

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.xxx.xxx"

android:versionCode="2"

android:versionName="1.1.1">

......


android:versionCode

主要用于版本升级,是INT类型的,第一个版本定义为1,以后递增,这样只要判断该值就能确定是否需要升级,该值不显示给用户。

android:versionName

这个是说明的版本号,由三部分组成..,该值是个字符串,可以显示给用户。

补充说明:

versionCode是给设备程序识别(升级)用的,必须是一个interger值,整数,代表app更新过多少次;

versionName是给用户看的,可以写1.1 , 1.2,1.2.1等等版本,代表app当前是什么版本。

服务端

说明:一般情况下是有版本控制模块的

a.首先在服务器项目下建立一个文件夹来存放APK安装文件:

b.设计数据库(表字段:ID 、apk_versionCode、apk_versionName、apk_name、apk_path、apk_describe、apk_uploader、apk_STime)

客户端

a.首先获取服务端最近一次APK上传的版本信息(关键字段是apk_versionCode,apk_path)

b.其次获取当前客户端APK的版本信息

//版本名

public static String getVersionName(Context context) {

return getPackageInfo(context).versionName;

}

//版本号

public static int getVersionCode(Context context) {

return getPackageInfo(context).versionCode;

}

//包信息

private static PackageInfo getPackageInfo(Context context) {

PackageInfo pi = null;

try {
PackageManager pm = context.getPackageManager();
pi = pm.getPackageInfo(context.getPackageName(),
PackageManager.GET_CONFIGURATIONS);

return pi;
} catch (Exception e) {
e.printStackTrace();
}

return pi;


}

c.版本比较,如果版本不相同,则执行更新,相同则退出更新操作(一般是对话框)。

d.异步下载APK。

e.安装APK。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android apk 升级