android app版本自动检测更新
1、新建文本文件,将后缀名改为.properties,然后将此.properties文件拷贝到app目录下
2、新建version文件夹,将下面的六个文件拷贝到version文件夹下。记得修改versionUpdate里的两个路径,一个是apk的路径,一个是.properties文件的路径。这是要放在服务器tomcat---webapps---ROOTS底下发布用的。
3、修改AndroidManifest.xml文件,在AndroidManifest.xml文件中添加以下权限:<string name="message_post_failed">获取SD卡权限失败</string> <string name="tracing_options_title">追踪设置</string>
4、修改colors.xml文件增加白色和红色颜色定义:<color name="white">#fff</color><color name="red">#FF0000</color>
5、修改buil.gradle文件在buil.gradle文件中添加依赖库/*权限获取*/ compile 'com.yanzhenjie:permission:2.0.0-rc4' compile 'com.yanzhenjie.alertdialog:alertdialog:1.0.1'
6、在buil.gradle文件中修改版本信息为动态模式def versionProp衡痕贤伎sFile = file('version_u荏鱿胫协nsign.properties') if (versionPropsFile.canRead()) { def Properties versionProps = new Properties() versionProps.load(new FileInputStream(versionPropsFile)) def code = 2 versionProps['VERSION_CODE']=code.toString() versionProps.store(versionPropsFile.newWriter(), null) defaultConfig { applicationId "com.kx.ss.zzz" minSdkVersion 15 targetSdkVersion 26 versionCode code versionName "2.1" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } } else { throw new GradleException("Could not read version.properties!") }
7、在buil.gradle文件靠近末尾的地方添加以下代码:android { pa罕铞泱殳ckagingOptions { exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' } applicationVariants.all { variant -> variant.outputs.all { output -> // each 改为 all def fileName = "ssapp_unsign.apk" def outFile = output.outputFile if (outFile != null && outFile.name.endsWith('.apk')) { outputFileName = fileName // output.outputFile 改为 outputFileName } } }这段的作用是编译时自动生成名为ssapp_unsign.apk的apk安装包。生成的apk的路径为:项目名->app->build->outputs->apk->debug目录下。
8、至此,版本检测和更新功能已全部实现,在APP打开时会自动检测更新,如果有新版本发布,则会弹出是否更新的提示。