Android ADB:如何将多个文件推送到模拟器中?

时间:2019-05-12 13:18:37

标签: android adb

我正在使用ADB以便将文件从桌面复制到模拟器上的文件夹。

  

adb push pic.jpg'/ storage / emulated / 0 / DCIM / camera /

这可以正常工作,但是我要复制许多文件,并且我不想为每个文件重复此命令。如何“推送”整个目录的内容?

编辑:我的Android工作室的屏幕截图:

enter image description here

4 个答案:

答案 0 :(得分:1)

要将所有内容推送到当前目录中,您可以尝试:

adb push * /storage/emulated/0/DCIM/camera/*

答案 1 :(得分:1)

要上传整个目录,最简单的方法是在Android Studio中使用设备文件管理器。

从右下角的工具栏将其打开,然后导航到设备中要上传数据的目录。

Device File Manager

右键单击并单击上载以上传文件或目录。

注意:仅适用于Android Studio 3.0及更高版本

答案 2 :(得分:1)

您可以使用product_tgt_cols = [product+'_tgt' for product in product_list] print(product_tgt_cols) #['Product1_tgt', 'Product2_tgt', 'Product3_tgt', 'Product4_tgt', 'Product5_tgt'] product_pct_cols = [product+'_pct' for product in product_list] print(product_pct_cols) #['Product1_pct', 'Product2_pct', 'Product3_pct', 'Product4_pct', 'Product5_pct'] start = time.time() #join on location to get _tgt columns emp_df = emp_df.join(tgt_df.set_index('Location'), on='Location', rsuffix='_tgt') #divide the entire product arrays using numpy, store in temp temp = emp_df[product_list].values/emp_df[product_tgt_cols].values #create a new temp df for the _pct results, and assign back to emp_df emp_df = emp_df.assign(**pd.DataFrame(temp, columns = product_pct_cols)) print(emp_df) end = time.time() print("with join: ",end - start) 将所有文件放入一个存档:

tar

然后将归档文件推送到设备上

tar -cvf all.tar .

最后将您的tar文件解压缩到设备中

adb push all.tar  /sdcard 

答案 3 :(得分:0)

我找不到解决方案,所以我做了一个:

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