Android APK版本升级设计

这里写图片描述

说明: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">
......

  1. android:versionCode
    主要用于版本升级,是INT类型的,第一个版本定义为1,以后递增,这样只要判断该值就能确定是否需要升级,该值不显示给用户。
  2. 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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值