2014-01-26 125 views
1

我想開發一個需要一些數據持久性的應用程序。出於某種原因,我不想使用數據庫。我想要一些類似於共享偏好的東西。但只有一個更多的要求:Android數據持久性

  • 我希望我的數據可以持久安裝。這意味着即使應用程序卸載數據仍然安全地存儲在Android系統中。

有什麼建議嗎?謝謝

P.S .:在iOS中,我使用keychain.It完美的作品。

+0

你爲什麼要這麼做?數據的目的是什麼應用程序已被卸載? – Simon

回答

1

我能想到的確保在卸載時不移除的唯一解決方案是在外部存儲器的某處寫入文件。然而,這是(a)不安全的(b)容易出現其他問題,例如用戶刪除它。

如果您擔心在升級上存留數據,那麼使用帶有ContentProvider的數據庫可以很容易地實現此目的。共享首選項僅適用於少量小值/原語。

如果它適合您在卸載/重新安裝時保留數據的任何需要,還可以使用Web服務遠程存儲某些內容。

大多數像你這樣的問題,表示有任何問題其他地方在您的應用程序架構的方式,如果你在這裏提供更多詳細信息的人可以給你一個更好的解決方案

+0

謝謝你的回覆。我同意將數據寫入外部存儲並不安全。其實我想保存我生成的唯一身份證。是否有類似Android中的iOS鑰匙串,我可以保存我的數據,甚至可以刪除我的應用程序。 –

+0

我不知道其中一個(但那不是一個明確的否)。根據你剛纔所說的,我會像詢問用戶的電話號碼一樣,然後使用它的散列作爲UUID。這種方式,當他們重新安裝你會再次得到哈希沒有任何存儲,你可以使用本地數據庫的其他一切 –

+0

或者,通過一些可重複的方法創建一個哈希值,將它和uuid存儲在Web服務器上,以及何時他們重新安裝重新創建哈希,並轉到網絡服務,以檢查您是否已經有一個uuid在創建之前 –

0

我能想到的唯一方法就是將數據與雲同步,並在用戶重新安裝應用程序時進行恢復。您可能想要考慮利用BackupManager