android_앱 패키지(apk 파일)를 설치하기 위해 adb를 사용하는 세부 단계 및 가능한 문제

심판

안드로이드 기기(휴대폰)

  • USB 옵션:
    • 파일 전송 선택
    • 그냥 충전하는 대신 (파일 전송과 같은 기능이 적용되지 않을 뿐입니다)
      • 일반적인 오류:more than one device/emulator
  • 개발자 옵션 열기(developerOptions)
  • USB 디버깅 활성화(USB 디버깅)
    • USB가 연결되면 디버깅 모드로 전환
  • USB를 통해 애플리케이션(앱) 설치 허용(USB를 통해 설치)
    • 장치 조건에 따라 활성화(예: MIUI)
  • (선택) 권한 만료 기능 끄기(Disalble adb authorizatoin timeout)

권장 설정

  • File Transfer접속/전송을 위해 컴퓨터에 연결하여 휴대폰을 자주 사용하는 경우 USB 연결의 기본 옵션을 (파일 전송) 으로 설정하는 것이 좋습니다.
  • 설정에서 검색 가능默认
    • 또는 설정에서 열린 경로를 직접 따르십시오.Additional settings/Developer options/Default Use configuration/File Transfer

adb 터미널(컴퓨터)

  • 설치 패키지가 있는 디렉토리로 이동합니다.
    • 또는 adb 명령을 사용할 수 있는 디렉터리에 전체 앱 설치 패키지(예: apk 파일)의 경로 이름을 복사(입력)합니다.
  • 구현하다
    • adb install app.apk설치 완료

현실적인

  • 장치 연결 상태 확인

    • PS C:\Users\cxxu\Desktop\n11tp> adb devices
      List of devices attached
      UO7PKFNF99IR9TV4        device
      
  • 설치 실행

  • PS C:\Users\cxxu\Desktop\n11tp> adb install .\magisk.apk
    Performing Streamed Install
    Success
    

adb 문서 참조

  • PS C:\Users\cxxu> adb
    Android Debug Bridge version 1.0.41
    Version 33.0.2-8557947
    Installed as D:\exes\platform-tools\adb.exe
    ....省略篇幅....(跳过,直达主题:..app intallation
    
    app installation (see also `adb shell cmd package help`): 
     install [-lrtsdg] [--instant] PACKAGE
         push a single package to the device and install it
     install-multiple [-lrtsdpg] [--instant] PACKAGE...
         push multiple APKs to the device for a single package and install them
     install-multi-package [-lrtsdpg] [--instant] PACKAGE...
         push one or more packages to the device and install them atomically
         -r: replace existing application
         -t: allow test packages
         -d: allow version code downgrade (debuggable packages only)
         -p: partial application install (install-multiple only)
         -g: grant all runtime permissions
         --abi ABI: override platform's default ABI
         --instant: cause the app to be installed as an ephemeral install app
         --no-streaming: always push APK to device and invoke Package Manager as separate steps
         --streaming: force streaming APK directly into Package Manager
         --fastdeploy: use fast deploy
         --no-fastdeploy: prevent use of fast deploy
         --force-agent: force update of deployment agent when using fast deploy
         --date-check-agent: update deployment agent when local version is newer and using fast deploy
         --version-check-agent: update deployment agent when local version has different version code and using fast deploy
         (See also `adb shell pm help` for more options.)
     uninstall [-k] PACKAGE
         remove this app package from the device
         '-k': keep the data and cache directories
    
    
  • 도움말 문서에 따르면:

    • 앱 설치(참조 adb shell cmd package help):
      • install [-lrtsdg] [–instant] PACKAGE
        단일 패키지를 장치에 푸시하고 설치합니다.
    • adb 프로그램의 하위 명령 install을 사용하여 장치에 패키지를 설치하는 것을 확인할 수 있습니다.
      • 특히 adb install설치 패키지는 adb 실행 파일에서 제공하는 명령 인터페이스이기 때문에 통해 호출됩니다.
      • 여기에는 여러 선택적 옵션과 매개변수(설치 패키지 경로)가 포함됩니다.
      • 옵션을 사용하지 않을 수도 있습니다. 기본 동작은 앱 패키지 파일 설치를 실행하는 것입니다.
      • 원본 문서의 첫 번째 하위 명령 설치에 대해 불만을 제기하십시오. 줄 바꿈 문제가 없으며 놓치기 쉽습니다. grep을 사용하여 문서를 볼 수 있습니다.

발생할 수 있는 문제

adb 셸에 잘못 입력됨

  • xaga:/sdcard $ install magisk.apk
    install: Needs 2 arguments
    
    • adb 설치는 adb shell(toybox)이 아닌 adb 실행 파일에 의해 제공됩니다.

둘 이상의 장치/에뮬레이터

  • PS C:\Users\cxxu\Desktop\n11tp> adb install .\magisk.apk
    adb.exe: more than one device/emulator
    
    • 예비 조사:

      • -l을 사용하여 adb devices 현재 목록을 확인하십시오.

        • 여기에 매개변수를 추가하면 -l장치에 대한 자세한 정보가 나열되며 추가하는 것이 좋으며 장치 모델을 볼 수 있습니다.
      • adb가 장치를 다중 에뮬레이션 장치로 인식하는 방법은 다음과 같습니다.

        • 이것은 루트 폰 단말기에서 선택한 링크 방법의 옵션과 관련이 있을 수 있습니다!

        • 결과적으로 하나의 장치만 연결되어 있어도 2개의 장치가 스캔됩니다( 옵션 Use USB for 의 옵션을 변경하여 발생 해야 하는 아날로그 장치 포함).

        • PS C:\Users\cxxu> adb devices
          List of devices attached
          UO7PKFNF99IR9TV4        device
          emulator-5554   offline
          
      • 위에서 설명한 대로 여러 장치가 발견되면 다음을 고려하십시오.

        • 모든 adb 링크 연결 해제:adb kill-server

          • 그런 다음 장치 목록을 다시 확인하십시오.

          • PS C:\Users\cxxu> adb kill-server
            
            PS C:\Users\cxxu> adb devices -l
            * daemon not running; starting now at tcp:5037
            * daemon started successfully
            List of devices attached
            UO7PKFNF99IR9TV4       device product:xaga model:22041216C device:xaga transport_id:1
            
          • adb kill-server옵션을 추가하여 -s장치 매개변수를 건너뛰고 지정하도록 선택할 수도 있습니다.

          • 이렇게 하면 장치가 알 수 없는 것을 참조하는 오류가 발생하지 않습니다.

          • 여러 Android 기기(가상 기기 포함)를 연결한 경우

            • 다른 장치와 물리적으로 연결을 끊는 것을 고려하십시오.
            • 그러나 가장 우아한 방법은 액세스/제어를 위한 특정 장비를 지정하는 것입니다.
              • adb -s xxx
            • 여기서 세대는 xxx위와 같은 장치 일련 번호를 나타냅니다.UO7PKFNF99IR9TV4
      • 개발자 옵션의 관련 스위치가 올바르게 켜져 있으며 해당 오류가 발생할 수도 있습니다.

    • PS C:\Users\cxxu\Desktop\n11tp> adb install .\magisk.apk
      Performing Streamed Install
      adb: failed to install .\magisk.apk: Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user]
      
      

추천

출처blog.csdn.net/xuchaoxin1375/article/details/127853819