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。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories