# adb

[Android Error] : Waiting for Debugging Dialog 에러
Photo by Annie Spratt on Unsplash 노트북을 바꾼 이후로 부터 디버그 모드로 앱을 빌드할 때마다 Application isWaiting for the debugging to attach 이라는 다이얼로그가 뜨기 시작했다. 시도 이를 해결하고자 온갖 시도를 다해봤는데 가장 보편적으로 아래 command를 기입하면 해결된다고 한다.. > adb shell am clear-debug-app 그러나, 내 adb는 디버깅이 싫은 것인지.. 바로 해결되지 않았고, adb와 연결된 device/emulator를 아래 명령어를 통해 확인하였다. > adb devices 
Python에서 ADB 사용하기
개발 목표 컴퓨터에서 휴대전화 내부의 전화번호를 선택 혹은 새로운 전화번호를 입력하여 메세지를 전송할 수 있도록 도와주는 프로그램 제작 개발 내용 정리 휴대폰의 연락처에 접근하여 정보(사용자가 저장한 이름, 전화번호)를 가져옴(csv 형태로 저장) Python의 tkinter를 통하여 전화번호 목록을 선택할 수 있도록 반환 사용자가 message를 입력하는 창을 만들어둠 전화번호와 message가 입력되면 send 버튼 활성화 완성해둔 코드 github github을 클릭하여 코드 보기(main.py의 내용입니다.) (기능 단위별로 더 자세히 나눠보는 것은 다음 프로젝트에서 진행해보도록 하겠습니다.) SMS 컨트롤러란 (PC환경에서 message를 작성하며 전송을 누르면 db에 내용이 저장되는 형태 내부에서 api서버가 돌아가도록 설정하였음)

[React-Native] adb를 이용한 안드로이드 무선 빌드
💡 metro에서 ios와 달리 안드로이드는 직접 연결상태에서 빌드하여 그 연결이 끊어지면 실행중인 metro서버와 바로 끊어지는 불편함이 생깁니다. 이를 해결하기 위해 adb를 이용하여 무선연결을 하는 방법을 알아보겠습니다. adb devices 를 이용하여 연결된 디바이스를 확인합니다. adb tcpip [연결할 port 번호] 를 입력합니다. ex) adb tcpip 5555 adb connect [metro서버와 Device에 연결된 ip주소]:[연결할 port 번호]

[에러] adb connect 에러: 대상 컴퓨터에서 연결을 거부
ReactNative를 사용해 개발을 하기 위해 내 실물 핸드폰을 컴퓨터와 연결하려 한다. 그런데 USB로 핸드폰 기기를 연결하는 게 불편해서* wifi로 연결을 시도했더니 위 사진처럼 냅다 연결을 거부해 버렸다.* 진짜 나한테 왜 그러는지 원래 잘 됐잖아 30분 삽질했지만, 해결방법은 USB를 연결한 상태에서 adb tcpip 5555 를 입력해주면 된다. 그러면 사진처럼 restart 해준다. 그러고 나서 USB 연결을 해제하고, adb connect IP주소 입력하면 연결 성공 만세~

[INSTALL_FAILED_UPDATE_INCOMPATIBLE: Existing package com.example.example signatures do not match newer version; ignoring!]
디버깅하려고 build 시도를 했더니 이런 에러가 뜨네요. 해결법 > 해결법은 매우 쉽습니다. 저 같은 경우는 안드로이드 에뮬레이터가 아닌 실기기에 빌드 시도를 했습니다. 실기기나 에뮬레이터에서 해당 앱을 완전히 삭제 후 다시 flutter run 을 하면 됩니다. `signatures do not match newer version; ignoring!]` 말 그대로 서명 버전이 맞지 않아서 생기는 오류라서 기기에 깔려있는 기존 앱을 완전히 지우면 해결이 됩니다 :-)

[Flutter, Android] Wireless Debug
안드로이드 기기에서 무선으로 빌드하고 디버깅하는 과정을 소개하려고 한다. 무선 디버깅은 안드로이드 11이상에서만 지원하기 때문에 참고하길 바란다. 10 이하에서는 usb 디버깅을 사용해야한다. 선행 설정 1. Developer Option 먼저 안드로이드 폰에서 개발자 옵션을 켜야한다. 이 설정은 안드로이드 개발을 하기 위해서 기본적으로 해줘야 하는 내용이므로, 이미 되어 있따는 전제하에 추가 설명은 하지 않겠다. (휴대전화 정보 -> 소프트웨어 정보 -> 빌드번호 칸을 연타하면 된다.) 2. Wireless Debuging 설정 설정에서 이라고 검색하면 무선 디버깅이라는 옵션이 나온다. 여기 들어가서 무선 디버깅을 켜준다. 3. ADB ADB도 안드로이드 개발에 필수적인 요소이기 때문에 당연히 설치 되어 있을 것으로 생각하고 넘어간다. 설치 되어 있지 않다면 꼭 설치하길 바란다. **4. 동일한 Wifi

