Giới hạn file hệ thống là gì
Android sử dụng một hệ thống tệp tương tự như hệ thống tệp dựa trên ổ đĩa trong các nền tảng khác. Hệ thống này cung cấp một số lựa chọn để bạn lưu dữ liệu ứng dụng của mình: Show
Đặc điểm của các tuỳ chọn này được tóm tắt trong bảng sau: Loại nội dungPhương thức truy cậpCần cấp quyềnCác ứng dụng khác có thể truy cập không?Các tệp bị xoá khi gỡ cài đặt ứng dụng?Tệp dành riêng cho ứng dụngTệp chỉ dành cho ứng dụng của bạnTừ bộ nhớ trong,getFilesDir() hoặc getCacheDir() Từ bộ nhớ ngoài, getExternalFilesDir() hoặc getExternalCacheDir() Không cần thiết cho bộ nhớ trongKhông cần thiết cho bộ nhớ ngoài khi ứng dụng được dùng trên những thiết bị chạy Android 4.4 (API cấp 19) trở lênKhôngCóNội dung đa phương tiệnCác tệp đa phương tiện có thể chia sẻ (hình ảnh, tệp âm thanh, video)API MediaStore READ_EXTERNAL_STORAGE khi truy cập vào tệp của ứng dụng khác trên Android 11 (API cấp 30) trở lênREAD_EXTERNAL_STORAGE hoặc WRITE_EXTERNAL_STORAGE khi truy cập vào tệp của ứng dụng khác trên Android 10 (API cấp 29)Cần có quyền đối với tất cả các tệp trên Android 9 (API cấp 28) trở xuốngCó, mặc dù ứng dụng khác cần quyền READ_EXTERNAL_STORAGE KhôngTài liệu và các tệp khácCác loại nội dung khác có thể chia sẻ, bao gồm cả tệp đã tải xuốngKhung truy cập bộ nhớKhông cóCó, thông qua bộ chọn tệp hệ thốngKhôngLựa chọn ưu tiên về ứng dụngCặp khóa-giá trịThư viện Lựa chọn ưu tiên về JetpackKhông cóKhôngCóCơ sở dữ liệuDữ liệu có cấu trúcThư viện lưu trữ RoomKhông cóKhôngCóGiải pháp bạn chọn phụ thuộc vào nhu cầu cụ thể của bạn: Danh mục vị trí bộ nhớAndroid cung cấp 2 loại vị trí bộ nhớ thực: bộ nhớ trong và bộ nhớ ngoài. Trên hầu hết các thiết bị, bộ nhớ trong nhỏ hơn bộ nhớ ngoài. Tuy nhiên, bộ nhớ trong luôn có sẵn trên mọi thiết bị, do đó, đây là nơi đáng tin cậy hơn để lưu dữ liệu mà ứng dụng của bạn dựa vào. Các ổ đĩa di động, chẳng hạn như thẻ SD, sẽ xuất hiện trong hệ thống tệp như một phần của bộ nhớ ngoài. Android biểu thị các thiết bị này bằng một đường dẫn, chẳng hạn như Các ứng dụng được lưu trữ vào bộ nhớ trong theo mặc định. Tuy nhiên, nếu kích thước APK rất lớn, bạn có thể cho biết lựa chọn ưu tiên trong tệp kê khai của ứng dụng là cài đặt ứng dụng trên bộ nhớ ngoài:
Quyền và quyền truy cập vào bộ nhớ ngoàiAndroid xác định các quyền liên quan đến bộ nhớ sau đây: Trong những phiên bản Android trước đây, các ứng dụng cần khai báo quyền Các phiên bản Android mới dựa vào mục đích của một tệp hơn là vị trí của tệp để xác định khả năng ứng dụng truy cập và ghi vào một tệp nhất định. Cụ thể là nếu ứng dụng của bạn nhắm đến Android 11 (API cấp 30) trở lên, thì quyền Android 11 giới thiệu quyền Bộ nhớ có giới hạnĐể mang lại cho người dùng nhiều quyền kiểm soát hơn đối với tệp của họ và giảm thiểu tình trạng tệp lộn xộn, các ứng dụng nhắm đến Android 10 (API cấp 29) trở lên được cấp quyền truy cập có giới hạn vào bộ nhớ ngoài, hoặc bộ nhớ có giới hạn, theo mặc định. Những ứng dụng như vậy chỉ có quyền truy cập vào thư mục dành riêng cho ứng dụng trong bộ nhớ ngoài, cũng như các loại nội dung đa phương tiện cụ thể mà ứng dụng đó đã tạo. Lưu ý: Nếu ứng dụng của bạn yêu cầu quyền liên quan đến bộ nhớ trong thời gian chạy, thì hộp thoại mà người dùng nhìn thấy sẽ cho biết rằng ứng dụng của bạn đang yêu cầu quyền truy cập rộng vào bộ nhớ ngoài, ngay cả khi bộ nhớ có giới hạn được bật.Hãy dùng bộ nhớ có giới hạn, trừ khi ứng dụng của bạn cần quyền truy cập vào một tệp được lưu trữ bên ngoài thư mục dành riêng cho ứng dụng và bên ngoài thư mục mà Để chuẩn bị ứng dụng của bạn cho bộ nhớ có giới hạn, hãy xem hướng dẫn về các trường hợp sử dụng bộ nhớ và phương pháp hay nhất. Nếu ứng dụng của bạn có trường hợp sử dụng khác không thuộc phạm vi của bộ nhớ có giới hạn, hãy gửi một yêu cầu về tính năng. Bạn có thể tạm thời chọn không sử dụng bộ nhớ có giới hạn. Xem tệp trên thiết bịĐể xem các tệp được lưu trữ trên một thiết bị, hãy dùng Trình khám phá tệp trên thiết bị của Android Studio. |