IT/안드로이드+JAVA
[안드로이드] 앱 버전 비교 예제 (버전 표기법, 규칙)
안경 쓴 귀니
2020. 12. 2. 00:13
반응형
일반적으로 앱 버전을 표기하는 방법과 규칙에 대해 설명한다.
버전 표기법
- 일반적으로 앱 버전은 1.0.0 식의 구조를 가지고 있으며 점(.)으로 구분된다.
- <Major Version> . <Minor Version> . <Build or Maintenance Version>
- Major Version: 1부터 시작. 앱 전체 디자인 또는 기능 등이 매우 크게 바뀌는 경우 올림
- Miner Version: 0부터 시작. 기능 추가 기능 변경 등의 경우 올림
- Build or Maintenance Version: 1부터 시작. 자잘한 버그 수정, 코드 보완 등 미미한 변화가 발생한 경우 올림. 패치 버전이라고도 함
버전 비교 참고사항
- 버전은 소수가 아닌 각 버전의 숫자다.
예를 들어 1.0.1과 1.0.10 두 버전이 있을 때 아래와 같다.
- 1.0.1과 1.0.10은 같은 버전이 아니다.
- 1.0.1은 1번째 메이저 버전, 1번째 패치 버전이다.
- 1.0.10은 1번째 메이저 버전, 10번째 패치 버전이다.
- 1.9과 1.10 버전이 있을 때 1.10 버전이 최신 버전이다.
- 1.9는 1번째 메이저 버전, 9번재 패치 버전이다.
- 1.10은 1번째 메이저 버전, 10번째 패치 버전이다.
- 01.01.10 버전을 간략하게 표현하면 1.1.1이 아닌 1.1.10이다.
앱 버전 비교하기 예제
다음 예제는 앱 버전과 비교 버전을 비교하여 업데이트가 필요한지 체크하는 예제이다.
앱 버전과 비교 버전의 자릿수가 다른 경우(ex. 앱 버전 2.0, 비교 버전 1.0.0)는 짧은 버전의 버전을 0으로 처리한다.
public static boolean compareVersion(String appVersion, String compareVersion) {
boolean isNeedUpdate = false;
String[] arrX = appVersion.split("[.]");
String[] arrY = compareVersion.split("[.]");
int length = Math.max(arrX.length, arrY.length);
for(int i = 0; i < length; i++){
int x, y;
try {
x = Integer.parseInt(arrX[i]);
} catch (ArrayIndexOutOfBoundsException e) {
x = 0;
}
try {
y = Integer.parseInt(arrY[i]);
} catch (ArrayIndexOutOfBoundsException e) {
y = 0;
}
if(x > y) {
// 앱 버전이 큼
isNeedUpdate = false;
break;
}else if(x < y){
// 비교 버전이 큼
isNeedUpdate = true;
break;
} else {
// 버전 동일
isNeedUpdate = false;
}
}
return isNeedUpdate;
}
반응형