แอพ Android เก็บข้อมูลที่ไหน


97

คำตอบ:


92

ปพลิเคชันทั้งหมด (รากหรือไม่) /data/data/<package_name>มีไดเรกทอรีข้อมูลเริ่มต้นซึ่งเป็น ตามค่าเริ่มต้นฐานข้อมูลแอพการตั้งค่าและข้อมูลอื่น ๆ ทั้งหมดจะอยู่ที่นี่ หากแอปคาดว่าจะมีการจัดเก็บข้อมูลจำนวนมากหรือด้วยเหตุผลอื่นที่ต้องการ "ดีต่อการจัดเก็บข้อมูลภายใน" แสดงว่ามีไดเรกทอรีที่เกี่ยวข้องใน SDCard ( Android/data/<package_name>)

นอกจากนั้นแอพทั้งหมดสามารถจัดเก็บข้อมูลได้ทุกที่ใน SDCard เนื่องจากไม่มีข้อ จำกัด และแอพจำนวนมากทำเช่นนั้น พวกเขาสามารถใช้ชื่อไดเรกทอรีได้อย่างอิสระ (และพวกเขาทำอีกครั้ง) ซึ่งเป็นสิ่งที่ทำให้ยากที่จะตัดสินใจว่า "ขยะ" ทั้งหมดบนการ์ดนั้นมีไว้เพื่ออะไรและสามารถลบอะไรได้บ้าง

แม้ว่าทอมจะระบุไว้ชัดเจนว่าแอปรูทสามารถจัดเก็บข้อมูลของพวกเขาได้เกือบทุกที่บนอุปกรณ์ของคุณพวกเขามักจะปฏิบัติตามกฎเดียวกันกับแอปอื่น ๆ

คุณสามารถหาคำอธิบายทั่วไปของลำดับชั้นไดเรกทอรี Android ในคำตอบของฉันที่นี่ สำหรับคำถามเฉพาะของคุณฉันอาจเพิ่มรายละเอียดเพิ่มเติมเกี่ยวกับ/data/data/<package_name>(และส่วนที่เกี่ยวข้อง SD):

  • databases/: ไปที่ฐานข้อมูลของแอพ
  • lib/: ห้องสมุดและผู้ช่วยเหลือสำหรับแอป
  • files/: ไฟล์ที่เกี่ยวข้องอื่น ๆ
  • shared_prefs/: การตั้งค่าและการตั้งค่า
  • cache/: ดีแคช

อาจมีไดเรกทอรีหลายแห่งในที่นี้หรือน้อยกว่านั้นขึ้นอยู่กับแอพ ใน "โฮมไดเร็กตอรี่" ของตัวเอง (และนั่นคือสิ่งที่มันเป็นพื้นพูด Linux ฉลาด) พวกเขาสามารถวางไฟล์ที่พวกเขาต้องการ โดยปกติแล้วไฟล์และไดเรกทอรีเหล่านี้จะสามารถเข้าถึงได้โดยแอปเท่านั้น (และรูทแน่นอน) - นอกเหนือจากที่เก็บไว้ใน SDCard ซึ่งแอปทั้งหมดสามารถเข้าถึงได้


1
เป็น/data/data/<name>/files/ที่ไฟล์ที่สร้างขึ้นตามที่อธิบายในdeveloper.android.com/guide/topics/data/...จะไป? คือผู้ที่เปิดด้วยFileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);?
ไม่มีใคร

โดยทั่วไปแล้วนี่เป็นคำตอบที่ดีอยู่แล้ว แต่สิ่งที่เกี่ยวกับการเพิ่มการอ้างอิงไปยังdeveloper.android.com/guide/topics/data/ …เกี่ยวกับไดเรกทอรีใดที่มีความสัมพันธ์กับคำอธิบายนามธรรม / เส้นทางผู้ไม่เชื่อเรื่องพระเจ้าที่นั่น?
ไม่มีใคร

@Nobody 2) เพราะหน้านั้นมุ่งเน้นนักพัฒนาเป็นอย่างมากในขณะที่ไซต์นี้เน้นผู้ใช้ปลายทาง เหมือนกันสำหรับ 1) ฉันไม่ใช่นักพัฒนาและจะขอรายละเอียดการพัฒนา ขอโทษ
Izzy

1
ฉันไม่ได้มีการ์ด SD และใน Android ของฉัน 6 และ Android 7, Whatsapp เก็บไว้จำนวนมากของข้อมูลใน/storage/emulated/0/WhatsApp/(subdirs .Shared, .trash, Backups, Databases, Media) รวมทั้งสื่อทั้งหมด ฉันไม่ทราบว่านี่เป็นสิ่งเพิ่มเติม\data\data...หรือไม่ฉันไม่สามารถเข้าถึงไดเรกทอรีนี้ได้ในขณะนี้ บางทีนี่อาจมีการเปลี่ยนแปลงระหว่างรุ่น
sancho.s

1
@Shayan ไดเรกทอรีราก ( /) ไม่ได้อยู่ในการ์ด SD การ์ด SD หมายถึงด้านล่าง/sdcard(การ์ดภายในจุดไปยัง/storage/emulated/<user>) หรือเส้นทางที่สอดคล้องกันของการ์ดภายนอกของคุณ และไม่ฉันไม่สามารถอธิบายตำแหน่งที่เป็นไปได้ทั้งหมดที่บางแอพอาจใช้ขออภัย AFAIK /data/miscได้รับการจัดการโดยระบบ Android เองดังนั้น "แอปพลิเคชัน" ที่ดีที่สุดควรเข้าถึงการอ่าน ไม่เคยเจอdata/user_de(เพราะเป็นเส้นทางญาติฉันไม่รู้ว่าคุณหมายถึงยังไง)
Izzy

9

คำตอบสำหรับคำถามที่คุณถามนั้นใหญ่เกินไป อย่างไรก็ตามฉันสามารถให้คำตอบพื้นฐานซึ่งครอบคลุมพื้นฐานได้

แอพมีสองประเภท:
รูทและไม่ใช่รู

แอปรูทสามารถจัดเก็บ / แก้ไขไฟล์ได้ทุกที่ที่ต้องการ แอปที่

ไม่ใช่รูทสามารถจัดเก็บ / แก้ไขไฟล์ได้ที่นี่: /sdcard/และทุก ๆ โฟลเดอร์ที่เกิดขึ้นหลังจากนั้น
ส่วนใหญ่ปพลิเคชันที่ติดตั้งตัวเองที่เก็บหรือ/sdcard/Android/data ปพลิเคชันบางเก็บบันทึกเกม / ไฟล์ข้อมูลการกำหนดค่าของพวกเขาในหรือเพียงแค่บน เพื่อให้สามารถใช้รากปพลิเคชันที่คุณจะต้องได้ฝังรากอุปกรณ์ Android ของคุณและได้รับอนุญาตจากหนึ่งในปพลิเคชันใช้ super/sdcard/Android/obb
/sdcard/APPNAME//sdcard/

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