앱 리소스 모니터링 -adb shell
adb shell 명령으로 앱 배터리 사용량, cpu, 네트워크 속도 등을 측정할 수 있다. 운영중에는 firebase, newrelic을 통해 서버의 성능을 모니터링 했다면 클라이언트 각 단말의 리소스 모니터링을 위해 간단히 adb shell을 사용한다. 배터리 소모 측정 구글에서 제공하는 Battery Historian 사용 (docker 설치 필요) dumpsys batterystats 명령어 사용 두가지 방법이 있는데 docker 설치 문제로 간단히 dumpsys 명령어를 사용하기로 했다. 배터리 소모량을 측정하기 위해, 앱패키지명을 알아야 한다. 해당 패키지만의 배터리 소모량을 확인할 수 있다. 삼성 휴대폰 기준으로, 휴대폰 단말 > 설정 > 디바이스케어, 휴대폰 단말 > 설정 > 애플리케이션 경로로 이동해서 보이는 수치와 비교해본다. vmstate 연결된 안드로이드 단말에서 CPU, I/O, Memory 사용을 확인할 수 있다.  Android SDK에 포함돼있는 프로그램 안드로이드 기기에 패키지 설치하거나 셸에 접근하는 등 디버깅 관련 기능 수행할 수 있는 다목적 명령줄 도구이다. 기기에서 명령어를 실행하거나 애플리케이션 설치 및 디버깅, 파일 업로드 및 다운로드 등 다양한 작업을 손쉽게 수행할 수 있다. 앱 동적 분석에 요구되는 Frida 서버 파일 업로드, 셸 명령어 실행, 패키지 apk 다운로드 등을 수행하기 위해 adb와 pm, am 명령어를 이용하기도 한다. pm : Package Manager am : Activity Manager 명령어 명령어 설명 adb devices [-l] 연결된 기기 목록을 출력함 -l 옵션을 함께 사용할 시 기기의 상세한 정보를 함께 출력함 adb shell [command] 연결된 기기의 셸에 접속할 때 사용 셸로 접속하지 않고 명령어를 단일로 실행하고
[ADB] VS Code Wifi
ADB Wifi Connect_MAC OS 앱을 개발하기 위해 가상 시뮬레이터를 사용하기도 하지만 대부분 실제 디바이스를 연결하여 개발을 할 것이다. 하지만 실제 디바이스를 연결하여 사용하다 보면 배터리도 너무 빠르게 소모되고 연결 잭을 매번 연결해서 사용하다 보니 불편한게 한 두가지가 아니었다. 이번 글에서는 실제 디바이스를 와이파이 환경에서 연결하는 방법에 대해서 알아보겠다. 맥 OS를 기준으로 작성했으며, 실물 디바이스와 OS의 와이파이 환경이 동일해야 하며 연결 잭이 필요하다. 디바이스와 맥을 연결 잭으로 연결한 후 터미널을 열어 아래 명령어를 실행하면 된다. 설치 경로가 아래와 같지 않다면 안드로이드 설치 폴더로 가서 해당 경로를 따라 들어가면 됨 여기서 포트 넘버는 임의의 숫자를 마음대로 넣어주면 된다. 그리고 나서 아래의 명령어를 치면 연결 됬다는 문구가 나오면서 정상적으로 연결이 끝난다. 설정 > 연결 > Wi-Fi > IP 주소 이렇
[Flutter] 앱에서 다운받은 파일 adb로 복사하기
adb(Android Debug Bridge)는 기기와 통신할 수 있는 다목적 명령줄 도구입니다. adb 명령어는 앱의 설치 및 디버깅과 같은 다양한 기기 작업에 도움이 되며, 기기에서 다양한 명령어를 실행하는 데 사용할 수 있는 Unix 셸에 관한 액세스를 제공합니다. https://developer.android.com/studio/command-line/adb?hl=ko 문제의 발생 앱이 설치되면 하나의 패키지명을 가진 폴더가 생성되고 앱에서 다운받은 파일은 그 폴더 어딘가로 저장되게 됩니다. 개발하다보면 이 파일이 완전체로 다운받아진건지 확인을 해보고 싶을 때가 있습니다. 그런데 핸드폰의 '내 파일'과 같은 앱에서는 접근이 되지 않습니다. 그럴 때 adb를 사용하면 파일이 있는지 확인하고, 공개 폴더에 복사하는 등의 작업이 가능해집니다. 1. 컴퓨터에 연결된 기기의 이름 가져오기 ($adb devices) 출력값 (R3CM903ABZN = 연결

ADB(Android Debug Bridge)
ADB의 환경변수 설정 위치 : C:\Users\DELL\AppData\Local\Android\Sdk\platform-tools에 adb.exe를 확인 후, 환경변수 추가 add.) DELL : 사용자이름 예시 ADB connect(use cmd) adb devices : 현재 PC와 연결된 devices List adb connect [ip of PC]:5555 : 해당 PC를 connect adb disconnect [ip of PC]:5555 : 해당 PC를 disconnect adb kill-server : adb kill adb start-server : adb start add.) 연결하려는 device는 개발자옵션에서 USB디버깅을 활성화 시켜야 함.

