디바이스와 연결하여 테스트 할 때 어떤 동작을 진행하는지 알아보자.
Android에서의 빌드는 개발자가 소스 코드를 작성한 후 앱 설치 파일
APK
를 만들기까지의 실행 과정을 의미한다.
Android는 기본적으로 Linux 커널 위에 여러 소프트웨어 스택이 쌓인 형태로 Linux의 빌드와 동일하다고 생각하면 된다.
Link
를 수행하여 실제 실행 파일로 만드는 과정을 의미한다.빌드 도구는 외부 라이브러리 추가 및 업데이트 등의 설정 시간을 단축시킨다. 또한 테스트 실행 및 호환성 체크까지 진행한다.
Android에서 사용되는 빌드 도구는 maven
, gradle
등이 있으며 구글에서는 gradle
의 사용을 권장하고 있다.
gradle
내부의 빌드 스크립트를 작성하여
등을 진행한다.
빌드 프로세스는
gradle
빌드 도구가 수행한다. 빌드 프로세스는 앱의 소스 코드와 별도 스크립트를 결합하여APK
파일을 생성한다.
코틀린 컴파일러는 .kt
파일/ 자바 컴파일러는 .java
파일을 .class
바이트코드파일로 변환한다.
가상 머신(Virtual Machine)에서 실행되기 위한 코드다. 바이트코드는 소스 코드와 기계어(머신 코드)의 중간 형태로, 직접 실행 가능한 바이너리 코드보다 더 추상화된 형태를 가지고 있다.
Android SDK
의 dx
도구를 사용하여 .class
파일들을 .dex
파일로 변환한다.
dx
: Android SDK에 포함된 유틸리티로, Java 바이트코드 파일(.class 파일)을 Dalvik 바이트코드 파일(.dex 파일)로 변환하는 역할을 한다.
dex
: dex(Dalvik Executable 파일)은 Android 운영체제에서 실행하기 위한 바이트코드 파일이다. Dalvik 또는 ART 가상 머신에서 실행된다.Android 리소스 패키징 도구(aapt(Android Asset Packaging Tool)
)와 gradle
사용하여 리소스 파일 및 외부 라이브러리 모듈을 .dex
파일과 함께 APK 파일로 패키징합니다.
APK
파일은 서명되어야 Android 디바이스에서 실행될 수 있다. APK
파일에 서명하기 위해서는 디지털 인증서를 사용해야 한다. APK
파일에 서명하는 작업은 빌드 과정에서 gradle
에 설정된 값에 따라 자동으로 수행한다.
이렇게 서명된 APK
가 만들어질 수 있다.
애플리케이션
애플리케이션 프레임워크
라이브러리 및 Android 런타임
하드웨어 추상화 계층 (HAL)
리눅스 운영체제 (커널)
하드웨어
APK와 실행파일
설치된 APK
는 안드로이드 런타임과정을 따라 초기 JIT
방식을 활용하여 앱을 설치한 후, 이후 자주 사용하는 앱을 AOT
방식을 활용하여 컴파일하는 방식으로 진행된다.
PC에 USB로 스마트폰과 연결한다.
스마트폰 설정 메뉴에서 빌드 번호
를 검색한다.
USB 디버깅
을 활성화워치 개발자 옵션 활성화
개발자 옵션에서 "무선 디버깅" 선택하여 활성화 (와이파이 연결 필수)
"+ 새 기기 등록" 선택
워치 화면이 꺼지거나 와이파이 환경이 재접속 될 경우 포트값과 페어링 번호가 달라질 수 있으니 화면이 꺼지지 않도록 주의
윈도우 - 실행 - cmd (.../Sdk/platform-tools) 또는 Android Studio 터미널에서
adb pair IP주소 및 포트 (예 192.1xx.0xx.xxxxx)
엔터 입력 후 "Enter pairing code:" 에 페어링 코드 확인 후 입력
워치에서 페어링 확인
출처 - minu님 블로그
APK 파일 생성 및 전송
flutter run
명령어를 사용하여 Flutter 프로젝트를 빌드하고 APK 파일을 생성한다.ADB를 통한 설치 및 실행
Flutter 앱 실행