簡體   English   中英

文件或數據庫? - 在Android設備上保存對象的最佳實踐

[英]File or Database? - Best Practice to save Objects on Android-Device

我正在java中構建一個android應用程序,我在其中定義了一些像“user”或“playlist”等對象。

如何在設備上保存這些自定義對象以供以后訪問?

    Gson gson = new Gson();
    String json = gson.toJson(user);

我可以通過GSON將對象解析為JSONObject或JSONArray。 現在我有兩個選項來保存字符串:在數據庫或文件中。 我知道如何使用android數據庫類和文件編寫器/閱讀器類,但在性能,可訪問性,尤其是簡單性方面,最佳做法是什么?

數據庫擴展性好,數據庫引擎解決了內存管​​理問題,數據庫具有良好的性能(使用得當),數據庫引擎允許您運行復雜查詢而無需編寫大量Java代碼,數據庫引擎允許您插入或刪除行而不編寫整個文件,Android的小部件本機支持該數據庫。 請記住,您的應用程序可以使用的內存有限,因此如果您的JSON文件變得非常大,您將無法將它們完全加載到內存中。

這真的取決於你的用例

如果您的應用程序數據沒有太大變化 (想想一年一次或兩次使用的會議應用程序),那么您可以使用ContentProvider + CursorAdapters,這將使您的生活更輕松。

如果您的應用程序數據發生了很大變化 (想想Gmail,每天可以彈出數百封電子郵件,或者是新聞Feed,或像Google+這樣的社交網絡應用程序),那么數據庫可能會讓您的生活變得更糟。 在這種情況下,您應該使用第三方緩存系統,如Google Volley或RoboSpice等,它們可以為您處理所有JSON對象的緩存以及出現的所有並發問題等。

內置於Android的SQLite數據庫是緩存大量信息的好方法。 例如,如果您經常從雲中檢索數據,然后計划存儲它,則應使用數據庫。 Dbs是為處理大量數據而構建的,因為它們包含索引功能。

可以在此處找到使用SQLite db緩存JSON數據的示例:將下載的JSON數據緩存到SQLite數據庫 - 這是一個好主意嗎?

使用database 您的JSON可以輕松解析並讀入數據庫。 此外,您可以使用SQL查詢來查找和操作將來需要的數據。 平面文件不允許您具有相同的靈活性。 文件對於其他應用程序非常有用,但對於JSON,分解為對象,表示事物 - 數據庫更有意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM