install: 연결된 안드로이드 장치에, 원하는 애플리케이션을 설치할 수 있는 명령어. (확장자는 apk로)
형식: adb install (절대)경로 / 애플리케이션.apk
여기서 -d 옵션은 현재 설치된 앱의 버전보다 낮은 버전의 앱을 설치할 수 있는 옵션으로 기존에 설치된 해당 앱보다 현재 install 하려는 코드의 버전이 더 낮아서(sdk를 낮춤) 생긴 오류를 수정하기 위해 추가했습니다.
옵션
설명
-r
기존 앱을 재설치
-t
테스트 중인 앱 설치 가능(원래 보안상 불가능)
-d
현재 설치된 앱의 버전보다 낮은 버전의 앱을 설치
-p
앱의 전체가 아닌 일부만 설치 (앱의 기능을 나눠서 따로 설치할 때)
-g
앱이 필요로 하는 모든 권한을 자동으로 허용 (카메라 등의 권한)
만약 아래와 같은 오류가 발생했다면? : Failure [-26: Package com.android.insecurebankv2 new target SDK 22 doesn't support runtime permissions but the old target SDK 26 does.
오류 원인) stackoverflow 에서 확인해보니, targetSdkVersion >= 23으로 앱을 설치한 다음 targetSdkVersion < 23으로 다시 설치하려고 하면 발생하는 오류
해결 방법) 패키지를 한 번 삭제해준 뒤 다시 설치
1) adb uninstall 패키지명
2) adb install (절대)경로/애플리케이션.apk // 다시 설치
2. unstall 명령어
uninstall: 설치한 애플리케이션을 삭제할 수 있는 명령어.
형식:adb unstall 패키지명
옵션
설명
-k
데이터 유지한 채 애플리케이션만 삭제
2.1 패키지명 찾기
애플리케이션 삭제를 위한 uninstall 명령어는 '정확한 패키지명'이 필요하다. 그러기 위해 shell > pm(package manage) 명령어를 통해 확인할 수 있다.
명령어: adb shell pm list packages -f ❘ grep bank
pm list packages:
pm: 안드로이드 디바이스에서 설치된 앱들을 관리하는 도구
list packages: 디바이스에 설치된 모든 패키지(앱)를 나열하는 명령어
-f:
-f: 패키지(앱)의 설치 경로를 함께 출력
| grep bank:
grep: 주어진 문자열(bank)을 포함하는 라인만 출력하는 리눅스 명령어 -> bank를 필터링.
3. push 명령어
push: PC에 저장된 파일을 연결된 장치에 복사.
형식: adb push 파일 저장위치 / 장치 저장위치
C:\Desktop\secret_message.txt 파일을 연결된 디바이스의 /sdcard/Download 경로에 복사했고, Device Explorer에서 해당 경로를 확인해봤을 때 같은 내용의 secret_message.txt가 생성된 것을 확인할 수 있었다.