💡요약
- 안드로이드 전용 개발 환경인 Android Studio의 기본 사용법과 필요한 패키지에 대해 알아보고자 함
- 가상 단말기인 AVD 설치에 대해 알아보고자 함(*설치 오류 이슈도 다뤄보고자 함)
- 안드로이드 개발에 앞서 개발 하고자 하는 버전을 선정하고 맞추는 방법에 대해 알아보고자 함
✔️Android Studio 설치 / JDK 설치
- JDK 설치(자바 기반 소프트웨어를 개발하기 위한 도구들로 이뤄진 패키지), JDK 안에 가상머신도 존재
- 현재 안드로이드 스튜디오는 Open JDK를 포함하고 있기 때문에 별도의 JDK 설치는 필요X (안스 안에 다 있다~)
✔️API 버전 설정
안드로이드 스튜디오에서 새 프로젝트를 만들 때, Minimun SDK 를 설정하라고 나온다.
SDK는 개발자가 응용 프로그램을 만들 때 필요한 도구들을 모아놓은 도구 꾸러미이다.
그래서 그 안에 API, 라이브러리 등이 있고, JAVA 응용프로그램을 만들 때는 주로 JDK 라는 SDK를 사용한다.
안드로이드 앱개발을 하면 그 앱은 안드로이드 OS를 사용하는 모바일 기기에서 사용될 것이다.
그런데 안드로이드 플랫폼(OS)는 계속 업그레이드 될 것이고, 다양한 기술들을 지원할 수 있게 됐다.
예를 들어 옛날 갤럿기 2에는 없덩 광각 카메라, 지문 인식 기능들이 요즘 갤럭시 폰에서는 사용이 가능하다.
그래서 이 Minimum SDK를 설정할 때 아래 2가지를 고려해야 한다고 생각한다.
- 어떤 기능을 구현하고 싶은가?
- 얼마나 많은 기기에서 사용이 가능한 앱을 만들고 싶은가?
예를 들어 내가 안드로이드 버전 6.0 마시멜로우의 API level 23에 맞춰서 개발을 한다고 해보자.
그러면 개발자는 API leve 23 이하의 기술들을 사용해 앱을 개발할 수 있다.
그리고 그렇게 개발된 앱은 버전 6.0 마시멜로우 이상의 기기에서만 다운로드 받아 사용할 수 있다.
이전 버전의 기기는 6.0 마시멜로우에서 지원하는 기능이 없기 때문에 API level 23 이하의 기술들을 사용했다 한들 23의 기술이 1개라도 쓰였다면 이전 버전의 기기에서는 동작을 안 할 수 있다.
반면에 6.0 마시멜로우 이상의 기기에서는 아래 버전의 API를 지원하는 하위 호환성 이라는 특징 덕분에 앱을 사용할 수 있다.
따라서 버전을 최대로 올려서 각종 신기술을 다 사용해 개발한다고 해서 무조건 좋은 것은 아니다. 안드로이드는 하위호환성은 지원하지만 상위 호환성을 지원하지 않기 때문이다. 그림과 같이 점유율을 보면 level 30을 사용하는 사용자는 24.3% 밖에 안 된다. 즉, 이 버전의 기기를 사용하는 사람이 별로 없기 때문에 아무리 최신 기능을 구현해놓아도 쓸 사람이 별로 없다는 것이다.
결론적으로 개발자는 적당한 버전의 Minimum SDK를 선택하여 개발하고,
만약 나중에 나온 버전의 API의 기능을 추가하고 싶다면
버전별로 코드를 분기하여 작성하기도 한다.
예를 들어 내가 마시멜로우로 개발을 했는데 pie의 인공지능 기능을 추가하고 싶다면 코드상에서 기기의 버전에 따라
인공지능 기능이 포함된 기능을 동작시킬 수도 안 시킬 수도 있다.
minSdkVersion
- 해당 앱이 구동될 수 있는 최소 OS 커트라인
- 플랫폼의 OS 버전이 minSdkVersion 보다 낮으면 앱 설치X
compileSdkVersion
- 컴파일 시 사용되는 API 버전, 새로운 API가 배포될 때마다 compileSdkVersion은 최신 설정 권장
- 이전 버전의 기기들에서 나중에 나온 API를 사용할 수 있도록 맞춰주는 것
- targetSdkVersion을 높이지 않는다면 실제로 최신 기능을 실제 사용은 X
targetSdkVersion
- 실제 앱이 디바이스에서 동작할 때 사용되는 API 버전
1) 디바이스 버전 API 26> targetSdkVersion API 24
-> 해당 기기에서 26의 기능들을 사용할 수 있지만 앱은 24 베이스로 동작
2) 디바이스 버전 API 26 == targetSdkVersion API 26
-> 26 베이스로 동작
3) 디바이스 버전 API 26 < targetSdkVersion API 27
-> 앱은 기기 버전인 26 베이스로 동작 (주로 국내 제조사들의 늦은 OS 업데이트로 발생)
Q. 아니 그러면....OS 업데이트 시키고 compileSdk, targetSdk 버전 다 올리면 minSdk도 올라가는겨???
compileSdkVersion에 따라 개발할 수 있는 API 기능들이 달라지고
개발을 했다고 해도 targetSdkVersion이 해당 API와 상응해야 실제 실행(Run)에서 동작을 함
그리고 디바이스의 OS 버전 또한 targetSdkVersion 이상이여야 해당 기기에서 이 동작을 받아서 제어해줄 수가 있는것!
일반적으로 최신 API가 배포되면 compileSdkVersion을 먼저 올려 최신 API에 대한 대응을 마치고, targetSdkVersion을 올려 실제 run(사용)에서도 최신 기능을 사용
또한 Gradle 의 buildToolVersion도 compileSdkVersion을 올릴 때 함께 올려서 최신버전으로 맞춰주는 것이 정상적인 밀드 수행을 야기
당여히 OS 버전도 업데이트를 해줘야 컴파일이든 런타임이던 업데이트된 API를 적용이 가능
✔️AVD (가상 애뮬레이터) 설치
- 컴퓨터의 가상화 기능을 이용해 단말기를 대신하여 매우 빠른 속도로 테스트 할 수 있는 기능
'Android' 카테고리의 다른 글
[안드로이드/View] View Binding (0) | 2022.09.06 |
---|---|
[안드로이드/View] View의 개념 (0) | 2022.09.03 |
내가 몰라서 정리하는 SDK, JDK, API 개념 (0) | 2022.03.15 |
안드로이드의 특징 (0) | 2022.03.13 |
[JAVA] 안드로이드 앱개발 로드맵 (0) | 2022.03.13 |