簡體   English   中英

如何將多個 android 應用程序(從 apk 文件)安裝到設備中?

[英]How to install multiple android applications ( from apk files) into device?

我有 50 個 apk 文件,我需要將它安裝到許多 Android 設備上。 如何一鍵安裝。 我可以通過“安裝”命令使用 adb 安裝 apk 文件,但如何一次安裝 50 個 apk 文件?

我正在使用 Windows

謝謝。

在 Windows 中,您可以使用以下命令行:

for %f in (C:\your_app_path\*.apk) do adb install "%f"

您可以使用(來自ADB幫助):

adb install-multiple [-lrtsdpg] <file...>
                             - push this package file to the device and install it
                               (-l: forward lock application)
                               (-r: replace existing application)
                               (-t: allow test packages)
                               (-s: install application on sdcard)
                               (-d: allow version code downgrade)
                               (-p: partial application install)
                               (-g: grant all runtime permissions)

這比逐個安裝更可取,因為您將在每個連接/斷開設備調制解調器的命令上節省一些開銷連接時間,

一般來說,在轉義包名稱(您的 apk 文件)時使用install-multiple ,最好確保 apk 文件名沒有空格,否則您必須轉義文件名。 如果您使用的是 Windows 的 cmd 轉義和包裝,則"是強制性的,除非您使用了一個小技巧:將一些 apk 文件放在批處理文件上並使用%*作為參數。

如果您仍然處於“我想逐個安裝,請使用以下答案https://stackoverflow.com/a/34553043/257319中的我的腳本,它將允許您無限量的參數,同時正確縮短安裝命令中的 apk 文件名..

另一種選擇是將整個 APK 批量壓縮為“存儲壓縮 zip”,將其推送到 sdCard,將其解壓縮到 tmp 文件夾,並使用 shell 一個一個地安裝包,但由於這些包存在於本地,因此“adb”的開銷-to-modem 對話”幾乎沒有 :)

安裝愉快:]

你用的是linux嗎? 您可以將所有 apk 復制到一個目錄,然后簡單地運行:

