상세 컨텐츠

본문 제목

Do it 안드로이드 앱 프로그래밍 책의 소스를 SDK34 버전으로 마이그레이션

안드로이드+드론 제작

by 김일국 2024. 9. 30. 13:42

본문

3년 전 학원 강의에 사용할 목적으로 [Do it! 안드로이드 앱 프로그래밍(개정8판)-이지스퍼블리싱출판사]의 소스( https://www.easyspub.co.kr/20_Menu/BookView/445/PUB ) 중

한줄일기장(SingleDiary) 앱을 교육용으로 커스터마이징해 보았다.

최근에 구글 플레이스토어에 앱을 배포하는 기준이 안드로이드 API14(Sdk34) 이상으로 상향 되었기 때문에,

- 기존 소스는 플레이스토어에 앱을 배포할 수 없다. 그래서, Sdk34에 실행되도록 마이그레이션 하였다.

- 그리고, JCenter() 라이브러리 서버도 이제는 완전 폐지되었기 때문에,

KingJA:SwitchButton:v1.1.8 모듈도 사용하지 못한다. 대신, jitpack.io 에 올려져 있는  KingJA:SwitchButton:v1.1.3 버전을 사용하도록 소스를 수정하였다.

- 또한, Sdk버전이 올라가면서, 사진을 가져오는 권한 부분도 강화 되어서 해당 소스도 추가 되었다.(아래 정리한 내용)

- 구글 플레이스토어에 API14(Sdk 34)이상만 targetSdkVersion로 사용하도록 조건을 정했기 때문에...
- build.gradle과 wrapper에(build:gradle:7.4.2로 업, gradle-7.5-bin.zip, 로 업)
  과 Azul Zulu OpenJDK 13사용, AndroidManifest(보안코드 추가)
- jcenter() deprecated 때문에 mavenCentral()로 추가 후 
  KingJA:SwitchButton:v1.1.3 로 변경할 수 밖에 없었음
- 원래는 jcenter()에 존재했던 1.1.8 버전 이었으나 
  https://jitpack.io/#KingJA/SwitchButton/v1.1.3 으로 변경.
- AndroidManifest에서 android:requestLegacyExternalStorage="true" 추가
- MainActivity에서 verifyStoragePermissions(this) 메서드 추가
- 사진이 회전되는 문제처리: imageAutoRotate(90) 으로 변경

- 적업한 최종 깃 소스 : https://github.com/miniplugin/SingleDiary

- 이번에 작업하면서, IDE는 기존 안드로이드 스튜디오

- 북극여우(2020. 기본Sdk31+gradle-7.0.2-bin.zip+com.android.tools.build:gradle:7.0.3, Open JDK 11) 버전 대신에,

- 코알라(2024, 기본Sdk35+gradle-8.7-bin.zip+ com.android.tools.build:gradle:8.6.0 , JetBrains JDK Runtime 17.0.11) 에서 작업 해 보았다.(아래)

- 구글 플레이스토어에 기존에 배포된 앱 4개와 신규 [공개 테스트]로 배포한 싱글다이어리가 보인다.(아래)

- 위 앱을 클릭하면 작업한 소스를 구글플레이스토어에 [공개 테스트] 메뉴에서 버전 15로 출시한 결과가 보인다.(아래)

- 앱에 대한 설명은 아래 이미지로 간단히 소개한다.(아래)

Ps1.기존 Sdk 마이그레애선을 수동으로 업그레이드 했다. 일명 AGP(Android Gradle Plugin) 업그레이드.

- 기존: build.gradle과 wrapper에(com.android.tools.build:gradle:4.0.1, gradle-6.1.1-all.zip)  과 OpenJDK 11사용

- 수동: build.gradle과 wrapper에(build:gradle:7.4.2로 업, gradle-7.5-bin.zip, 로 업)  과 Azul Zulu OpenJDK 13사용 후 플레이스토어에 배포

- 안드로이드 스튜디오 코알라 버전에서 자동으로 AGP를 업그레이드 해 놓았다.(아래 순서대로)

1). AGP 업그레이드 어시스턴트 창 띄운 후 아래 Run seleceted steps 버튼을 클릭한다.(아래)

2). 업그레이드 결과와 JDK버전을 확인 해 본다.(아래)

- 자동: build.gradle과 wrapper에(build:gradle:8.6.0로 업, gradle-8.7-bin.zip, 로 업)  과 JetBrains Runtime 17사용으로 변경.

3). 테스트용 스마트폰(LG X폰, API6, Sdk23)에서 실행해 본다.(아래 정상확인)

 

Ps2. 참고로, 너무 오랜동안 구글 플레이스토어에 앱을 배포하지 않으면 개발자 권한이 사라지기 때문에 이번에 구글계정으로 플레이스토어에 배포활동을 해 보았다.

관련글 더보기

댓글 영역