[英]Android ADB: How to push multiple files, into an emulator?
要推送當前目錄中的所有內容,您可以嘗試:
adb push * /storage/emulated/0/DCIM/camera/*
您可以使用tar
將所有文件放入一個存檔中:
tar -cvf all.tar .
然后將該存檔推送到設備:
adb push all.tar /sdcard
最后在設備中解壓你的 tar 文件:
adb shell tar -xvf /sdcard/all.tar -C /sdcard
我找不到解決方案,所以我做了一個:
from ppadb.client import Client as AdbClient
import os
import glob
adb = AdbClient(host='127.0.0.1', port=5037)
devices = adb.devices() #List of all connected devices
def send_over_adb(device,hostpath,devpath="/storage/emulated/0/"): # Recursively send folder and files over adb
if os.path.isfile(hostpath):
devpath = os.path.join(devpath,hostpath).replace('\\','/') # optimization for windows
device.push(hostpath, devpath)
elif os.path.isdir(hostpath):
for i in glob.glob(hostpath+'\*'):
print(i)
send_over_adb(device,i,devpath)
device.shell('am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///mnt/sdcard')
device.shell('am force-stop com.android.gallery3d') #force create thumbnails
hostpath='\path\to\folder\or\file\'
send_over_adb(devices[0],hostpath,devpath)
此函數遞歸發送文件夾和文件,同時保持文件夾結構並忽略空目錄。
限制:文件名不應包含正斜杠或反斜杠(idk,如果任何操作系統允許)
依賴:pure-python-adb
測試:Python3.7.9 on Win 8.1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.