#!/bin/sh
for file in /dir/*
do
  adb install $file 
done

這對我有用:

ls *.apk | cut -d' ' -f9 | tr '\r' ' ' | xargs -r -n1 -t adb install

所有 APK 都存在於當前目錄中。 (在 Ubuntu 上執行)

我找到了解決方案。 它實際上非常簡單:

adb install application1.apk & adb install application2.apk & adb install applicaiton3

這就是我一直在尋找的。 感謝大家

基於(並感謝)alextooter 的回答並由 Manoj Khanna 編輯

我想出了這個:

在 Windows 中,您可以使用以下命令行:

for %f in (C:\your_app_path\*.apk) do adb install "%f"

在批處理文件中:

您可以使用 %%f 和 "%%f" 代替,經過長時間的工作后,我在批處理文件中提出了這個非常簡潔的解決方案:

@echo Preparing to install all .apk files in "C:\My Hardware\Cell Phone\APKs\" folder to device

@pause

@for /f "delims=|" %%f in ('dir /b "C:\My Hardware\Cell Phone\APKs\"*.apk') do @"C:\My Hardware\Cell Phone\ADB\adb.exe" install -r "C:\My Hardware\Cell Phone\APKs\%%f"

@echo End of Batch File

@pause

這個批處理文件給出了這個輸出,[注意幾個錯誤,因為文件名中有非常規字符(™ 商標字符和“&”符號),但沒什么好擔心的,這將是另一個話題。]

[最后一句話。 原始文件夾地址比“我的硬件”要長得多,並且僅出於說明目的進行了編輯,如果有任何機會忘記在其他行中進行編輯,請注意。 它經過三重檢查,但無論如何,人們永遠不會知道。]

因此,使用屏幕輸出復制粘貼:

Preparing to install all .apk files in "C:\My Hardware\Cell Phone\APKs\" folder to device

Press any key to continue . . .

2119 KB/s (3730200 bytes in 1.718s)

        pkg: /data/local/tmp/AdAway_v3 (04-2015).apk

Success

2349 KB/s (39102487 bytes in 16.250s)

        pkg: /data/local/tmp/Amazon Kindle_4.13.0.203_1144258763.apk

Success

1681 KB/s (591738 bytes in 0.343s)

        pkg: /data/local/tmp/Apk Extractor_3.04.apk

Success

1824 KB/s (2685472 bytes in 1.437s)

        pkg: /data/local/tmp/CCleaner_v1.11.43_71411143.apk

Success

1433 KB/s (22935 bytes in 0.015s)

        pkg: /data/local/tmp/Contenidos_1.0_1.apk

Success

can't find 'C:\My Hardware\Cell Phone\APKs\Digital clock XperiaT_3.8.0.96_96.apk' to install

2955 KB/s (189128 bytes in 0.062s)

        pkg: /data/local/tmp/DiskUsage_3.5.3_3053.apk

Success

1761 KB/s (873714 bytes in 0.484s)

        pkg: /data/local/tmp/Galactic Core Free_2.41_43.apk

Success

2619 KB/s (11988685 bytes in 4.468s)

        pkg: /data/local/tmp/Gmail_5.3.95312851_53000576.apk

Success

2380 KB/s (2856307 bytes in 1.171s)

        pkg: /data/local/tmp/Goggles_1.9.4_211.apk

Success

2555 KB/s (38071805 bytes in 14.546s)

        pkg: /data/local/tmp/Google App_4.7.13.19.arm_300412076.apk

Success

2467 KB/s (23850128 bytes in 9.437s)

        pkg: /data/local/tmp/Google Keyboard_4.1.22063.1974169_22063.apk

Success

2682 KB/s (9999424 bytes in 3.640s)

        pkg: /data/local/tmp/Google Play Books_3.4.9_30409.apk

Success

2141 KB/s (13604976 bytes in 6.203s)

        pkg: /data/local/tmp/Google Play Games_3.1.11 (2044178-030)_31110030.apk

Success

2689 KB/s (9640324 bytes in 3.500s)

/system/bin/sh:  TV_3.8.8_38081.apk: not found

/system/bin/sh:  TV_3.8.8_38081.apk: not found

2761 KB/s (17101587 bytes in 6.046s)

        pkg: /data/local/tmp/Google Play Music_6.0.1945S.2039625_1945.apk

Success

2694 KB/s (7631202 bytes in 2.765s)

        pkg: /data/local/tmp/Google Play Newsstand_3.2.0_2014040406.apk

Success

2371 KB/s (41779806 bytes in 17.203s)

        pkg: /data/local/tmp/Google Play services_7.5.74 (1997312-030)_7574030.apk

Success

2759 KB/s (13424078 bytes in 4.750s)

        pkg: /data/local/tmp/Google Text-to-speech Engine_3.4.6.1819666.arm_2103
04060.apk

Success

2448 KB/s (34089466 bytes in 13.593s)

        pkg: /data/local/tmp/Google+_5.8.0.96635860_414049433.apk

Success

2499 KB/s (20197317 bytes in 7.890s)

        pkg: /data/local/tmp/Hangouts_3.3.94322993_22401362.apk

Success

2371 KB/s (13280248 bytes in 5.468s)

        pkg: /data/local/tmp/Keep_3.1.204.00_3120400.apk

Success

2672 KB/s (20566942 bytes in 7.515s)

        pkg: /data/local/tmp/Maps_9.10.1_910100121.apk

Success

2292 KB/s (5759074 bytes in 2.453s)

        pkg: /data/local/tmp/Nova Launcher_4.0.1_40100.apk

Success

2515 KB/s (3098485 bytes in 1.203s)

        pkg: /data/local/tmp/Santa Biblia Reina Valera 1960_1.5.3_40.apk

Success

2769 KB/s (4918721 bytes in 1.734s)

        pkg: /data/local/tmp/TalkBack_4.2.0_40200008.apk

Success

1857 KB/s (564672 bytes in 0.296s)

        pkg: /data/local/tmp/Terminal Emulator_1.0.70_71.apk

Success

2266 KB/s (1160352 bytes in 0.500s)

        pkg: /data/local/tmp/Tinycore_3.2.2_22.apk

Success

2221 KB/s (12048716 bytes in 5.296s)

        pkg: /data/local/tmp/WALKMAN_8.3.A.0.2.apk

Success

1667 KB/s (18543284 bytes in 10.859s)

        pkg: /data/local/tmp/WhatsApp_2.12.158_450540.apk

Success

End of Batch File

Press any key to continue . . .

如果您需要一個跨平台解決方案,它還可以同時在多個連接的設備上運行(具有一系列便利功能,例如在默認位置查找 adb),您可以查看此工具:

https://github.com/patrickfav/uber-adb-tools

安裝使用

java -jar uber-adb-tools.jar --install /folder/apks/

控制台展示

還卸載具有通配符支持的多個包。

完全免責聲明:我是開發者

for file  in ./*.apk;
do
 adb -s deviceserial install $file;
done

Lokenschwar 的答案不采用包含空格的 apk 名稱。 這也用空格命名。

ls -1 *.apk | xargs -d \\n -r -n1 -t adb install

如果您想在 Mac 上執行此操作,請將所有 APK 放在一個文件夾中,然后在終端中嘗試:

for file in apk/*; 
do 
./adb install $file; 
done

對於 Windows,請執行以下操作:

在你的文件夾路徑中的 CMD 中運行這個:

dir /s /b > print.txt

打開文本文件並重命名所有輸入

c:\......

adb install -r c:\....

該文件應如下所示:(假設您使用記事本查看“print.txt”文件,請按“CTRL+H”。這將打開“查找和替換”對話框。

adb install -r c:\apps\com.ups.mobile.android-2.apk
adb install -r c:\apps\com.vavni.android.battleship-1.apk

現在您需要將“c:\apps\print.txt”中的 .txt 擴展名重命名為“print.bat”。 您需要在 Windows 中顯示擴展名。 谷歌,如果你不知道怎么做

http://forum.xda-developers.com/showthread.php?t=743457

我已經使用一個 SDCard 和 MultiAPKInstaller 在 30 台設備上安裝了 10 個 apk 文件(可在 Play 商店中獲得:https: //play.google.com/store/apps/details? id=com.bifusimo.multiapkinstaller&hl=pl)。

在 Windows 10 上使用 Powershell ISE:

  1. 將所有*.apk文件放在一個文件夾中(不要在文件名中使用空格)

  2. 導航到此文件夾

    CD "/your/folder/dir"
  3. 鍵入此命令:

     (gci -re *.apk).Fullname

    這將返回所有具有完整路徑的 apk 文件

  4. 將所有列表復制到 Script pan(在右側或底部) - 然后Ctrl + A

  5. Ctrl + H打開查找和替換

  6. 將apk文件前的路徑替換為“adb install” (最后有1個空格)

    例如,如果我們有這個:

     C:/Users/Username/Documents/APK Folder/first.apk C:/Users/Username/Documents/APK Folder/second.apk C:/Users/Username/Documents/APK Folder/third.apk

    更換后:

     adb install first.apk adb install second.apk adb install third.apk
  7. 使用Ctrl + A再次選擇所有列表

  8. 按鍵盤上的F8或命令欄上的運行選擇

    這會將所有 apk 安裝到連接的設備/模擬器

將以下內容另存為“ something.ps1 ”。 右鍵單擊->使用 PowerShell 運行

$startTime = Get-Date -Format 'yyyy-MM-dd-HH-mm-ss'
$fileNames = Get-ChildItem -Path $scriptPath -Recurse -Include *.apk
$log = foreach ($f in $fileNames) { adb install -r $f }
$log | Out-File installation-$startTime.log

最后會生成一個日志文件。 它將包含所有錯誤消息。

我為 Windows 開發了腳本,它將所有 apk 安裝到所有連接的設備:

echo off       
setlocal EnableDelayedExpansion           
for /f "tokens=*" %%f in ('C:\android\sdk\platform-tools\adb.exe devices') do (
for /r %%p in (*.apk) do (
set devicestr=%%f
set apk=%%p
if "!devicestr!"=="!devicestr:List=!" (
for /f "tokens=1" %%d in ("!devicestr!") do (
set deviceid=%%d
echo !deviceid!
echo !apk!
C:\android\sdk\platform-tools\adb.exe -s !deviceid! install !apk!
)
)
)
)

執行 Alextooter 的答案所需的分步操作:

在 Windows 10 上:

  1. 在此處下載 adb fastboot(第一篇文章中的下載鏈接): https ://forum.xda-developers.com/showthread.php?t=2317790

最小的ADB和Fastboot_techbeasts.rar

  1. 解壓到 c:/b/fastboot(例如)
  2. 打開 c:/b/fastboot/py_cmd.exe
  3. 通過usb將手機連接到windows

電話:

  1. 設置>關於手機>在底部附近點擊構建nr或構建模型7次>解鎖開發者選項。
  2. 設置>開發者選項>啟用adb調試
  3. 在 Windows 上的 ADB 中:輸入:

adb devices

查看哪些可用。

  1. 如果顯示...未經授權,請解鎖手機屏幕並接受 pc 密鑰。

  2. 然后,如果您將 .apk 粘貼到 c:/b/fastboot/test.apk 中,則以下命令將安裝該應用程序:

    adb 安裝 test.apk

  3. 以下命令將所有 apk 安裝在一個文件夾中:

    for %f in (C:\your_app_path\*.apk) do adb install "%f"

  4. 請注意,如果路徑中有空格,則應將路徑放在引號之間:

    for %f in ("c:/b/fastboot/subfolder with space in the name/apks\*.apk") do adb install "%f"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM