我希望使用 XML 文件来存储我的 Android 应用程序生成的数据。考虑到这一点,我有两个问题要问社区:
是
XML
在 Android 上存储数据的最佳方式,并且在每秒或不到一秒可能会添加或更改数据的情况下最有效。如果
XML
确实是#1 中描述的场景的最佳选择,我该如何进行设置?
我希望使用 XML 文件来存储我的 Android 应用程序生成的数据。考虑到这一点,我有两个问题要问社区:
是XML
在 Android 上存储数据的最佳方式,并且在每秒或不到一秒可能会添加或更改数据的情况下最有效。
如果XML
确实是#1 中描述的场景的最佳选择,我该如何进行设置?
1.) XML 是在 android 上数据库数据的最佳方式,并且在每秒或不到一秒可能添加或更改数据的情况下最有效。
当然不。
2.) 如果 XML 确实是 #1 中描述的场景的最佳选择,我该如何设置它?
如果您打算仅在本地存储数据,最好的方法是 SQLite,它可以作为每个设备上的本地数据库。
如果您稍后计划将此数据与中央数据库同步,您可以在定期运行的 anAsyncTask
或 aThread
中异步执行此操作,但就性能而言,将每秒写入 XML 文件是一个坏主意。
在每次插入/修改/删除操作时同步远程数据库可能也是一个坏主意,就好像您有很多用户可以折叠远程数据库一样。
我认为最好的方法是(如前所述)拥有一个本地数据库,您可以在其中存储该数据,并在需要时在远程端实现一个 Web 服务,并使用它来定期同步两个数据库。
XML is one of the worst ideas to keep local data in Android.
Most common used is SQLite available on the Android platform, but it all depends on what data and how you want to use.
In many mobile applications you don't need the relational database for one of the following reasons:
What alternatives can be used? Shared preferences - simple key/value storage of primitive objects Data serialization - for your consideration - binary (native java), JSON, parcelable (can be combined with the shared preferences)
For most of my app I'm currently using the binary serialization for "local storage". - It's fast enough (usually much faster than starting the local SQLite engine) - It's extremely easy and quick to implement, especially when you are using it for json/xml downloaded data parsed to POJO objects. All you need to do is just put "extends serializable" and put few lines of code to serialize/deserialize whole structure - You can use those same classes for keeping data locally and communication with backend
Of course - it all depends from the situation - if you want to keep locally log of data from some sensor, or allow others apps to use this data, have to quick filter 1k+ records, or you really like to write few hundreds lines of code SQLite will be the best option for you. But most of mobile applications has no clear reason to use the relational (and trust me - not perfect one) engine.
我会在 XML 上使用 JSON,并且我会高度考虑使用Google 的GSON。您可能想考虑直接写入具有自己结构的数据库并使用事务和集合。你有理由想要通过 JSON/XML 吗?