티스토리 뷰
ADB란 무엇인가?
ADB는 단순한 명령어 도구가 아니라, 안드로이드 디바이스와 연결해 다양한 작업을 실행할 수 있는 생명줄과도 같은 도구입니다. 앱 설치부터 시스템 로그 확인, 설정 변경까지, ADB는 안드로이드의 복잡한 구조를 들여다보고, 이해하고, 심지어 수정할 수 있도록 해줍니다.
만약 안드로이드가 거대한 복합 기계라면, ADB는 그 기계를 들여다보고 작동 원리를 이해하며 세부적인 조정을 할 수 있는 열쇠와도 같습니다.
ADB의 세 가지 구성 요소
ADB는 다음 세 가지 핵심 구성 요소로 작동합니다.
1. 클라이언트(Client): 개발 머신에서 상호작용하는 부분입니다.
2. 데몬(Daemon): 디바이스에서 실행되며 명령을 수행하는 작업자입니다.
3. 서버(Server): 클라이언트와 데몬 간의 통신을 관리하는 관리자입니다.
이 세 가지 구성 요소가 서로 연결되어 키보드에서 안드로이드 내부 깊숙이까지 이어지는 다리를 형성합니다.
ADB의 활용 사례
ADB는 앱 설치, 로그 확인, 설정 조정, 디버깅 등 다양한 작업에 사용됩니다.
여기에서는 로그 관리, 디바이스 디버깅, 네트워크 문제 해결, 파일 전송, 서비스 관리 등
ADB의 주요 활용 사례를 간단히 소개합니다.
ADB를 활용한 로그 관리
애플리케이션에서 문제가 발생했을 때 가장 먼저 확인하는 것은 로그입니다. ADB의 Logcat 명령어는 이러한 로그를 실시간으로 확인하거나 필요한 정보를 필터링할 수 있는 강력한 도구를 제공합니다.
ADB를 활용한 디바이스 디버깅
ADB는 연결된 디바이스 목록 확인, 앱 설치 및 제거, 재부팅, 부트로더 모드 전환, 데이터 전송 등의 다양한 디버깅 작업을 지원
Unlocking the Power of ADB Logcat
• adb logcat: 디바이스에서 실시간으로 스트리밍되는 로그를 확인
• adb logcat -b main: 애플리케이션 로그에 초점을 맞춥니다.
• adb logcat -b system: 안드로이드 OS 자체에서 발생하는 메시지를 확인
• adb logcat -b crash: 앱 크래시 로그를 분리하여 분석
• adb logcat -b default: main, system, crash 로그를 결합해 종합적으로 확인
• adb logcat -b event: 시스템 이벤트를 모니터링
• adb logcat -b kernel: 커널 로그를 자세히 확인
• adb logcat -b all: 모든 로그와 메시지를 확인
• adb logcat -d: 로그를 덤프하여 나중에 검토할 수 있습니다.
• adb logcat -c: 현재 로그 버퍼를 비워 초기화
• adb logcat > log.txt: 로그를 파일로 캡처해 자세히 분석할 수 있도록 저장
Pro Tip: Saving Logs for Future Reference
• adb logcat -b all > logcat.txt: 모든 로그를 텍스트 파일로 저장하여 이후 검토하거나 동료와 공유하기에 적합합니다.
ADB for Debugging: The Basic Commands
• adb devices: 연결된 모든 디바이스를 나열하며, 현재 작업 중인 디바이스를 확인
• adb root: 수퍼유저 모드로 상승하여 더 강력한 명령을 실행
• adb reboot: 디바이스를 재부팅합니다. 때로는 초기화가 필요한 경우 유용
• adb reboot -p: 디바이스를 안전하게 종료
• adb reboot bootloader: 부트로더 모드로 진입하여 시스템 이미지를 플래시하는 작업 등을 수행
• adb reboot recovery: 복구 모드로 전환하여 시스템 복구 작업을 진행
• adb install <apk_file>: APK를 디바이스에 직접 설치
• adb install -r <apk_file>: 앱 데이터를 유지한 채로 앱을 재설치
• adb uninstall <app_package_name>: 앱을 깔끔하게 제거
• adb uninstall -k <package_name>: 앱 데이터를 유지하면서 앱을 제거
• adb start-server: 디버깅 세션을 시작하기 위해 ADB 서버를 시작
• adb kill-server: 작업 완료 후 ADB 서버를 중지
ADB Settings
• adb shell settings list system: 모든 시스템 설정을 확인
• adb shell settings list secure: 디바이스 보안에 영향을 미치는 보안 설정을 나열
• adb shell settings list global: 디바이스 전체에 적용되는 글로벌 설정을 확인
• adb shell settings get <namespace> <setting_name>: 특정 설정의 현재 값을 가져옵니다.
• adb shell settings put <namespace> <setting_name> <value>: 설정 값을 변경
Example: Changing Screen Brightness
• adb shell settings put system screen_brightness 100: 화면 밝기를 80%로 설정
Transferring Files
• adb push <local_file> <remote_path>: 로컬 머신에서 디바이스로 파일을 복사
• adb pull <remote_file> <local_path>: 디바이스에서 로컬 머신으로 파일을 가져옵니다.
Android Device Properties
• adb shell getprop: 디바이스 속성을 모두 나열하며, 구성 및 기능에 대한 통찰을 제공
• adb shell getprop <property_name>: 특정 속성의 값을 가져옵니다.
• adb shell setprop <property_name> <value>: 속성을 수정하여 디바이스 동작을 조정
SELinux Commands
• adb shell getenforce: SELinux가 비활성화, 강제 적용, 또는 허용 모드인지 확인
• adb shell setenforce <0|1>: SELinux를 허용(0) 또는 강제 적용(1) 모드로 전환
Exploring Directories
• adb shell ls: 모든 파일과 디렉터리를 나열
• adb shell ls -s: 각 파일의 크기를 표시하여 저장 공간 관리를 확인
Network Commands
• adb shell netstat: 활성 네트워크 연결을 보여줌
• adb shell netstat -l -t: 활성 인터넷 연결에 집중
• adb forward <local> <remote>: 로컬 포트를 디바이스 포트로 포워딩
• adb reverse <remote> <local>: 디바이스에서 로컬 머신으로 데이터 전송(포트 리버스 포워딩)을 수행
• adb shell ifconfig: 네트워크 인터페이스와 IP 주소를 표시
• adb shell ip addr show: 네트워크에 대한 상세 정보를 제공
Dumpsys Commands
• adb shell dumpsys -l: 모든 시스템 서비스를 나열
• adb shell dumpsys: 모든 시스템 서비스에 대한 세부 데이터를 확인
• adb shell dumpsys battery: 배터리 정보를 분석
• adb shell dumpsys battery set level 20: 배터리 수준을 20%로 설정
• adb shell dumpsys battery set ac 1: 충전 모드를 시뮬레이션
Service Management
• adb shell service list: 디바이스에서 사용 가능한 모든 서비스를 나열
Core Bug Report Commands
• adb shell bugreport: 전체 버그 리포트를 생성합니다. 디버깅의 청사진으로 활용
• adb shell procrank: 메모리 사용량에 대한 자세한 분석을 제공
• adb shell cat /proc/meminfo: 원시 메모리 정보를 액세스
• adb shell dumpsys meminfo: 특정 프로세스에 대한 메모리 정보를 확인
Activity Manager Commands
• adb shell am force-stop <package_name>: 오작동하는 앱을 강제 종료
• adb shell am start -n <package_name>/<activity_name>: 앱의 특정 액티비티를 실행
• adb shell am start -a <action> -d <uri>: 특정 액션과 데이터 URI를 사용해 액티비티를 시작
• adb shell am broadcast -a <action>: 브로드캐스트 인텐트를 전송
• adb shell am startservice <service_name>: 서비스를 시작
• adb shell am stopservice <service_name>: 서비스를 중지
Example: Sending an SMS via ADB
• adb shell am start -a android.intent.action.SENDTO -d sms:22222222 --es sms_body "HELLO"
• adb shell input keyevent 22
• adb shell input keyevent 23
Package Manager Commands
• adb shell pm list packages: 디바이스에 설치된 모든 패키지를 나열
• adb shell pm list packages -s: 시스템 패키지만 나열
• adb shell pm list packages -3: 서드파티 패키지만 나열
• adb shell pm disable-user <package_name>: 특정 패키지를 비활성화하여 일시적으로 제거
• adb shell pm enable <package_name>: 패키지를 다시 활성화
• adb shell pm clear <package_name>: 앱과 관련된 모든 데이터를 삭제
The Monkey Tool
• adb shell monkey -p com.myapp.package -v 5000 -s 100: 무작위 이벤트를 생성하여 앱을 스트레스 테스트
Granting and Revoking App Permissions
• adb shell pm grant <package_name> <permission>: 앱에 특정 권한 부여
• adb shell pm revoke <package_name> <permission>: 앱의 특정 권한 철회
Example:
• adb shell pm grant com.myapp.package android.permission.CAMERA: 카메라 권한 부여
• adb shell pm revoke com.myapp.package android.permission.CAMERA: 카메라 권한 철회
Screen Capture and Recording
• adb shell screencap /sdcard/screen.png: 스크린샷을 캡처하여 디바이스에 저장
• adb pull /sdcard/screen.png: 디바이스에서 캡처된 스크린샷을 로컬 머신으로 가져옵니다.
• adb shell screenrecord /sdcard/video.mp4: 화면을 비디오 파일로 녹화
• adb pull /sdcard/video.mp4: 녹화된 비디오를 로컬 머신으로 가져옵니다.
- Total
- Today
- Yesterday
- 건강한 근육
- 건강한 식물성 식품
- 운동과 일상
- 몸매 개선
- 노년층을 위한 건강한 운동
- 유산소ㅡ
- 적절한 쿨다운
- 부상예방
- 자기 관리
- 건강한 피트니스
- 올바른 식습관]
- 일상 습관
- 근력운동
- 식습관
- 유용한 운동 기술
- 스트레스 해소
- 안정을 위한 습관
- 건강한 식습관
- 온라인 자원
- 올바른 식이 보충제
- 효과적인 홈 운동
- 스트레스 관리
- 운동 후 복구의 중요성
- 스트레칭
- 운동장비
- 안전한 운동
- 다이어트
- 건강한 노후'
- 영상소 밸런스
- 휴식과 수면
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |