项目的第一版已经成型,要结束了,还差为了后期准备升级的功能没有实现,也就是apk升级,这种需求非常常见,今天上网查了一些资料,听项目经理给我介绍了两种常见的apk升级的思路,总结一下:
一、在服务器端放置一个升级的配置文件,xml或者是json的文件,这个配置文件一般要包括目前服务器上apk的版本信息、下载新版apk的URL地址以及对这个apk升级的描述,一个例子:
<?xml version="1.0" encoding="utf-8"?> <info> <version>1.0</version> <description>1.0版本,速速下载</description> <apkurl>http://127.0.0.1:8080/new.apk</apkurl> </info>
既然服务器上有了描述版本升级的配置文件之后,那么我们就可以在app中解析这个配置文件,判断目前使用的APP版本信息和服务器上的版本信息是否一致。服务器上的apk版本信息通过解析上面的配置文件获得,目前手机上的APP的版本信息通过以下代码获得:
try { int ersionCode = getApplication().getPackageManager().getPackageInfo(getPackageName(), 0).versionCode; } catch (NameNotFoundException e) { e.printStackTrace(); }
之后,如果发现两个版本信息不同,就需要提醒用户升级了。
二、第二种思路比较简单,其实跟第一种是一样的,就是让服务器端提供一个版本升级的接口,我们Android客户端将apk的版本发送到服务器接口,然后这个接口返回是否要进行升级的信息,如果要升级,那么就提醒用户升级,否则就是不升级。因为这个方法简单,我就用这个方式了。。。
三、在做版本升级这个需求时用到的核心代码:
1、如果是配置文件的方式的话,需要解析服务器的xml或json文件,代码之前的文章写过,不重复了。
2、还有就是获取当前APP版本信息代码,上面给出了。
3、从服务器下载apk文件的工具类:
package util; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import android.app.ProgressDialog; /** * 文件下载工具类 * * @author HJW * * @date 2015年12月23日 */ public class DownLoadUtil { /** * 下载文件的操作 * @param serverPath 服务器文件路径 * @param savedPath 本地保存路径 * @param pd 进度条对话框 * @return 下载成功,返回文件对象; 下载失败,返回null */ public static File download( String serverPath, String savedPath, ProgressDialog pd ){ try { URL url = new URL(serverPath); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5000); conn.setRequestMethod("GET"); int code = conn.getResponseCode(); if ( code == 200 ) { int fileSize = conn.getContentLength()/1024; pd.setMax(fileSize); int total = 0; InputStream is = conn.getInputStream(); File file = new File(savedPath); FileOutputStream fos = new FileOutputStream(file); byte[] buffer = new byte[1024]; int len = 0; while ( (len = is.read(buffer)) != -1 ) { fos.write(buffer, 0, len); total += (len/1024); pd.setProgress(total); } fos.flush(); fos.close(); is.close(); return file; } else { return null; } } catch (Exception e) { e.printStackTrace(); return null; } } /** * 获取服务器文件的名称 * @param serverPath 服务器文件路径 * @return 服务器文件的名称 */ public static String getFileName( String serverPath ){ return serverPath.substring(serverPath.lastIndexOf("/")+1); } }
4、安装apk的代码:
/** * 安装apk文件 * * @param file * 要安装的apk文件 */ private void installApk(File file) { Intent intent = new Intent(); intent.setAction("android.intent.action.VIEW"); intent.addCategory("android.intent.category.DEFAULT"); intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive"); startActivity(intent); }
相关推荐
在Android应用开发中,版本升级是一项重要的功能,它能让用户无缝地从旧版本过渡到新版本,提升用户体验。本示例“android应用下载安装apk升级版本实现demo适配Android10”聚焦于如何在Android 10(API级别29)及更...
综上所述,启动另一个APK在Android中主要是通过Intent完成的,涉及Intent的创建、目标指定、数据传递、权限管理和安全考量等多个方面。理解并熟练运用这些知识,能帮助开发者实现更丰富的应用交互。
标题中的"apk.rar_.apk_android_android apk_apk"暗示了我们正在讨论的是一个与Android操作系统相关的APK文件,它被压缩在名为"apk.rar"的RAR格式文件中。APK是Android应用程序的主要文件格式,它包含了应用的所有...
在Android系统中,APK(Android Package)是应用程序的基本打包格式,它包含了应用程序的所有组件,如代码、资源、图标和元数据。当我们提到"android 系统升级apk"时,通常指的是更新现有设备上的应用程序或操作系统...
通过以上方法,我们可以灵活地实现Android两个APK之间的相互调用和参数传递。在实际开发中,应根据项目需求和安全性考虑选择合适的方式。记住,始终确保代码的可读性和可维护性,添加必要的注释以方便他人(和未来的...
### Android Studio 打包 APK 超详细指南 #### 一、引言 在移动应用开发过程中,将应用打包成可发布的格式是非常重要的一步。对于Android应用开发者来说,使用Android Studio进行APK(Android Package Kit)打包是...
yyg_Android20220307.apk
在Android应用开发中,APK签名是一个至关重要的步骤,它确保了应用的完整性和开发者身份。当遇到"android.keystore 拒绝访问"的问题时,通常是因为权限问题或者keystore文件损坏。针对这种情况,我们可以借助第三方...
在Android平台上,开发和调试应用时,理解和测试各种输入设备的键值响应是至关重要的。这个"android测试键值apk"就是为此目的设计的一个工具,它可以帮助开发者验证应用程序对不同按键事件的处理能力,包括物理键盘...
安装本地APK的方法有两种:一种是通过Android设备的设置菜单手动安装,通常需要开启“未知来源”的安装权限;另一种是通过代码实现自动化安装,这通常涉及到`PackageManager`服务的使用。在代码中,我们可以调用`...
在Android系统中,APK(Android Package)是应用程序的基本打包格式,它包含了应用的所有代码、资源和元数据。为了确保安全性和防止恶意篡改,Android系统对APK进行了签名机制。"Android系统签名APK"是指使用特定的...
android2.apk
android hdmi 输入 apk 源码 文档 参考,rk3288 平台 硬件支持hdmiin,软件apk 源码参考
下面,我们将详细介绍两种常见的Android工程打包APK的方法。 **方法1:使用Android Studio** 1. **打开Android Studio**:首先,启动Android Studio并打开你的项目。 2. **构建APK**:在菜单栏中选择`Build`,...
键值测试APK,如标题和描述中提到的"android测试键值apk",是专为这一目的设计的工具。它允许开发者查看并分析用户在物理键盘、触摸屏、甚至是遥控器上输入的按键信息。这个名为`keyTest.apk`的应用程序能够帮助...
本文将详细讲解如何在Android 7.0设备上下载并安装APK应用,以及在这个版本中与APK安装相关的知识点。 1. **APK 文件**:APK 是 Android 应用程序的安装包,类似于 Windows 上的 .exe 文件。它包含了应用的代码、...
1. **兼容性**:它支持两种缓冲区获取方式——mmap(内存映射)和userptr(用户空间指针)。mmap方式通过将内核空间的缓冲区映射到用户空间,减少了数据拷贝,提高了效率;而userptr方式则允许直接操作用户空间的...
6. **调试与部署**:在开发过程中,通常会使用ADB(Android Debug Bridge)来推送和安装APK,但这种方式需要连接电脑。而自动安装apk的DEMO则提供了一种在无PC环境下自动部署的解决方案,这对于自动化测试和远程设备...
Visual Studio中用Xamarin开发Android应用,生成apk文件
在移动应用开发领域,尤其是Android系统中,应用的签名是确保软件安全性和完整性的关键环节。本篇文章将详细探讨Android应用签名的重要性、原理以及如何使用工具进行查看。我们将以"Gen_Signature_Android.apk"为例...