วิธีใช้คำสั่ง adb เพื่อพุชไฟล์บนอุปกรณ์โดยไม่ใช้การ์ด sd


104

วิธีการส่งไฟล์จากคอมพิวเตอร์ไปยังอุปกรณ์ Android ที่ไม่มี SD Card ฉันเหนื่อย:

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 เพื่อตรวจสอบไฟล์ ฉันได้รับมันอย่างน้อยที่สุดในมุมมอง DDMS บนโปรแกรมจำลอง แต่ฉันยังไม่ได้รับมันบนอุปกรณ์ เมื่อฉันลองใช้คำสั่ง "adb push" แสดงว่าไม่พบอุปกรณ์สำหรับอุปกรณ์จริง แต่อุปกรณ์ adb กำลังแสดงอุปกรณ์
Nikhil Kumar

ฉันจะหยุดโปรแกรมจำลองถอดปลั๊กอุปกรณ์หลังจากตรวจสอบว่าอุปกรณ์อยู่ในโหมดดีบั๊กให้เสียบอุปกรณ์แล้วลองอีกครั้ง

1
คำถามนี้ดูเหมือนจะไม่ตรงประเด็นเนื่องจากไม่เกี่ยวกับการเขียนโปรแกรม ดูหัวข้อที่ฉันสามารถถามได้ที่นี่ในศูนย์ช่วยเหลือ บางทีผู้ที่ชื่นชอบ Android Stack Exchangeอาจเป็นสถานที่ที่ดีกว่าที่จะถาม
jww

คำแนะนำของ RC ใช้งานได้กับรูปแบบนี้สำหรับฉัน: adb shell "cd /sdcard && mkdir temp"จากนั้นabd push x.apk /sdcard/temp"ฉันก็ลงเอยด้วยไฟล์ของฉันในโฟลเดอร์ temp บน sdcard ของฉันและสามารถแฟลชได้จากที่นั่น
Kajetan Abt

คำตอบ:


130

จาก Ubuntu Terminal ด้านล่างใช้ได้กับฉัน

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

ฉันกำลังทำงานกับ windows cmd prompt คุณช่วยบอกฉันใน windows ว่าต้องทำอย่างไร
Nikhil Kumar

เพียงแค่ลบ "./" และใช้ adb หรือ adb.exe อย่างง่าย ตรวจสอบให้แน่ใจว่าคุณอยู่ในโฟลเดอร์ platform-tools หากคุณไม่ได้กำหนดเส้นทางสำหรับ Android
Hardik Trivedi

2
เราสามารถทำได้โดยไม่ต้องรูทโทรศัพท์หรือไม่?
เจคอบ

2
@HardikTrivedi: คุณกำลังบอกว่าการรูทจำเป็นต้องใช้ adb push โดยทั่วไปหรือสำหรับปลายทางของไฟล์นี้โดยเฉพาะ? ฉันใช้ adb push เพื่อเขียนไฟล์บนการ์ด SD ของอุปกรณ์ Android บนอุปกรณ์ที่ไม่ได้รูท
RenniePet

2
ในการกดคำสั่งใช้งานได้กับโทรศัพท์ที่ไม่ได้รูทด้วยเช่นกันโฟลเดอร์ / data เท่านั้นที่ต้องการผู้ใช้ที่รูท
Hardik Trivedi

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 แล้วตามด้วยเส้นทาง 'platform-tools' บน Terminal หรือ Console ของคุณ

(บน mac เส้นทางเริ่มต้นคือ: / Users / USERNAME / Library / Android / sdk / platform-tools)

ในการตรวจสอบ SDCards (ภายนอกและภายใน) ที่ติดตั้งบนอุปกรณ์ของคุณให้เรียกใช้คำสั่งเหล่านี้:

  • 1) ./adb shell (ตีกลับ / เข้า)
  • 2) cd - (ตีกลับ / ป้อน)

ตอนนี้คุณจะเห็นรายการไดเรกทอรีและไฟล์จากอุปกรณ์ Android ของคุณที่นั่นคุณอาจพบ / sdcard รวมทั้ง / ที่เก็บข้อมูล

  • 3) cd / storage (กด return / enter)
  • 4) ls (ตีกลับ / ป้อน)

คุณอาจเห็น sdcard0 (โดยทั่วไป sdcard0 เป็นที่เก็บข้อมูลภายใน) และ sdcard1 (หากมี SDCard ภายนอก)

  • 5) ออก (ตีกลับ / เข้า)

ออกมาจากเปลือก adb

  • 6) ./adb push '/Users/SML/Documents/filename.zip' / storage / sdcard0 / path_to_store / (hit return / enter)

เพื่อคัดลอกไฟล์


11

บางครั้งคุณต้องการส่วนขยาย

adb ดัน file.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 ขณะนี้มีการผสมผสานlsและcd dirNameค้นหาเส้นทางไปยังที่จัดเก็บข้อมูลภายในหรือภายนอก

ในไดเร็กทอรีรากชื่อไดเร็กทอรีจะเป็นเช่นmnt, sdcard, emulator0,อื่น ๆ

ตัวอย่าง: adb push file.txt mnt/sdcard/myDir/Projects/


3

ลองทำเช่นนี้เพื่อพุชในที่จัดเก็บข้อมูลภายใน

adb พุช my-file.apk ./storage/emulated/0/

ทำงานในอุปกรณ์ One plus โดยไม่ต้องใช้การ์ด SD


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 แทนที่ด้วย path และ name to picture ..


0

Android บางเวอร์ชันไม่ทำงานที่เหมาะสมสำหรับการอัปเดตสถานะของระบบไฟล์ คุณสามารถทริกเกอร์เจตนาที่ชัดเจนสำหรับการอัปเดตสถานะของระบบไฟล์ (ฉันเพิ่งทดสอบหลังจากอยู่ในสถานการณ์ของ OP เดียวกัน)

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

(คุณสามารถส่งผ่าน filepath เฉพาะแทนที่จะ file:///ชอบfile:///sdcard)


0

ในกรณีของฉันฉันมี SDCard ที่ลบไปแล้วซึ่งยังลงทะเบียนใน Android ดังนั้นฉันจึงกดรายการสำหรับ SDCard เก่าของฉันไว้นานภายใต้:

Settings | Storage & USB

และเลือก "ลืม"

หลังจากนั้นก็ปกติ

adb push myfile.zip /sdcard/

ทำงานได้ดี


0

นี่อาจเป็นคำตอบที่ดีที่สุดที่คุณจะอ่าน ตั้งค่า Android Studio จากนั้นไปที่ดู & เปิด Device Explorer คลิกขวาที่โฟลเดอร์และอัปโหลดไฟล์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.