如何使用adb命令在没有sd卡的设备上推送文件


104

如何将文件从计算机推送到其中没有SD卡的android设备。我试过了:

C:\anand>adb push anand.jpg /data/local
3399 KB/s (111387 bytes in 0.032s)

C:\anand>adb push anand.jpg /data/opt
3199 KB/s (111387 bytes in 0.034s)

C:\anand>adb push anand.jpg /data/tmp
3884 KB/s (111387 bytes in 0.028s)

上面的命令将文件移动anand.jpg到设备,但我没有jpg在设备中获取此文件。我在cmd提示符下未获得任何成功结果,我只有:

3399 KB/s (111387 bytes in 0.032s).

3
adb shell "cd /data/local && mkdir tmp"然后尝试adb push anand.jpg /data/local/tmp。如何使用来检查设备上的文件adb shell

@RC我正在使用ls命令来检查文件。我在emulator.DDMS视图上至少找到了它,但仍然没有在设备上得到它。当我尝试“ adb push”命令时,它显示找不到实际设备的设备。但adb设备正在显示该设备。
Nikhil Kumar

我将停止模拟器,拔出设备的

1
这个问题似乎与主题无关,因为它与编程无关。请在帮助中心中查看我可以询问哪些主题。也许Android发烧友Stack Exchange是更好的选择。
jww

RC的建议对我来说适用于此变体:adb shell "cd /sdcard && mkdir temp"然后abd push x.apk /sdcard/temp",我将文件保存在sdcard上的temp文件夹中,并能够从那里进行刷新。
Kajetan Abt 2015年

Answers:


130

从Ubuntu Terminal,以下对我有用。

./adb push '/home/hardik.trivedi/Downloads/one.jpg' '/data/local/'

我正在Windows cmd提示符下工作,您能否在Windows中告诉我该怎么做。
Nikhil Kumar 2013年

只需删除“ ./”并使用简单的adb或adb.exe。如果您尚未设置android的路径,请确保您位于platform-tools文件夹中。
Hardik Trivedi 2013年

2
我们可以在不扎根手机的情况下做到这一点吗?
雅各布

2
@HardikTrivedi:您是说一般还是针对此特定文件目标,需要使用root才能进行adb push?我正在使用adb push在非根设备上的Android设备的SD卡上写入文件。
RenniePet 2015年

2
要使推命令也适用于非root用户的电话,仅/ data文件夹是需要root用户的。
Hardik Trivedi 2015年

33

我使用以下命令做到了:

句法: adb push filename.extension /sdcard/0/

例: adb push UPDATE-SuperSU-v2.01.zip /sdcard/0/


1
刚刚将mp3文件从mac osX移到了android 5.0设备上,我不得不在设备上写文件名,即“ adb push /file.mp3 /sdcard/fileOrOtherFileName.mp3”
DoruChidean

28

跟着这些步骤 :

转到Android SDK,然后在终端或控制台上选择“平台工具”路径

(在Mac上,默认路径为:/ Users / USERNAME / Library / Android / sdk / platform-tools)

要检查设备上安装的SDCard(外部和内部),请执行以下命令:

  • 1)./adb shell(命中返回/输入)
  • 2)cd-(点击返回/输入)

现在,您将在其中找到/ sdcard以及/ storage的android设备中的目录和文件列表

  • 3)cd / storage(命中返回/输入)
  • 4)ls(点击返回/输入)

您可能会看到sdcard0(通常sdcard0是内部存储设备)和sdcard1(如果存在外部SDCard)

  • 5)退出(点击返回/输入)

从adb shell出来

  • 6)./adb push'/Users/SML/Documents/filename.zip'/ storage / sdcard0 / path_to_store /(点击返回/输入)

复制文件


11

有时您需要扩展程序,

亚行推送文件.zip /sdcard/file.zip


1
我有LG Nexus 5,您不能在其中插入外部sdcard,但内部存储器的一部分的行为就像是sdcard。在这种情况下,sdcard只是根目录下的目录,您可以通过调用“ adb shell”进行检查当您在外壳程序中时,调用“ ls”进行目录列表
cstuncsik

8

首先运行以下命令

adb root
adb remount

然后执行您之前输入的内容

C:\anand>adb push anand.jpg /data/local
C:\anand>adb push anand.jpg /data/opt
C:\anand>adb push anand.jpg /data/tmp

4

我有一个Nexus 4,没有外部存储。但是Android认为有一个,因为它安装了一个单独的分区,称为“存储”,安装在“ / storage / emulated / legacy”中,因此请尝试将其推入:adb push anand.jpg /storage/emulated/legacy


对于我的nexus 4 /sdcard.file.zip就像一个魅力。
sud007

4

我的解决方案(例如带有随机mp4视频文件的示例):

  1. 设置文件到设备:

    adb push /home/myuser/myVideoFile.mp4 /storage/emulated/legacy/
  2. 从设备获取文件:

    adb pull /storage/emulated/legacy/myVideoFile.mp4 

要在代码中检索路径:

String myFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/myVideoFile.mp4";

这就是全部。该解决方案不会出现权限问题,并且可以正常工作。

最后一点:我想更改视频元数据信息。如果要写入设备,则应在中更改权限AndroidManifest.xml。添加此行:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

3

由于不同版本有不同的路径。这是一个通用的解决方案:

找到路径...

  1. adb shell在命令行中输入。
  2. 然后ls,按Enter。

现在,您将看到Android设备的文件和目录。现在结合使用lscd dirName找到内部或外部存储的路径。

在根目录中,目录名称将类似于 mnt, sdcard, emulator0,

例: adb push file.txt mnt/sdcard/myDir/Projects/



0

您正在尝试写入系统文件夹。使用ADB,您具有root(管理员)访问权限,因此您可以看到sdcard是其中之一的系统文件夹,以便发送可以使用的图片

D:\ Program Files \ Android \ sdk \ platform-tools \ adb push am files \ android sdk \ adb.exe push C:\ Downloads \ anand.jpg / sdcard / pictures /

注意:C:\ Downloads \ anand.jpg替换为图片的路径和名称。


0

某些版本的android不会触发更新文件系统状态的正确任务。您可以触发明确的意图来更新文件系统的状态。(我是在同一个OP的情况下进行测试的)

adb shell am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///

(您可以传递一个特定的文件路径,而不是 file:///like file:///sdcard


0

就我而言,我有一个已经删除的SDCard仍在Android中注册。因此,我在以下位置长按了旧SDCard的条目:

Settings | Storage & USB

并选择“忘记”。

之后正常

adb push myfile.zip /sdcard/

工作正常。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.