이 기사에서는 하나 이상의 장치와 에뮬레이터를 설치, 테스트, 진단 및 관리할 때 ADB를 사용하여 미세하게 제어하는 방법을 살펴봅니다.
주로 Android SDK로 작업하는 소프트웨어 개발자로서 처음 몇 년 동안은 Android Debug Bridge(ADB/adb)가 무엇인지, 어떤 역할을 하는지, 언제 사용해야 하는지 전혀 몰랐습니다.
흥미롭게도 처음에 내가 그것에 대해 배우게 된 동기는 어떤 전문적인 목표가 아니었습니다. 오히려 내가 필사적으로 부활하고 싶었던 것은 Nexus 6을 루핑하는 내 부팅이었습니다. 그런 문제라면 Android Studio와 Gradle은 방수 티백만큼 유용합니다.
또한 이 기사는 두 종류의 개인을 염두에 두고 작성되었음을 언급하고 싶습니다. :
- CLI, 셸, 프로세스 및 클라이언트-서버 모델에 익숙한 사용자
- CLI, 셸, 프로세스 및 클라이언트-서버 모델에 익숙하지 않은 사용자
첫 번째 범주의 경우 "ADB 작업 방법 섹션을 건너뛸 수 있습니다. ."
두 번째 범주에 속한 사람들의 경우 저와 같은 주니어 개발자이고 CLI, Shells 및 ADB에 대해 거의 알지 못한다고 가정하겠습니다. 첫 번째 섹션은 내가 관리할 수 있는 가장 간단한 방법으로 설명된 몇 가지 기본 용어와 아이디어에 대한 부드러운 소개와 용어집입니다.
예선
여기에서는 ADB가 어떻게 작동하고 사용되는지 이해하려는 경우 중요한 몇 가지 주제에 대해 알아볼 것입니다.
여러분 중 일부는 Vim 애호가나 판단력이 좋은 Unix 시스템 관리자를 비웃는 과거에 명령줄 도구를 배우는 것을 두려워했을 것입니다. 보시다시피 CLI가 제 두뇌가 작동하는 방식에 적합하지 않다는 점을 자유롭게 인정합니다. 따라서 이 주제에 대한 제 견해를 즐겨주셨으면 합니다.
명령줄
간단히 말해서 명령줄은 텍스트 줄만 사용하는 컴퓨터에 대한 인터페이스(정보를 주고받는 방법)입니다. .
명령줄 인터페이스(CLI) 자체가 프로그램이 아니라 일부 프로그램이 CLI(및 GUI와 같은 다른 인터페이스도 제공)를 제공한다는 점을 이해하는 것이 중요합니다.
어떤 시점에서 Windows 명령 프롬프트(또는 나와 같은 90년대 어린이인 경우 MS-DOS), Mac 터미널 또는 많은 Linux 배포판에서 일반적으로 사용되는 GNOME 터미널과 같은 항목에 무언가를 입력했을 수 있습니다. 이들 모두는 주로 CLI를 통해 사용됩니다.
CLI 사용의 이점과 단점은 CLI를 사용하는 개인과 해결하려는 문제의 종류에 따라 크게 다릅니다. 저는 개인적으로 거의 매일 하는 일이 아니라면 CLI를 사용하는 것을 좋아하지 않습니다. .
내 두뇌는 모호한 속기 텍스트 명령을 암기하는 데 적합하지 않습니다(나는 같은 이유로 어린 시절 읽기를 배우는 데 어려움을 겪었습니다). 그래서 저는 많은 반복 기반 암묵적 기억(근육 기억)과 치트 시트에 의존해야 합니다.
힘들더라도 기꺼이 시간을 할애하는 사람(나처럼) 또는 그런 일을 정말 잘 기억하는 사람이라면, 당신이 얼마나 더 효율적일 수 있는지를 알게 될 것입니다. CLI 대 GUI 내에서 .
다양한 메뉴와 화면을 가리키고 클릭하는 데 걸리는 시간보다 훨씬 짧은 시간에 많은 작업을 수행할 수 있습니다. 또한 일련의 텍스트 명령이 포함된 파일인 스크립트를 작성하여 효율성을 더욱 높일 수도 있습니다.
ABD 셸 사용 방법
Android, iOS, Windows, Mac, Linux 및 기타 유닉스 계열 시스템을 포함하는 운영 체제(OS)라는 용어에 익숙하다고 가정해야 합니다.
이 용어가 ADB와 관련된 이유는 무엇입니까? 정확성보다 명료성을 우선시하는 설명을 하자면 안드로이드 OS는 리눅스 기반, 리눅스는 유닉스 기반이다.
그 결과 ADB를 사용하여 작업 중인 장치 또는 에뮬레이터에 대한 Unix Shell을 확보할 수 있습니다. 이를 통해 셸과 직접 상호 작용하여 장치 또는 에뮬레이터에 대한 상당한 유연성, 기능 및 제어가 가능합니다.
셸은 OS와 상호 작용하는 데 사용하는 프로그램의 일반적인 용어입니다. 거북이 셸이 거북이(가장 바깥쪽 계층)에 대한 보호 및 액세스를 제공하는 것처럼 OS의 셸은 OS의 내부 작동을 보호하고 액세스를 제공합니다. 개인적으로 "Shell"이 난해한 약어가 아니라는 것을 알고 상당히 놀랐습니다.
이 용어를 지나치게 생각할 필요를 느끼지 마십시오. 어떤 종류의 컴퓨터에서 이 글을 읽고 있다면 여기까지 오기 위해 쉘을 사용했습니다.
쉘은 CLI 또는 GUI 중 하나 또는 둘 다를 제공할 수 있습니다. 두 경우 모두 파일을 생성/업데이트/삭제/이동하고, 다른 프로그램을 시작하고, 셸을 통해 사용할 수 있는 OS의 다양한 서비스에 액세스하는 데 사용합니다.
ABD 클라이언트 및 ABD 서버 사용 방법
다시 말하지만, 이해하기 쉽길 바라며 약간 부정확한 설명으로 시작하겠습니다. 하지만 곧 이 정의를 수정하겠습니다.
클라이언트와 서버는 모두 컴퓨터입니다. 이러한 방식으로 차별화하는 이유는 역할에 기반합니다. . 예를 들어, 컴퓨터(데스크톱, 랩톱, 전화 등)는 제공하는 freeCodeCamp 서버의 클라이언트입니다. 당신은 이 HTML 페이지.
일반적으로 클라이언트는 다른 것을 사용하는 것입니다. , 반면 서버는 사용 중인 . 클라이언트-서버 모델은 컴퓨팅 내부와 외부 모두에서 매우 많은 것을 설명할 수 있으므로 이 용어를 과도하게 생각하지 마십시오.
이제 클라이언트와 서버가 모두 "컴퓨터"라고 말했지만 나중에 이 용어를 사용할 맥락에서는 사실이 아닙니다.
프로그래머와 엔지니어는 일반적으로 클라이언트와 서버를 프로세스로 생각해야 합니다(프로세스는 단순히 실행 중인 프로그램 ).
이것은 클라이언트 프로세스와 서버 프로세스가 종종 별도의 컴퓨터에서 실행되지만 동일한 컴퓨터에서 실행되는 경우에도 문제가 없음을 의미합니다.
그들은 해당 컴퓨터의 메모리 공간에서 고유한 위치를 차지하므로 네트워크 연결을 통해 서로 메시지를 보내는 것과는 반대로 IPC(프로세스 간 통신)를 사용하여 통신한다는 점만 효과적으로 다릅니다.
곧 보게 되겠지만 ADB는 여러 개발자(여러 클라이언트)가 여러 Android 기기 및/또는 에뮬레이터를 관리할 수 있도록 하는 서버 프로세스를 사용합니다.
엔터프라이즈 설정에서 이 서버 프로세스는 원격(네트워크 연결을 통해 통신) 컴퓨터에 있을 수 있지만 클라이언트에 로컬인 서버를 설정합니다. 생각보다 훨씬 간단할 것입니다.
ABD 데몬이란 무엇입니까?
건너뛸 경우를 대비하여 프로세스는 단순히 실행 중인 프로그램이라고 이미 설명했습니다. 데몬은 백그라운드에서 실행되는 프로세스입니다. 즉, 사용자가 직접 상호 작용하지 않습니다.
예를 들어 웹 브라우저를 열면 인터넷에 연결하는 데 필요한 네트워크 연결을 관리하는 실제 작업이 (브라우저 프로세스 자체와 반대되는) NetworkManager Daemon과 같은 것에 의해 수행될 가능성이 있습니다.피>
각 Android 기기(물리적 또는 에뮬레이트)에는 올바르게 구성되어 있다고 가정할 때 서버 프로세스에서 제공한 명령을 실행하는 ADB 데몬(adbd)이 있습니다.
간단히 말해서 클라이언트가 서버에 명령을 내리면 서버는 해당 명령을 ADBD로 전달하고 ADBD는 장치에서 이를 실행합니다.
Android 개발을 위해 ADB를 사용하는 방법
이 기사의 나머지 부분에서는 다음 주제를 살펴볼 것입니다.
- 시스템에서 ADB를 사용하는 데 필요한 드라이버 및 구성
- 물리적 기기 및 에뮬레이터와 함께 ADB 사용
- ADB의 CLI를 사용한 기본 명령
- ADB를 통해 Android 기기의 셸을 사용하여 더 복잡한 사용법 살펴보기
계속하기 전에 ADB와 상호 작용하는 데 사용할 CLI 도구를 설정해야 합니다. Windows에서는 PowerShell을 사용하는 것을 선호하지만 명령 프롬프트도 작동합니다. Linux 및 Mac의 경우 기본 터미널이 작동해야 합니다.
작업에 필요한 모든 것을 자유롭게 사용하십시오.
이 문서에는 전체 프로세스에 대한 매우 자세한 설명이 포함되어 있지만 여기에서 간략하게 설명하는 비디오 자습서를 준비했습니다.
CLI 예제를 이해하는 방법
이 문서에는 선호하는 CLI 도구에 입력할 많은 명령이 포함되어 있습니다. 상황에 따라 변경되는 주어진 명령의 모든 부분은 꺾쇠 괄호 안에 기록됩니다.
작성하는 CLI 명령에 꺾쇠 괄호를 포함하지 마십시오.
예를 들어 내가 다음과 같이 썼다면...:
adb pair <ip-address>:<port>
...실제 값을 다음과 같이 꺾쇠 괄호와 이름으로 대체합니다.
adb pair 192.168.0.1:5554
ABD 드라이버 및 구성
먼저 Android SDK 플랫폼 도구의 최신(또는 최소한 최신) 버전이 있는지 확인합니다. 어떤 이유로 Android Studio(AS)를 사용하지 않는 경우 해당 링크를 클릭하고 해당 OS에 대한 독립 실행형 패키지를 다운로드하십시오.
Android Studio가 있는 경우 SDK Manager를 사용하여 이 패키지를 다운로드하거나 업데이트할 수 있습니다.
일반적으로 AS에는 SDK Manager를 열 수 있는 도구 모음 아이콘이 있지만 거의 모든 핫픽스의 모양을 변경하는 것을 좋아합니다.
운이 없으면 파일 -> 설정 으로 이동하십시오. 검색 창에 "SDK"를 입력하고 "Android SDK" 메뉴 항목을 검색합니다.
다음 단계는 변수의 수에 따라 변경됩니다. 예비 에서 논의한 바와 같이 섹션에서 ADB는 클라이언트-서버 모델을 사용하여 도구를 사용하는 방법에 많은 유연성을 허용합니다.
보다 구체적으로 다음과 같은 항목이 있을 수 있습니다.
- 원격 서버와 상호 작용하는 여러 클라이언트
- 한 클라이언트에 대해 로컬(동일한 컴퓨터)인 서버
- 동일한 서버에 연결된 다양한 물리적 장치 및 에뮬레이터
ADB를 사용하면 여러 클라이언트와 매우 많은 수의 장치가 있는 고급 구성이 가능하지만 이 문서의 범위를 벗어납니다.
하나의 서버는 고급 구성 없이 최대 16개의 에뮬레이터와 원하는 만큼의 물리적 장치를 관리할 수 있습니다.
이 기사의 나머지 부분에서 단일 ADB 서버 프로세스를 위한 하나의 물리적 장치와 하나의 에뮬레이터를 가장 많이 다룰 것입니다.
ABD 에뮬레이터를 구성하는 방법
더 이상 구성할 필요가 없을 가능성이 높지만 개발자 옵션을 활성화해야 할 수도 있습니다. 에뮬레이터에서. 처음 몇 개의 ADB 명령에 도달하면 제대로 작동하는지 곧 알게 될 것입니다.
에뮬레이터에서 이 기능을 활성화하려면 특정 버전의 Android에서 활성화하는 방법을 조사해야 합니다.
USB 디버깅 – 물리적 장치를 구성하는 방법
실제 Android 기기를 사용할 계획이 없다면 이 섹션을 건너뛸 수 있습니다. 그러나 여전히 개발자 옵션을 활성화해야 할 수도 있습니다.
계속하려면 Android 기기 및 개발 컴퓨터에서 USB 디버깅 또는 WiFi 디버깅을 구성해야 합니다.
두 경우 모두 개발자 옵션을 활성화하여 시작합니다. 당신의 장치에. 특정 Android 버전에 대해 그렇게 하는 방법을 조사해야 합니다.
USB 디버깅
개발자 옵션을 통해 Android 장치에서 USB 디버깅을 활성화했는지 확인하십시오. 위에서 공유한 링크는 Android OS의 다른 버전에서 다소 변경되는 경향이 있는 해당 프로세스를 설명합니다.
계속하기 전에 Windows 사용자는 USB 드라이버를 다운로드해야 합니다. Ubuntu 사용자는 또한 몇 가지 추가 단계가 필요합니다. Mac 및 Chrome OS의 경우 잘 가셔야 합니다.
개발자 옵션을 통해 USB 디버깅이 활성화되면 USB 케이블을 통해 Android 장치를 연결합니다.
와이파이 디버깅
여러 개의 물리적 장치가 있거나 USB 케이블이 부족한 경우 WiFi 디버깅을 선택할 수 있습니다.
다시 Android 기기에서 개발자 옵션을 방문하여 무선 디버깅을 활성화합니다. 장치가 현재 연결되어 있고 허용해야 하는 네트워크에서 디버깅을 허용하라는 메시지가 표시됩니다(적절한 네트워크라고 가정).
CLI 작업을 시작할 시간 . 먼저 Android SDK 설치 디렉토리 내에서 platform-tools 디렉토리(또는 폴더 - 동일한 것)를 찾아야 합니다.
Android Studio가 설치되어 있다고 가정하고 앱을 통해 빠르게 찾는 방법은 다시 파일 -> 설정으로 이동한 다음 검색 창에 "SDK"를 입력하는 것입니다. "Android SDK" 메뉴에는 SDK가 설치된 위치가 표시되며, 여기에는 플랫폼 도구가 포함되어야 합니다.
아래 예에서 내 Android SDK 디렉토리의 경로를 복사했습니다 를 클릭한 다음 Windows PowerShell 인스턴스를 열었습니다. 그런 다음 다음 명령을 입력했습니다.
디렉토리 변경:
cd <path-to-SDK-directory>
파일 및 디렉터리 나열:
ls
다음으로 cd platform-tools
를 입력했습니다. 해당 디렉토리로 이동합니다. 다음 단계에서는 Android OS 11 이상을 실행하는 기기를 사용하고 있다고 가정합니다.
Android 10 이하를 실행하는 기기로 작업하는 경우 해당 상황에 대한 자세한 지침을 여기에서 찾을 수 있습니다.
platform-tools 디렉토리에 있으면 다음 단계를 사용하여 Android 기기를 개발 머신에 페어링할 준비가 된 것입니다.
1. 설정 -> 시스템 -> 개발자 옵션의 무선 디버깅 하위 메뉴 내에서 페어링 코드와 기기 페어링을 선택합니다. .
2. platform-tools 디렉토리로 설정해야 하는 CLI 도구 내에서 다음 명령을 입력하십시오.
adb pair <IP address>:<Port>
여기서 IP 주소와 포트는 모두 페어링 코드와 기기 페어링을 선택한 후 표시되는 Android 기기의 대화상자에서 가져옵니다. (꺾쇠 괄호는 포함하지 마십시오).
참고:사용 중인 CLI 도구, OS 및 액세스 제어에 따라 다른 기호나 명령을 adb 호출 앞에 추가해야 할 수도 있습니다. 예를 들어 Windows에서 PowerShell을 사용하여 .\adb pair
3. CLI에 문제가 없다고 가정하면 IP 주소와 포트 번호를 제공한 Android 장치의 동일한 대화 상자에 표시되었던 페어링 코드를 입력하라는 메시지가 표시됩니다.
4. 페어링 코드를 입력한 후 다음과 같은 메시지를 받으면 이 작업이 성공한 것입니다.
Successfully paired to <IP Address>:<Port> [guid=<Some GUID>]
5. Windows 또는 Linux를 사용하는 경우 무선 디버깅 기본 설정 메뉴에서 볼 수 있는 IP 주소 및 포트를 사용하여 다음 명령도 실행해야 합니다(페어링 코드로 장치 페어링을 선택한 후 팝업되는 대화 상자 아님). :
adb connect <IP Address>:<Port>
그 후에 전화로 연결되었다는 알림을 받아야 합니다.
ADB 사용 방법:명령
Android 기기와 개발 머신을 적절하게 구성했다고 가정하면 이제 ADB 도구를 사용할 수 있습니다.
계속하기 전에 CLI 도구를 사용하여 adb가 포함된 디렉토리로 이동합니다(WiFi 디버깅 설정에 대한 이전 섹션의 단계를 수행한 경우 제외).
그렇지 않으면 지금 그렇게 하거나 해당 섹션에서 해당 폴더를 찾는 방법에 대한 지침을 확인하십시오.
현재 서버에 연결된 장치를 확인하는 방법
이제 adb kill-server
을 제외한 ADB에서 거의 모든 명령을 호출하여 adb 서버를 시작할 수 있습니다. . 서버 프로세스가 실행 중인지 여부에 관계없이 다음 명령을 입력하십시오.
adb devices
위 스크린샷에서 먼저 adb devices
을 호출했습니다. 내 안드로이드 폰이 서버에 연결되었을 때. adb kill-server
을 통해 서버를 종료한 후 명령을 실행하여 서버를 다시 시작한 장치를 다시 한 번 호출했습니다.
다시 말하지만, ADB 서버가 현재 실행 중이 아닌 경우 ADB 명령을 다소 호출하면 서버 백업이 시작됩니다 (adb kill-server
제외 , 물론이야). 명시적인 adb start-server
이 있습니다. 명령이지만 실제로는 사용할 필요가 없었습니다.
서버가 재설정되었으므로 장치에서 항목을 반환하지 않았습니다. 따라서 다음 예제로 이동하기 전에 다시 한 번 adb pair
및 adb connect
(Windows 또는 Linux의 경우) 이전 섹션에서 설명한 명령.
이제 PowerShell과 "emulator"라는 플랫폼 도구의 하위 디렉터리에 있는 에뮬레이터 프로그램을 사용하여 에뮬레이터를 시작했습니다.
물론 원하는 경우 AVD Manager 또는 Android Studio를 사용하여 에뮬레이터를 시작하여 예제를 따라갈 수 있습니다.
연결된 장치가 많은 경우 adb devices
에 대한 유용한 옵션 명령은 -l
입니다. , 장치에 대한 추가 정보를 제공합니다.
아래에서 내 실제 Android 기기와 특정 포트에 연결된 에뮬레이터를 참조하는 여러 항목을 볼 수 있습니다.
특정 장치에 명령을 보내는 방법
실수로 내 전화를 벽돌로 만드는 것을 방지하기 위해 대신 에뮬레이터에 명령을 보내고 싶습니다. 이렇게 하려면 -s
를 앞에 추가해야 합니다. 옵션과 대상 장치의 일련 번호를 차례로 입력한 다음 명령을 입력합니다.
일련 번호는 devices 명령을 사용한 후 연결된 장치를 설명하는 첫 번째 문자 집합입니다.
예를 들어 이 경우 에뮬레이터의 일련 번호는 에뮬레이터가 현재 연결되어 있는 포트 뒤에 오는 emulator라는 단어입니다.
다른 빨간색 화살표는 내 휴대폰의 일련 번호를 가리킵니다(명백한 이유로 차단됨).
당연히 연결된 장치가 하나만 있으면(종류에 관계없이) -s
를 사용할 필요가 없습니다. 옵션.
기기에 APK(앱) 설치
이제 adb install
을 사용하여 실행 중인 에뮬레이터에 테스트 APK를 설치하겠습니다. 명령.
이것은 기본적으로 Android Studio 및 Gradle이 디버그 APK를 설치하도록 하는 것과 동일합니다. 보시다시피 테스트 APK에는 -t
이 필요합니다. 설치 명령 후 옵션:
adb -s <device-serial-number> install -t <path-to-APK>
참고:Android OS에서는 APK를 설치하기 전에 서명해야 합니다. (단순한 테스트/디버그 APK일지라도).
한 가지 해결책은 Android Studio에 설치할 앱을 빌드하고 실행하는 것입니다. 그러면 생성된 디버그 인증서로 서명됩니다. 이 링크를 방문하여 탐색할 수 있는 이러한 APK에 서명하는 몇 가지 다른 방법이 있습니다.
ADB가 할 수 있는 다른 일은 무엇입니까?
ADB의 고급 사용법을 살펴보기 전에 adb --help
명령. 대부분의 CLI 기반 프로그램에서 일반적으로 help 명령은 도구의 다양한 명령과 옵션을 설명하는 문서를 인쇄합니다.
ADB에 대한 문서는 매우 읽기 쉽고 유용하지만 CLI 프로그램에서 항상 그런 것은 아닙니다.
고급 ADB 사용 팁
이 기사에서 ADB의 모든 사용법과 명령을 다룹니다.
혼란이 있는 경우 ADB를 사용하여 APK를 설치하고 Android Studio 및 Gradle이 수행하는 많은 작업을 수행하는 것은 권장하지 않는 작업입니다(그렇게 하는 합당한 이유가 있는 경우 제외).
즉, ADB 없이는 하기 어렵거나 불가능한 ADB가 할 수 있는 일이 많이 있습니다.
예비 섹션에서 ADB를 사용하여 장치의 셸에 연결할 수 있다고 언급했습니다. 이 기사를 마치기 위해 쉘 명령을 사용하는 방법과 이에 대한 추가 정보를 찾을 수 있는 위치를 살펴보겠습니다.
쉘이 무엇인지 모른다면 위에서 설명한 섹션을 건너뛰었을 것입니다.
ABD 셸 사용 방법
ADB를 사용하여 장치의 셸에 명령을 보내는 것은 매우 간단합니다. 여러 장치가 연결되어 있는 경우 -s <device-serial-number>
을 입력하세요. 명령을 특정 장치로 보냅니다.
단일 셸 명령을 만들려면 adb shell
를 사용해야 합니다. 명령(놀랍게도, 어?) 다음에 장치의 셸에서 만들고자 하는 실제 명령:
adb shell ls
출력:
앞서 언급했듯이 ls
명령은 CLI의 현재 디렉토리에 있는 파일 및 디렉토리 목록을 표시합니다. 이것은 우리가 다른 디렉토리로 이동할 때까지 Android 기기의 루트 디렉토리가 됩니다.
셸을 통해 많은 명령을 만들 계획이라면 대화형 셸 세션을 시작할 수도 있습니다. 이것은 간단한 명령을 통해 수행할 수 있습니다:
adb shell
대화형 Shell 세션에 있는 동안 adb shell <command>
을 더 이상 사용하지 않고 직접 Shell 명령을 입력할 수 있습니다. .
대화형 셸 세션을 종료하려면 exit
를 입력하면 됩니다. 또는 Ctrl + D를 누르십시오.
셸을 통해 작업할 수 있는 다양한 명령과 유틸리티가 있습니다. ActivityManager(am
) Android 기기의 )은 다양한 상황에서 Android 앱의 다양한 구성 요소(예:Activity, Services, BroadcastReceivers)를 테스트하는 데 특히 유용할 수 있습니다.
특정 활동으로 바로 실행하고 싶지만 이 활동이 매니페스트에서 실행기 활동으로 지정되지 않았다고 가정합니다.
여전히 android:exported=”true”
을 추가해야 합니다. 각 <activity/>
속성 실행하려는 매니페스트의 항목(이미 실행기 활동이 아니라고 가정).
그런 다음 다음 명령을 사용하여 바로 이동할 수 있습니다.
am start -n <app-package-id>/<activity-name>
<activity-name>
패키지 ID와 관련하여 해당 패키지가 있는 패키지를 포함해야 합니다. 여러 패키지 내에 있는 활동을 시작하는 예는 아래 출력을 참조하세요.
추가 자료
이 기사의 목표는 가능한 한 ABD 사용법을 소개, 설명 및 안내하기 위해 최선을 다하는 것입니다.
이 시점에서 나는 아주 기발한 예를 만들기 시작하거나 단순히 문서를 복사하는 것부터 시작해야 할 것입니다. 둘 다 내가 하는 데 관심이 있는 것이 아닙니다.
대신 설명서를 방문하여 Activity Manager, Package Manager, Policy Manager 등과 같은 도구를 사용하여 수행할 수 있는 몇 가지 멋진 작업을 간략히 살펴보시기 바랍니다.
여기에서 소셜 미디어에서 저에게 연락할 수 있습니다.
https://www.instagram.com/rkay301/
https://www.facebook.com/wiseassblog/
https://twitter.com/wiseass301
https://wiseassblog.com/