Android를 개발 할 때 터미널로 액티비티를 실행하는 방법
안드로이드를 개발하면서 액티비티를 실행하는 방법으로 보통 빌드를 해서 애뮬레이터로 확인을 합니다. 화면 전환을 확인 할 때 굳이 버튼 만들어서 전환을 안 시켜도 터미널로 간단하게 확인 하는 방법이 있는데요 그것이 바로 adb 명령어 입니다. - adb커맨드 안드로이드 공식 홈페이지에 따르면 adb는 안드로이드 디버그 브리지의 약자로 기기와 통신할 수 있는 다목적 명령줄 도구 라고 명시 되어 있습니다. - 출처 : https://developer.android.com/studio/command-line/adb?hl=ko 그렇담 어떻게 명령어를 실행하면 되느냐, 예시 프로젝트로 확인해 보겠습니다
adb로 Android System UI 테스트하기
| 설정 > 개발자옵션 | 시스템 UI 데모 모드 | |:-----:|:-----:| ||| 안드로이드에서는 배터리 상태, 알림 아이콘, 시간 등 상태바와 관련된 제어를 강제로 설정할 수 있는 데모 모드 가 존재한다. 설정 > 개발자 옵션을 통해서도 데모 모드를 사용할 수 있지만 adb를 이용해 shell 명령어로도 시작할 수 있다. adb를 이용해 데모 모드를 이용하는 방법에 대해 알아보자. 1. 데모

[Flutter] sqflite database file 찾기
sqflite 라이브러리를 사용하여 database를 CRUD 한 후, 터미널로 .db 파일을 읽어서 정말 파일에 저장이 되었는지 확인하는 방법입니다. >참조 링크: https://developer.android.com/studio/command-line/adb?hl=ko database 경로 확인 openDatabase 메소드로 DB를 오픈할 때 사용한 주소를 로그에 찍습니다. provider_path 를 사용해서 저장할 주소를 정한 경우 아래와 같은 주소가 찍히는 것을 볼 수 있습니다. 이 포스트에서는 위의 주소를 가지고 터미널을 통해 저장된 데이터를 select 해서 원하는대로 저장이 되었는지를 확인하는 방법을 알아봅니다. adb로 연결된 디바이스 리스트 검색 터미널에 들어간 후 아래의 command를 입력합니다. 
나를 화나게 하는 에러들..ㅋ
자주 마주치는 에러들을 정리하려고 한다. Error npm run android 이후 Failed to install the app. Make sure you have an Android emulator running or a device connected. Solve 안드로이드 에뮬레이터를 실행해주면 된다. Error `Possible Unhandled Promise Rejection(id: 1): TypeError: Network request failed` 네트워크 에러가 발생하는 이유는 여러가지 일텐데 나의 경우엔 개발 단계에서 백엔드 서버를 localhost로 사용 중 이라서 발생한 에러였다. > * localhost란 IP Address 127.0.0.1(loop-back address)로 예약되어 있고 자신의 컴퓨터를 가르키는 가상 IP Address 이다. Solve adb reverse tcp:800

PC 크롬 브라우저로 Android 기기 브라우저 디버깅하기
오류 제보, 내용 개선에 대한 건의는 얼마든지 환영합니다. :) Android 기기 브라우저 대응은 만만하지 않다 Android 기기 대응을 위해 개발을 하다 보면, 분명 PC 크롬 브라우저 개발자 도구의 모바일 해상도에선 아무 이상이 없었는데 실제 기기 브라우저에서는 다르게 작동하지 않는 경우가 꽤나 생깁니다. 매번 프로젝트를 배포한 후 기기를 일일이 테스트하는 것은 너무나도 비효율적이기 때문에, PC에서 바로 Android 기기의 브라우저를 디버깅할 수 있는 방법을 필요로 하게 됩니다. USB 연결 유선 디버깅 PC와 Android 기기를 USB로 직접 연결해서 하는 디버깅이 가장 일반적이며, 무선 디버깅의 사전 단계가 됩니다. 1. Android 기기 개발자 모드, USB 디버깅 활성화 디버깅하고자 하는 Android 기기가 개발자 모드여야 합니다. 개발자 모드를 활성화하는 방법은 다음과 같습니다. > 1. 설정 > 휴대전화 정보 >
adb logcat 특정 패키지 필터링
adb는 logcat이라는 명령어를 통해 기기 전체의 로그 모니터링 및 특정 이슈(Error, Fatal 등)에 대해서 확인이 가능하다. 하지만 adb logcat 이라고만 명령어를 입력하면 기기에서 일어나는 모든 로그가 출력되어 원하는 로그를 확인하려면 어려움이 있다. 이 때는 로그를 확인하고자 하는 패키지의 pid 를 이용하여 필터링할 수 있는데, --pid=[패키지 pid] 옵션을 추가하면 된다. 일단 로그를 확인하고자 하는 패키지의 pid를 먼저 구해보자. 위 명령어의 결과로 프로세스 목록이 출력되는데, 두 번째 숫자가 바로 각 프로세스의 pid 값이다. 구한 pid 값을 --pid 옵션의 값으로 주어지면 해당 패키지의 로그만 출력한다.