Cài đặt tệp apk từ dấu nhắc lệnh?


445

Tôi muốn cài đặt một tệp bằng dòng lệnh Windows. Đầu tiên tôi muốn xây dựng sau khi biên dịch tất cả các tệp .jar để tạo tệp .apk cho ứng dụng Android mà không cần sử dụng Eclipse.

Có ai biết làm thế nào điều này có thể được thực hiện mà không cần sử dụng Eclipse & chỉ bằng cách sử dụng dòng lệnh.


Để thêm vào câu trả lời, hãy đảm bảo bạn thêm thư mục chứa kiến ​​vào đường dẫn của bạn.
Ravi Vyas

stackoverflow.com/questions 43280201 / Cách đúng để cài đặt Apk trong trình giả lập
Naveen Tamrakar

Câu trả lời:


688

Bạn có thể sử dụng mã dưới đây để cài đặt ứng dụng từ dòng lệnh

adb install example.apk

apk này được cài đặt trong bộ nhớ trong của trình giả lập mở hiện tại.

adb install -s example.apk

apk này được cài đặt trong thẻ sd của trình giả lập mở hiện tại.

Bạn cũng có thể cài đặt apk cho thiết bị cụ thể trong danh sách thiết bị được kết nối với adb.

adb -s emulator-5554 install myapp.apk

Cũng tham khảo trợ giúp adb cho các tùy chọn khác.


12
Chỉ cần thêm vào điều này cho bất kỳ ai gặp sự cố trong tương lai, hãy thêm -dđể buộc cài đặt qua kết nối USB. Tôi đã có vấn đề, và thêm nó đã sửa nó. adb -d install myApp-release.apk

7
adb install -dKHÔNG buộc USB. Từ trợ giúp của adb:(-d: allow version code downgrade)
Scott Stafford

6
Từ developer.android.com/tools/help/adb.html#commandsummary : "-d | Chỉ đạo một lệnh adb đến thiết bị USB được đính kèm duy nhất."
Noyo

39
Câu trả lời cho sự -dnhầm lẫn là, cả @ZachCase và @ScottStafford đều đúng. Tùy chọn ADB và tùy chọn lệnh ADB là những thứ khác nhau: adb -d install file.apkcài đặt vào một thiết bị Android được kết nối bằng USB [xem ] trong khi adb install -d file.apkcài đặt APK với khả năng hạ cấp có thể [xem ].
tanius

12
Sử dụng adb install -r example.apkđể cài đặt / cập nhật một ứng dụng. Các -rsẽ cập nhật các ứng dụng nếu nó đã được cài đặt.
ben_joseph

44

Bạn có thể xây dựng trên dòng lệnh với ant. Xem hướng dẫn này .

Sau đó, bạn có thể cài đặt nó bằng cách sử dụng adbtrên dòng lệnh.

adb install -r MyApp.apk

Các -rlá cờ là để thay thế các ứng dụng hiện tại.


40

Bạn có thể cài đặt apk cho một thiết bị / trình giả lập cụ thể bằng cách nhập số nhận dạng thiết bị / trình giả lập trước từ khóa 'install' và sau đó là đường dẫn đến apk. Lưu ý rằng công tắc -s, nếu có, sau từ khóa 'install' có nghĩa là cài đặt vào thẻ sd. Thí dụ:

adb -s emulator-5554 install myapp.apk

39

Sử dụng công cụ dòng lệnh Gỡ lỗi Android, adbví dụ : adb install filename.apk.

Một tài liệu tham khảo tốt cho đâyadb

install [options] <PATH>    Installs a package (specified by <PATH>) to the system.
Options:

-l: Install the package with forward lock.
-r: Reinstall an exisiting app, keeping its data.
-t: Allow test APKs to be installed.
-i <INSTALLER_PACKAGE_NAME>: Specify the installer package name.
-s: Install package on the shared mass storage (such as sdcard).
-f: Install package on the internal system memory.
-d: Allow version code downgrade.
uninstall [options] <PACKAGE>   Removes a package from the system.
Options:

-k: Keep the data and cache directories around after package removal.

2
-s (thiết bị cụ thể) = điều khiển lệnh tới thiết bị hoặc trình giả lập với số sê-ri được chỉ định.
Darpan

29

Cách đơn giản để làm điều đó là bằng lệnh

adb install example.apk

và nếu bạn muốn nhắm mục tiêu thiết bị kết nối, bạn có thể thêm tham số "-d"

adb install -d example.apk

nếu bạn có nhiều thiết bị / trình giả lập được kết nối, bạn sẽ gặp lỗi này

adb: error: kết nối thất bại: nhiều hơn một thiết bị / trình giả lập - chờ thiết bị - lỗi: nhiều hơn một thiết bị / trình giả lập

để tránh điều đó bạn có thể liệt kê tất cả các thiết bị bằng lệnh bên dưới

adb devices

bạn sẽ nhận được kết quả như dưới đây

 C:\Windows\System32>adb devices 
 List of devices attached 
 a3b09hh3e    device 
 emulator-5334    device

đã chọn một trong các thiết bị này và thêm tham số vào lệnh adb là "-s a3b09hh3e" như bên dưới

adb -s a3b09a6e install  example.apk

cũng là một gợi ý nếu đường dẫn của apk dài và có khoảng trắng, chỉ cần thêm nó vào giữa dấu ngoặc kép như

