Java 언어로 작성된 코드와 관련된 리소스를 포함하는 압축 파일 형식, 안드로이드 앱 개발에서는 주로 안드로이드 라이브러리를 개발할 때 사용
안드로이드 라이브러리를 더 효과적으로 관리하기 위해 구글이 도입한 새로운 라이브러리 형식, JAR 파일과 유사하지만, 안드로이드 기능(리소스 등)을 지원하는 라이브러리를 더 쉽게 관리 가능
Android 런타임에서 실행되는 소스코드가 포함되어 있는 실행파일
APK
파일을 만들 때 개발자가 작성한 코드가 컴파일하여 .class
파일로 변환
*.class
파일은 자바 바이트코드*
그리고 이 .class
파일들을 하나로 합쳐서 .dex
파일로 변환 (이는 안드로이드 SDK에 포함된 툴이 수행)
변환된 .dex
파일과 여러 리소스를 합쳐 APK
파일을 생성
Google Play에서 사용자가 다운로드하는 압축된 APK는 100MB 이하여야 한다
APK
는 안드로이드 플랫폼에 앱을 배포할 수 있는 파일, 컴파일 된 클래스는 DEX
파일의 형태로 포함시키고 AndroidManifest.xml
과 리소스등의 파일도 포함
최대 150MB까지 담을 수 있고 APK 생성 및 GooglePlay 서명이 연기된다는 장점이 있다.
APK와 비교했을 때 가장 좋은 점은 앱 실행에 필요없는 모든 리소스를 다운받는 APK와는 달리 앱 실행에 필요한 코드와 리소스만 담긴 최적화 APK를 다운로드할 수 있다는 점이다
Google이 안드로이드 앱스토어 시장에서 영향력을 발휘하기 위한 정책이기도 하다. AAB형식을 강제하면 최종 파일은 구글 플레이 서버에서 만들어지고 서명되어 배포되기 때문이다