반응형
일반적으로 앱 버전을 표기하는 방법과 규칙에 대해 설명한다.
버전 표기법
- 일반적으로 앱 버전은 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;
}
반응형
'IT > 안드로이드+JAVA' 카테고리의 다른 글
[Android Studio] 원격 디버깅, 로그 출력 (adb) (4) | 2020.12.20 |
---|---|
[안드로이드] SHA256 해시 알고리즘 예제 (0) | 2020.12.08 |
[안드로이드] 음악파일 재생하기 (MediaPlayer) (0) | 2020.11.22 |
[안드로이드] Find Security Bugs 사용 방법 (소스코드 정적 분석 도구) (0) | 2020.11.16 |
[Android] HTTPS 통신 시 사설인증서 사용 방법 (SSLHandshakeException, SSLPeerUnverifiedException) (4) | 2020.11.07 |