adb -s a3b09a6e install  "c:\my apk location\here 123\example.apk"

19
  1. Nhấn Win+ R> cmd
  2. Điều hướng đến platform-tools \ trong thư mục windows-sdk của android
  3. Gõ adb
  4. bây giờ hãy làm theo các bước writte của Mohit Kanada (đảm bảo rằng bạn đề cập đến toàn bộ đường dẫn của tệp .apk, ví dụ: d: \ android-apps \ test.apk)

1
bạn cần thêm nó vào câu trả lời của @Mohit Kanada - và không viết các bước này dưới dạng câu trả lời.
STF

13

Các lệnh để cài đặt các tệp APK giống như trong Android Studio, bạn có thể xem bên dưới.

1) Để đẩy ứng dụng của bạn:

adb push /pathOfApk/com.my.awesome.apk /data/local/tmp/com.my.awesome

com.my.awesomegói của bạn ở đâu

2) Để cài đặt:

adb shell pm install -t -r "/data/local/tmp/com.my.awesome"

Nếu bạn cài đặt một ứng dụng cho phép bạn kết nối qua ssh với quyền root, lệnh này sẽ hoạt động tốt. :-)
TSJNachos117

11

Thật là dễ dàng!

ví dụ: vị trí tệp apk của tôi là: d: \ myapp.apk

  1. chạy cmd

  2. điều hướng đến thư mục "platform-tools" (trong thư mục sdk)

  3. khởi động thiết bị giả lập của bạn (giả sử tên của nó là 5556: MyDevice)

  4. nhập mã này vào cmd:

    trình giả lập adb -s-5556 cài đặt d: \ myapp.apk

Đợi một lúc và nó làm !!


Bạn cũng có thể thêm thư mục công cụ nền tảng vào đường dẫn của mình, vì vậy bạn không phải điều hướng đến nó mỗi lần.
Prashanth Chandra

4

Bạn có khả năng ở đây vì bạn cũng muốn xây dựng nó!

Xây dựng

gradlew

(Trên Windows gradlew.bat)

Sau đó cài đặt

adb install -r exampleApp.apk

(Làm -rcho nó thay thế bản sao hiện có, thêm -snếu cài đặt trên trình giả lập)

Tặng kem

Tôi thiết lập một bí danh trong ~/.bash_profile

alias bi="gradlew && adb install -r exampleApp.apk"

(Viết tắt của Build and Install)


4

Để cài đặt apk gỡ lỗi (kiểm tra), sử dụng -t:

Chạy dự án xây dựng

Tìm kiếm apk được tạo cuối cùng trong thư mục ứng dụng.

Thí dụ:

adb  install -t C:\code\BackupRestore\app\build\outputs\apk\debug\app-debug.apk

2

Bạn có thể làm điều này bằng cách sử dụng các công cụ dòng lệnh adb HOẶC các lệnh phân lớp: Xem Hướng dẫn này .

Thiết lập dòng lệnh adb

export PATH=/Users/mayurik/Library/Android/sdk/platform-tools/adb:/Users/mayurik/Library/Android/sdk/tool

Lệnh Gradle để xây dựng và cài đặt.

 #Start Build Process
    echo "\n\n\nStarting"
    ./gradlew clean

    ./gradlew build

    ./gradlew assembleDebug

    #Install APK on device / emulator
    echo "installDebug...\n"

    ./gradlew installDebug

Bạn cũng có thể gỡ cài đặt mọi phiên bản trước bằng cách sử dụng

  `./gradlew uninstallDebug`

Bạn có thể khởi chạy hoạt động chính của mình trên thiết bị / trình giả lập như bên dưới

#Launch Main Activity
adb shell am start -n "com.sample.androidbuildautomationsample/com.sample.androidbuildautomationsample.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER

0

Tôi sử dụng tập lệnh này trên máy tính windows của mình (không bao gồm tất cả các apks trong thư mục hiện tại cho tất cả các thiết bị có sẵn)

Write-Host "Listing APKs..."

$List_Apks = New-Object System.Collections.ArrayList

Get-ChildItem -Path .\ -Filter *.apk -File -Name| ForEach-Object {
    $apk_filename = [System.IO.Path]::GetFileName($_)
    $List_Apks+=$apk_filename
    $apk_filename
}

Write-Host "Found apks "$List_Apks.Length
Write-Host ""

$raw_list = adb devices
$array_lines = $raw_list.Split("\n")

Write-Host "Listing devices "

$List_Device_Ids = New-Object System.Collections.ArrayList

1..($array_lines.Length-2) | foreach {
  $device_id = $array_lines[$_].Split([char]0x9)[0]
  $List_Device_Ids+=$device_id
  $device_id
}

Write-Host "Found devices "$List_Device_Ids.Length

0..($List_Device_Ids.Length-1) | foreach {
    $device_id = $List_Device_Ids[$_]

    0..($List_Apks.Length-1) | foreach {
        $apk_file_name = $List_Apks[$_]

        Write-Host "Installing " $apk_file_name "->" $device_id

        adb -s $device_id install -r $apk_file_name
    }
}


Write-Host "Endo"

Lưu cái này dưới dạng install-apks.ps1

Sau đó, từ quyền hạn:

powershell -executionpolicy bypass -File .\install-apks.ps1
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.