2012-07-03 35 views
7

Như chúng ta đã biết, chúng tôi có thể sử dụng android.os.SystemProperties.set(String, String)android.os.SystemProperties.get(String, String) để đặt và nhận các giá trị, câu hỏi của tôi là nơi các cửa hàng này <key value> cặp lưu trữ ở đâu? Cơ sở dữ liệu Sqlite hoặc tệp văn bản thuần túy? Nếu vậy, thư mục nào chúng ta có thể tìm thấy chúng?nơi ansroid.os.SystemProperties lưu trữ khóa/giá trị của nó?

+4

Đối với những người đọc câu hỏi và thắc mắc, không có lớp 'android.os.SystemProperties' trong SDK Android. Đây là một phần nội bộ của Android. – CommonsWare

+0

Tôi không nghĩ rằng chúng tôi có thể truy cập vào thư mục đó theo lập trình ... – aProgrammer

+0

hiện tại tôi lưu trữ tài sản riêng của mình trong bảng Cài đặt. Bảo mật, nhưng rất tiếc, nếu tôi mã hóa điện thoại (ics hỗ trợ tính năng này), khi điện thoại khởi động lên, bảng (/data/date/com.android.providers) chưa tồn tại, vì vậy thuộc tính luôn bằng 0 (giá trị mặc định), vì vậy tôi muốn lưu trữ nó trong SystemProperties, bất cứ ai biết nếu cách này sẽ ổn ? – tonykwok

Trả lời

2

Bởi vì Android được dựa trên Linux, không có cách nào để đọc các cài đặt này từ một tệp hoặc cơ sở dữ liệu hoặc một cái gì đó như thế, bởi vì nó không tồn tại.

Trong khi khởi động thiết bị, hạt nhân lưu trữ danh sách biến môi trường vào bộ nhớ.

Mỗi quá trình, được bắt đầu bởi một ứng dụng hoặc của bạn, là nhân bản các biến từ quá trình cha mẹ của mình và có thể xác định các biến của riêng mình.

Trong Linux, bạn có thể truy cập tệp ảo được lưu trữ trong /proc/'pid'/environ nhưng 1. điều này thực sự không được đề xuất và 2. nó không giống như có tệp như vậy trong hệ thống tệp android.

Nếu tôi sai với giả thiết của tôi, xin vui lòng cho tôi biết :)

4

Đối với mỗi tài sản persist.xxx, nó được lưu trữ dưới/dữ liệu/tài sản như một tập tin với tên của tài sản. Đối với các thuộc tính không tồn tại khác, nó được lưu trữ trong bộ nhớ dùng chung.

+1

điều này phải được đánh dấu là câu trả lời được chấp nhận – hqt

+0

nhưng lưu ý rằng, địa điểm này được viết bởi một quy trình khác khi android init. (Tôi đang tìm ra nơi). vì vậy những tệp được sửa đổi này sẽ đặt lại khi khởi động lại thiết bị. – hqt

Các vấn đề liên quan