admin管理员组

文章数量:1558091

使用工具:Android studio以及tomcat服务器。

一、实现方法与原理;
在build.gradle的versioncode和versionname是升级更新的关键。其中versioncode是一个整型的值,代表APP的版本号,而versionname是一个字符串值,表示APP的版本名称。
1、将新版APP的版本信息和新版APP下载地址一同打包保存在JSON文件中,并上传服务器。
2、获取当前APP的版本信息。
3、从服务器端获取JSON文件并解析其内容,获取到新版版本信息。
4、获取APP现在的版本号并与之前获取的版本号进行比较,如果新版>现在的版本号,则从APP下载地址下载新版的APP。
5、下载完成后提示安装。

二、准备工作
1、搭建Tomcat服务器
首先从http://tomcat.apache/官网下载Tomcat并直接解压即可安装,然后配置Tomcat的环境变量,新建一个CATALINA_HOME,填上安装路径。最后打开bin目录下的startup.bat就可运行服务器。在浏览器输入http://localhost:8080/,出现下图即配置成功。

2、版本更新接口
自己写一段简单的JSON存入版本信息和下载地址。如下所示:
{
“downloadUrl”: “http://10.0.2.2:8080/app-debug.apk”,
“versionCode”: “2”,
“versionDes”: “Welcome to use 2.0,please download”,
“versionName”: “2.0”
}
把这个JSON存入Tomcat服务器,方法是直接把这个文件拷贝到webapps目录下的ROOT文件夹里。

3、添加各种权限
在AndroidManifest.xml中添加如下权限:

	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    <uses-permission android:name="android.permission.RESTART_PACKAGES" />
    <uses-permission android:name="android.permission.INSTALL_PACKAGES"
        tools:ignore="ProtectedPermissions" />

4、导入JSON数据解析gson的jar包

compile 'com.google.code.gson:gson:2.6.2'

5、关于布局
布局只需要设置一个检查更新的按钮和一个提升下载进度的进度条即可。
activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:andro
    xmlns:tools="http://schemas.android/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.wmr.update.MainActivity">

    <Button
        android:
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="检测版本更新"
        tools:layout_editor_absoluteX="148dp"
        tools:layout_editor_absoluteY="210dp" />

</android.support.constraint.ConstraintLayout>

progressbar_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:androhttps://csdnimg/release/blogv2/dist/mdeditor/css/editerView/markdown_views-f23dff6052.css" rel="stylesheet">

本文标签: 功能app