Có một dịch vụ web cung cấp một số dữ liệu mà ứng dụng của tôi sử dụng. Dữ liệu này là khá lớn và chỉ thay đổi rất hiếm khi tôi nghĩ rằng nó sẽ là tốt đẹp nếu ứng dụng có thể lưu nó vào thẻ SD và chỉ cập nhật nó khi cần thiết.Đề xuất cho việc lưu trữ dữ liệu trên Android?
Hiện tại tôi đang lấy dữ liệu (một tệp XML) và phân tích cú pháp nó thành một cây đối tượng bằng SAX. Quá trình này mất (tối đa) 2-3 giây qua WIFI của tôi. Tuy nhiên, việc tuần tự hóa các đối tượng kết quả với SDCard mất nhiều thời gian hơn đáng kể (một phút hoặc hơn) và deserializing nó vẫn mất nhiều thời gian hơn là chỉ tải xuống/phân tích cú pháp ngay từ đầu.
Có ai có bất kỳ đề xuất nào để cải thiện ý tưởng này hoặc thay thế cho việc lưu giữ dữ liệu này (không phải chỉ lưu tệp XML và reparsing mỗi lần)?
CẬP NHẬT: Đây không chỉ là một bộ sưu tập nhỏ. Đồ thị đối tượng thực sự phức tạp và lưu trữ nó thành một cơ sở dữ liệu sẽ dẫn đến hàng chục bảng chỉ với một bản ghi duy nhất trong mỗi bảng.
Tôi đã nghiêm túc xem xét việc lưu trữ tệp XML trực tiếp từ máy chủ (và có thể sẽ) ... nó dường như giống như việc deserializing các đối tượng bất cứ khi nào dữ liệu là cần thiết "nên" nhanh hơn reparsing một tệp XML. –
Tuần tự hóa đối tượng hoạt động vì nó rất chung chung và mã chung có thể chạy rất chậm. Ngoài ra, dung lượng lưu trữ lớn hơn rất nhiều; Tôi nghĩ rằng tôi giảm kích thước tập tin từ 10 + kilobyte với serialization xuống dưới một kilobyte (mà không tính gzipping JSON của tôi). –