2011-09-09 38 views
6

Một số câu hỏi riêng biệt, nhưng có liên quan liên quan đến vị trí lưu trữ nội dung đã tải xuống trong ứng dụng của tôi.Android - Nơi lưu trữ nội dung đã tải xuống, bộ nhớ trong và bộ nhớ ngoài?

Tôi có một ứng dụng tải xuống nội dung từ máy chủ trung tâm. Nội dung này đôi khi là nội dung cao cấp, hoặc ít nhất là nội dung mà nhà xuất bản không muốn nó được phân phối tự do. Tôi hiểu rằng bộ nhớ “bên ngoài” có thể truy cập dễ dàng trong khi bộ nhớ “bên trong” được bảo vệ, trừ khi điện thoại được root.

Nếu ứng dụng được cài đặt trên SDCARD (như của tôi được cấu hình là) thì lưu trữ "nội bộ" cũng có trên SDCARD không? Vì vậy, nếu SDCARD của tôi đã cài đặt các lượt tải xuống ứng dụng, giả sử, 100 MB nội dung vào bộ nhớ trong thì nó thực sự kết thúc trên SDCARD, hay nó kết thúc trong bộ nhớ vật lý trên thiết bị của thiết bị?

Nếu ứng dụng được cài đặt trên SDCARD và bộ nhớ “nội bộ” có nội dung tải xuống nằm trên SDCARD thì lưu trữ trên thực tế có định dạng mở hoặc được mã hóa không? Tôi dường như nhớ rằng một ứng dụng được lưu trữ trên một SDCARD được mã hóa. Điều này cũng áp dụng cho bộ nhớ “nội bộ”?

(Deleted câu hỏi về việc lưu trữ tập tin trong một thư mục duy nhất như Context.getDir() ngụ ý rằng một hệ thống thư mục có thể được tạo ra và duy trì trong bộ nhớ trong)

Có một cách tiếp cận tốt hơn?

Trả lời

4

Đã làm một loạt các thử nghiệm và đi đến kết luận sau đây với Android 2.2 trên Motorola Droid 2:

  • Khi một ứng dụng được cài đặt/chuyển đến sdcard sau đó nó được lưu trữ dưới dạng tập tin .asec trong thư mục ẩn /.android_secure trên SDCARD. Đây là một tập tin được mã hóa và nén.
  • Khi ứng dụng tạo tệp dữ liệu trong "bộ nhớ trong", chúng được lưu trữ trong bộ nhớ trong của thiết bị, không trên SDCARD.
  • Hộp thoại Cài đặt/Quản lý chi tiết ứng dụng cho ứng dụng có giá trị cho "Dữ liệu" - đây là lượng dữ liệu mà ứng dụng đang sử dụng trong bộ nhớ trong, bộ nhớ trong không nằm trên SDCARD
  • bộ nhớ ngoài kết thúc trên SDACRD trong thư mục/Android/data
  • Xóa dữ liệu từ hộp thoại Cài đặt/Quản lý ứng dụng thực sự xóa mọi thứ, điều đó có nghĩa là ứng dụng đã cài đặt cần có đủ kiến ​​thức/logic để xử lý "không có dữ liệu" tình hình.

Ứng dụng của tôi là ứng dụng nội dung tải xuống. Có gì tất cả điều này có nghĩa là đối với tôi đó là:

  • Có rất ít giá trị thực sự trong việc lưu trữ ứng dụng nhỏ của tôi trên SDCard cho rằng phần lớn các lưu trữ nó sẽ tiêu thụ trên điện thoại sẽ được trong bộ nhớ trong của thiết bị. Ngoại trừ tất nhiên là nó luôn luôn tốt để cho phép ứng dụng cài đặt trên SDCARD.
  • Gói cài đặt cần có khả năng khôi phục nội dung đã tải xuống của người dùng nếu nội dung đó bị người dùng xóa.
  • Khái niệm lưu trữ unique installation id trong bộ nhớ trong hoạt động tốt cho đến khi người dùng xóa dữ liệu của ứng dụng và do đó làm cho id cài đặt mới được tính toán.Vì vậy, để có thể nhớ nội dung nào đã được tải xuống thiết bị yêu cầu tài khoản người dùng trên máy chủ trung tâm mà người dùng tạo/đăng nhập vào bất cứ khi nào ứng dụng bắt đầu từ đầu.
Các vấn đề liên quan