Post

adb 로 apk 설치하기

단일 apk 와 여러 개의 다중 apk 설치하기

adb 로 apk 설치하기

Introduction

디바이스에서 설치된 앱을 뽑거나 PC 에서 수동으로 앱을 디바이스에 설치해야 할 때가 있다.

이때 기본적으로

1
adb install

위와 같이 설치를 할 수 있는데

분할된 형식의 다중 apk 가 등장하면서 다른 방식으로 설치를 진행해야 한다.

What is that

apk 는 안에 다양한 abi 가 포함되어 있는 형태이다. 그러면 자연스레 용량이 커질 수 있는데 다중 apk(aab) 은 그러한 apk 의 문제를 해결하기 위한 등장하였으며 이는 구글 스토어에서만 배포할 수 있다는 점이 있다.

The Key to Solving the Puzzle

단일 APK 일 떄

1
adb install sample.apk

위와 같이 쉽게 설치할 수 있다.

여러 개의 다중 APK 일 때

여러 개의 apk 형식일 경우 install-multiple 이라는 걸 대신 사용하여야 한다.

디바이스에서 앱을 추출하기

추출하려는 앱의 패키지 이름을 먼저 알아야 하는데 패키지 이름을 입력하면 해당 패키지 이름의 설치된 apk 경로를 반환한다.

1
adb shell pm path com.ruffalo.test

결과는 아래와 같다.

1
2
3
4
5
package:/data/app/~~ruewiorhewoih==/com.ruffalo.test-ioeeoruwero==/base.apk
package:/data/app/~~ruewiorhewoih==/com.ruffalo.test-ioeeoruwero==/split_config.arm64_v8a.apk
package:/data/app/~~ruewiorhewoih==/com.ruffalo.test-ioeeoruwero==/split_config.en.apk
package:/data/app/~~ruewiorhewoih==/com.ruffalo.test-ioeeoruwero==/split_config.ko.apk
package:/data/app/~~ruewiorhewoih==/com.ruffalo.test-ioeeoruwero==/split_config.xxhdpi.apk

그러면 해당 패키지들을 다 로컬로 추출하겠다.

1
2
3
4
5
adb pull /data/app/~~ruewiorhewoih==/com.ruffalo.test-ioeeoruwero==/base.apk .
adb pull /data/app/~~ruewiorhewoih==/com.ruffalo.test-ioeeoruwero==/split_config.arm64_v8a.apk .
adb pull /data/app/~~ruewiorhewoih==/com.ruffalo.test-ioeeoruwero==/split_config.en.apk .
adb pull /data/app/~~ruewiorhewoih==/com.ruffalo.test-ioeeoruwero==/split_config.ko.apk .
adb pull /data/app/~~ruewiorhewoih==/com.ruffalo.test-ioeeoruwero==/split_config.xxhdpi.apk .

결과는 아래와 같이 출력된다.

1
2
3
4
5
/data/app/~~ruewiorhewoih==/com.ruffalo.test-ioeeor.../base.apk: 1 file pulled, 0 skipped. 21.6 MB/s (81734290 bytes in 3.613s)
/data/app/~~ruewiorhewoih==/com.ruffalo.test-ioeeor...4_v8a.apk: 1 file pulled, 0 skipped. 17.7 MB/s (22200979 bytes in 1.199s)
/data/app/~~ruewiorhewoih==/com.ruffalo.test-ioeeor...config.en.apk: 1 file pulled, 0 skipped. 2.4 MB/s (45465 bytes in 0.018s)
/data/app/~~ruewiorhewoih==/com.ruffalo.test-ioeeor...config.ko.apk: 1 file pulled, 0 skipped. 2.1 MB/s (24985 bytes in 0.011s)
/data/app/~~ruewiorhewoih==/com.ruffalo.test-ioeeor...ig.xxhdpi.apk: 1 file pulled, 0 skipped. 6.4 MB/s (79875 bytes in 0.012s)

위와 같이 pull 하여 로컬로 옮긴 것을 볼 수 있다.

install-multiple 을 통하여 설치하기

아래와 같이 설치해야할 다중 apk 들이 있다고 가정헤보겠다.

1
2
3
ruffalo@main test_app % ls
base.apk              split_config.arm64_v8a.apk    split_config.ko.apk
split_config.en.apk   split_config.xxhdpi.apk

install-multiple 를 통해 설치를 진행한다.

1
2
3
4
5
ruffalo@main test_app % adb install-multiple base.apk \
> split_config.arm64_v8a.apk \
> split_config.ko.apk \
> split_config.en.apk \
> split_config.xxhdpi.apk

adb install-multiple을 사용할 때, 모든 필요한 Split APK를 빠짐없이 제공해야 정상적으로 앱이 실행됩니다.

This post is licensed under CC BY 4.0 by the author.
If you find any errors, please let me know by comment or email. Thank you.

© Ruffalo. Some rights reserved.

I'm

Using the Chirpy theme for Jekyll.