에뮬레이터에서 앱을 실행한 상태에서,
일부 코드나 리소스만 수정해서 테스트 해보는 경우,
앱을 종료 시킨후 다시 재빌드하여 설치/실행하는 작업이 번거롭게 느껴질 때가 많다.
안드로이드 스튜디오에서는
이렇게 코드나 리소스의 일부만 수정된 경우,
앱 종료나 재빌드 없이 바로 해당 부분만 교체하여 즉시 실행 할 수 있는 방법을 제공한다.
이를 Apply Changes 라고 한다.
(과거에 제공되던 Instant Run 기능은 최신 안드로이드 스튜디오에선 제거되었다.)
# Apply Changes: 안드로이드 코드/리소스 수정 즉시 반영 방법
안드로이드에서 Run 버튼을 눌러 앱을 빌드하고, 에뮬레이터에 설치/실행하면,
아래와 같은 3개의 버튼이 활성화 된다.
1. Apply Code Changes
- 함수(메서드)의 내부 코드가 일부 변경 되었을 때 사용한다.
- 앱/액티비티의 재실행 없이 바로 적용된다.
2. Apply Changes and Restart Activity
- 리소스(레이아웃, 문자열 등)와 함수 내부의 코드가 일부 변경되었을 때 사용한다.
- 앱은 재실행되지 않고, 관련 액티비티만 변경된 리소스가 적용되어 재시작 된다.
3. Run 'app'
- Apply Changes 적용이 불가한 변경* 이 있는 경우에 사용한다.
- 변경된 버전으로 앱이 빠르게 재실행되며, 재설치 과정은 거치지 않는다.(고 하는데, 로그 상에선 설치된다고 나오는 것 같다.)
- 앱이 실행중이지 않을 때는 아래처럼 Run버튼의 모양이 변경되는데, 이 상태에서 Run버튼을 클릭하면 새로 빌드 및 설치되어 실행된다.
* Apply Chages 적용이 불가한 변경의 예는 다음과 같다
- 필드 추가 또는 삭제
- 메서드 삭제
- 메서드 서명 변경
- 메서드 또는 클래스의 수식어 변경
- 클래스 상속 변경
- Enum의 값 변경
- 리소스 추가 또는 삭제
- 앱 매니페스트 변경
- 네이티브 라이브러리(SO 파일) 변경
# 변경사항 적용 결과
1. 변경 사항이 잘 반영된 경우
- "Applying Changes to 'app' on 에뮬레이터" 로그가 찍히며 실행 중인 앱에 반영된다.
2. 변경 사항이 적용되지 않은 경우
- "Changes were not applied" 로그가 찍히며,
- Reinstall 및 Restrart가 필요하다는 메시지가 노출된다.
Apply Changes에 대한 더욱 상세한 내용은 안드로이드 개발자 사이트 참고
https://developer.android.com/studio/run?hl=ko#apply-changes
'개발(Development) > Android(안드로이드)' 카테고리의 다른 글
[코틀린] 삼항연산자 처럼 사용하는 방법 (0) | 2021.08.25 |
---|---|
[안드로이드] Toast 노출 위치 변경 설정 방법: setGravity() (0) | 2021.08.24 |
[안드로이드 스튜디오] AVD 에뮬레이터 사용/설정 방법 총정리 (0) | 2021.08.23 |
[안드로이드 스튜디오] 에뮬레이터(AVD) 카메라 설정 방법(고급 옵션) (0) | 2021.08.23 |
[안드로이드] TabLayout와 ViewPager2연결 구현 방법 (0) | 2021.08.22 |
댓글