使用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 实现比较版本号功能
涉及到客户端的系统中经常需要用到比较版本号的功能,但是比较版本号又不能完全按照字符串比较的方式去用compareTo之类的方法: 这就需要我们总结版本号的通用规则,设计一个比较算法并封装成通用方法来使用: 通常版本号如:1.3.20.8,6.82.20160101,8.5a/8.5c等: 通用规则就是,先将版本字符串按照点号分割,然后主版本与主版本比较.此版本与此版本比较,如此按序一级一级往后比较,直到有分出大小: 值得注意的是,很多比较版本号的方法都先将字符串转换成int或者double类型,
-
java获取版本号及字节码编译版本方法示例
前言 之所以会有这篇文章,是因为公司的开发环境比较老,寻找一些jar包的时候总是会纠结对应的编译版本,感觉很麻烦,所以写了一个工具类用于读取class或jar文件的编译版本,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 示例代码 package com.jinggujin.util; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.
-
使用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(可参考:该链接
随机推荐
- 分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
- mysql登录遇到ERROR 1045问题解决方法
- jQuery UI Draggable + Sortable 结合使用(实例讲解)
- apache使用.htaccess文件实现屏蔽wget下载网站内容
- VPS CentOS-6 下 LNMP HTTP web服务器的搭建步骤
- JavaWeb利用struts实现文件下载时改变文件名称
- ASP.NET 站点地图(sitemap)简明教程
- js图片延迟加载的实现方法及思路
- 详解腾讯云CentOS7.0使用yum安装mysql及使用遇到的问题
- 用js实现随机返回数组的一个元素
- linux shell命令行选项与参数用法详解
- jsp内置对象及方法详细介绍
- VBS调用WMI快速关闭IE的脚本
- java Apache poi 对word doc文件进行读写操作
- MySQL查询结果复制到新表的方法(更新、插入)
- 基于jquery的滚动新闻列表
- 优化网页之快速的呈现我们的网页
- Android Activity中使用Intent实现页面跳转与参数传递的方法
- js怎样实现下拉框改变,它旁边的图像也改变
- Yii基于CActiveForm的Ajax数据验证用法示例