使用Java代码来比较Android客户端版本号
关键点
为什么不能使用String.compareTo方法来比较客户端版本号?
举个例子,之前客户端版本号为:9.9.9,而服务器端最新的客户端版本号为:10.0.1,虽然10.0.1明显高于9.9.9,但是按照compareTo方法,这个9.9.9是大于10.0.1的,导致客户端版本号比较错误。
Java代码实现
扯了一些,最后还是要show一下代码的,以下是我的客户端版本号比较代码,欢迎吐槽。
public static int compareVersion(String version1, String version2) {
if (version1.equals(version2)) {
return 0;
}
String[] version1Array = version1.split("\\.");
String[] version2Array = version2.split("\\.");
int index = 0;
int minLen = Math.min(version1Array.length, version2Array.length);
int diff = 0;
while (index < minLen && (diff = Integer.parseInt(version1Array[index]) - Integer.parseInt(version2Array[index])) == 0) {
index ++;
}
if (diff == 0) {
for (int i = index; i < version1Array.length; i ++) {
if (Integer.parseInt(version1Array[i]) > 0) {
return 1;
}
}
for (int i = index; i < version2Array.length; i ++) {
if (Integer.parseInt(version2Array[i]) > 0) {
return -1;
}
}
return 0;
} else {
return diff > 0 ? 1 : -1;
}
}
相关推荐
-
基于JAVA代码 获取手机基本信息(本机号码,SDK版本,系统版本,手机型号)
老风格,废话不多说了,直接给大家贴java代码了. 代码如下: package com.zzw.getPhoneInfos; import android.app.Activity; import android.content.Context; import android.os.Build; import android.os.Bundle; import android.telephony.TelephonyManager; import android.util.Log; public
-
java获取版本号及字节码编译版本方法示例
前言 之所以会有这篇文章,是因为公司的开发环境比较老,寻找一些jar包的时候总是会纠结对应的编译版本,感觉很麻烦,所以写了一个工具类用于读取class或jar文件的编译版本,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 示例代码 package com.jinggujin.util; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.
-
java 实现比较版本号功能
涉及到客户端的系统中经常需要用到比较版本号的功能,但是比较版本号又不能完全按照字符串比较的方式去用compareTo之类的方法: 这就需要我们总结版本号的通用规则,设计一个比较算法并封装成通用方法来使用: 通常版本号如:1.3.20.8,6.82.20160101,8.5a/8.5c等: 通用规则就是,先将版本字符串按照点号分割,然后主版本与主版本比较.此版本与此版本比较,如此按序一级一级往后比较,直到有分出大小: 值得注意的是,很多比较版本号的方法都先将字符串转换成int或者double类型,
-
使用Java代码来比较Android客户端版本号
关键点 为什么不能使用String.compareTo方法来比较客户端版本号? 举个例子,之前客户端版本号为:9.9.9,而服务器端最新的客户端版本号为:10.0.1,虽然10.0.1明显高于9.9.9,但是按照compareTo方法,这个9.9.9是大于10.0.1的,导致客户端版本号比较错误. Java代码实现 扯了一些,最后还是要show一下代码的,以下是我的客户端版本号比较代码,欢迎吐槽. public static int compareVersion(String version1,
-
android客户端从服务器端获取json数据并解析的实现代码
首先客户端从服务器端获取json数据 1.利用HttpUrlConnection 复制代码 代码如下: /** * 从指定的URL中获取数组 * @param urlPath * @return * @throws Exception */ public static String readParse(String urlPath) throws Exception { ByteArrayOutputSt
-
Android中执行java命令的方法及java代码执行并解析shell命令
android中执行java命令的方法大家都晓得吗,下面一段内容给大家带来了具体解析. android的程序基于java开发,当我们接上调试器,执行adb shell,就可以执行linux命令,但是却并不能执行java命令. 那么在android的shell中是否就不能执行java程序了呢. 答案是否定的.我们可以通过app_process来执行java程序. 写一个hello world吧,就是刚开始学java的时候 写得那个hello world,这次要在android上运行. 用记事本新建
-
Java Socket编程服务器响应客户端实例代码
通过输入流来读取客户端信息,相应的时候通过输出流来实现. 服务端类的代码: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; impo
-
Java下http下载文件客户端和上传文件客户端实例代码
一.下载客户端代码 package javadownload; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; /** * @说明 导出虚拟机 * @author wxt * @version 1
-
Android Studio Kotlin代码和java代码相互转化实例
1.java转成kotlin 方法1:快捷键:Ctrl+Shift+Alt+K 方法2:Code - Convert Java File To Kotlin File 2.kotlin转成java 1.Tools>Kotlin>Show Kotlin Bytecode 2.点击 Decompile 补充知识:Android Studio Kotlin插件的简单使用 1.新建一个Project "Kotlin" ,然后在app的build.gradle文件中添加配置,如图所示
-
php生成Android客户端扫描可登录的二维码
本文实例为大家分享了php网页生成二维码,Android客户端扫描登录的具体代码,供大家参考,具体内容如下 使用了Github上具有扫码功能的ZXing开源库,使用了通过随机数生成二维码图片网络API,整个过程经过三步: 1.PHP网页生成二维码,相应随机数存储到数据库中: 2.Android客户端扫码,携带username保存至随机数对应的位置: 3.每隔一段时间,PHP通过Ajax轮询数据库,判断是否为空,不为空则跳转网页. 具体代码: 1. 通过随机数生成二维码图片,并执行轮询操作命令的主
-
python服务器与android客户端socket通信实例
本文实例讲述了python服务器与android客户端socket通信的方法.分享给大家供大家参考.具体实现方法如下: 首先,服务器端使用python完成,下面为python代码: 复制代码 代码如下: #server.py import socket def getipaddrs(hostname):#只是为了显示IP,仅仅测试一下 result = socket.getaddrinfo(hostname, None, 0, socket.SOCK_STREAM) re
-
Android客户端实现图片轮播控件
本文和大家一起写一个Android图片轮播控件,供大家参考,具体内容如下 1. 轮播控件的组成部分 我们以知乎日报Android客户端的轮播控件为例,分析一下轮播控件的主要组成: 首先我们要有用来显示图片的View对象,根据上图中底部中央的5个点,我们知道需要5个ImageView来显示需要轮播的图片,另外还需要5个ImageView来显示5个点.现在考虑以下轮播组件应该具有的行为,首先需要每隔一定时间间隔切换到下一张图片,并且图片间切换的效果应该是平滑的,就像"翻书"一样.由此我们可
-
详解Android客户端与服务器交互方式
最近的Android项目开发过程中一个问题困扰自己很长时间,Android客户端与服务器交互有几种方式,最常见的就是webservices和json.要在Android手机客户端与pc服务器交互,需要满足下面几种条件:跨平台.传输数据格式标准.交互方便. 为了与服务器通讯其实无非就两种协议HTTP和TCP,TCP的学习Socket,HTTP的话熟悉一下HTTP协议和相关Java API.而下面的几种方式就是从这两种协议扩展出来的:webservices soap.SSH的JSON(可参考:该链接
随机推荐
- 微信支付 :curl出错,错误码:60两个问题的解决
- Java数据结构及算法实例:插入排序 Insertion Sort
- ASP.NET实现License Key输入功能的小例子
- 微信小程序 modal组件详细介绍
- thinkphp分页集成实例
- json跨域调用python的方法详解
- Winform学生信息管理系统主页面设计(2)
- MySQL出现SQL Error (2013)连接错误的解决方法
- js实现瀑布流的三种方式比较
- Java注解详细介绍
- PowerShell小技巧之定时抓取屏幕图像
- java删除指定目录下所有空文件夹的方法
- SQL 重复记录问题的处理方法小结
- 动态加载jQuery的方法
- 关于linux下core dump【总结】
- php计算到指定日期还有多少天的方法
- 关于Java多线程编程锁优化的深入学习
- Java多线程编程实战之模拟大量数据同步
- WebUploader客户端批量上传图片 后台使用springMVC
- 解决Linux system v 共享内存问题
