Bạn có thể liệt kê tất cả các thư mục có thể trong đó các ứng dụng Android có thể lưu trữ dữ liệu, cung cấp mô tả loại dữ liệu nào được lưu trữ trong mỗi thư mục không?
Bạn có thể liệt kê tất cả các thư mục có thể trong đó các ứng dụng Android có thể lưu trữ dữ liệu, cung cấp mô tả loại dữ liệu nào được lưu trữ trong mỗi thư mục không?
Câu trả lời:
Tất cả các ứng dụng (gốc hoặc không) đều có thư mục dữ liệu mặc định /data/data/<package_name>
. Theo mặc định, cơ sở dữ liệu ứng dụng, cài đặt và tất cả các dữ liệu khác ở đây. Nếu một ứng dụng mong đợi lượng dữ liệu khổng lồ sẽ được lưu trữ hoặc vì lý do khác muốn "tốt đẹp cho bộ nhớ trong", thì có một thư mục tương ứng trên SDCard ( Android/data/<package_name>
).
Ngoài ra, tất cả các ứng dụng có thể lưu trữ dữ liệu ở bất cứ đâu trên SDCard, vì không có hạn chế - và nhiều ứng dụng làm như vậy. Họ có thể sử dụng tên thư mục một cách tự do (và họ lại làm như vậy), đó là điều thường khiến bạn khó quyết định tất cả những gì "rác" trên thẻ được dùng cho mục đích gì và nó có thể bị xóa.
Mặc dù, như Tom chỉ ra , các ứng dụng gốc có thể lưu trữ dữ liệu của chúng ở hầu hết mọi nơi trên thiết bị của bạn, chúng thường tuân theo các quy tắc giống như các ứng dụng khác.
Bạn có thể tìm thấy một lời giải thích chung về hệ thống phân cấp thư mục Android trong câu trả lời của tôi ở đây . Đối với câu hỏi cụ thể của bạn, tôi có thể thêm một số chi tiết về phần /data/data/<package_name>
(và phần SD tương ứng):
databases/
: ở đây đi cơ sở dữ liệu của ứng dụnglib/
: thư viện và người trợ giúp cho ứng dụngfiles/
: các tập tin liên quan khácshared_prefs/
: tùy chọn và cài đặtcache/
: tốt, bộ nhớ cacheCó thể có nhiều thư mục ở nơi này hoặc ít hơn - tất cả phụ thuộc vào ứng dụng. Trong "thư mục chính" của riêng mình (và đó chính là bản chất của Linux, nói khôn ngoan), họ có thể đặt các tệp ở nơi họ muốn. Thông thường, các tệp và thư mục này chỉ có thể được truy cập bởi chính ứng dụng (và tất nhiên là root) - trừ những tệp được lưu trữ trên SDCard, có thể truy cập được bởi tất cả các ứng dụng.
/data/data/<name>/files/
nơi các tệp được tạo như được mô tả trong developer.android.com/guide/topics/data/ khuyên sẽ đi đâu? Tức là những người đã mở với FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
?
/storage/emulated/0/WhatsApp/
(subdirs .Shared
, .trash
, Backups
, Databases
, Media
), bao gồm tất cả các phương tiện truyền thông. Tôi không biết nếu đây là ngoài \data\data...
, tôi không thể truy cập thư mục này ngay bây giờ. Có lẽ điều này đã thay đổi giữa các phiên bản.
/
) không nằm trên thẻ SD. Thẻ SD có nghĩa là bên dưới /sdcard
(thẻ nội bộ, trỏ đến /storage/emulated/<user>
) hoặc đường dẫn tương ứng của thẻ bên ngoài của bạn. Và không, tôi không thể giải thích tất cả các vị trí có thể một số ứng dụng có thể sử dụng, xin lỗi; AFAIK /data/misc
được quản lý bởi chính hệ thống Android, vì vậy "các ứng dụng đơn thuần" tốt nhất nên có quyền truy cập đọc ở đó. Không bao giờ gặp phải data/user_de
(vì đó là một con đường tương đối, tôi không biết ý của bạn là gì).
Câu trả lời cho câu hỏi của bạn mà bạn đang hỏi quá lớn. Tôi có thể, tuy nhiên, cung cấp cho bạn một câu trả lời cơ bản bao gồm những điều cơ bản.
Có hai loại ứng dụng:
Root và không root .
Ứng dụng root về cơ bản có thể lưu trữ / sửa đổi các tập tin bất cứ nơi nào họ muốn.
Các ứng dụng không root chỉ có thể lưu trữ / sửa đổi các tệp ở đây: /sdcard/
và mọi thư mục xuất hiện sau.
Hầu hết, các ứng dụng được cài đặt tự lưu trữ tại /sdcard/Android/data
hoặc /sdcard/Android/obb
.
Một số ứng dụng lưu trữ các tệp dữ liệu cấu hình trò chơi / trò chơi của họ /sdcard/APPNAME/
hoặc chỉ trên /sdcard/
Để có thể sử dụng các ứng dụng gốc , bạn sẽ cần phải root thiết bị Android của mình và đã được sự cho phép từ một trong những ứng dụng siêu người dùng.