Android 复杂Java对象(SQLite、序列化、JSON)和客户机-服务器应用程序体系结构的持久性

Android 复杂Java对象(SQLite、序列化、JSON)和客户机-服务器应用程序体系结构的持久性,android,json,web-services,serialization,persistence,Android,Json,Web Services,Serialization,Persistence,我正在开发一个Android应用程序,它可以从互联网上获取数据。事实上,这个项目是由其他人发起的,现在已经不在这里了, 现在我必须把它变成一个轻客户端应用程序并实现服务器端(Java),我想知道什么是适合我需要的最佳工具/模式 假设我必须处理多个对象模型(表示一个类别的类),这些模型都是从一个类继承的:它们有公共属性(例如名称、附件缩略图…),但也有特定的属性。 因此,您可以理解,我无法管理一个特定的表来映射每个类 但是,我仍然希望能够在Android设备中的某个位置缓存我的对象,以便在脱机模式

我正在开发一个Android应用程序,它可以从互联网上获取数据。事实上,这个项目是由其他人发起的,现在已经不在这里了, 现在我必须把它变成一个轻客户端应用程序并实现服务器端(Java),我想知道什么是适合我需要的最佳工具/模式

假设我必须处理多个对象模型(表示一个类别的类),这些模型都是从一个类继承的:它们有公共属性(例如名称、附件缩略图…),但也有特定的属性。 因此,您可以理解,我无法管理一个特定的表来映射每个类

但是,我仍然希望能够在Android设备中的某个位置缓存我的对象,以便在脱机模式下工作时填充应用程序的视图

目前,前一位开发人员使用的解决方案是将数据作为序列化对象直接存储到SQLIite数据库的文本字段中。 这在服务器端应该是可以的,但我已经了解到,通常的Java序列化在Android平台上非常慢,尽管现在还不太明显,因为我处理了大约50个对象,但我正在为未来寻找更高性能的替代方案

我遇到了JSON解决方案,它可以轻松地处理复杂的结构,Jackson库以其简化的POJO对象数据绑定和众所周知的性能似乎非常有趣。 但是,我应该如何存储Json对象呢? 是否可以在SQlite表的文本字段中保留json字符串? 还是应该将它们存储为每个对象的.json文件? 哪一个更有效地检索以后的大量数据

另外,我认为JSON将是Android客户端应用程序和我的服务器之间的一种非常好的交换格式,我的服务器负责处理来自internet第三方API的信息,并使用WebService公开这些数据。(而不是尝试实施类似RMI的解决方案) 在Android上使用常用的ApacheHttpClient是否足以与服务器通信

对于那些成功开发客户机-服务器应用程序的人来说(我觉得这很常见),这是Android的好方法吗? 在我看来,在移动平台上,你不能真正使用你学到的方法来开发更经典的J2EE应用程序等等。。。 任何建议都将不胜感激,因为我是一名学生和Android初学者,非常想提高她的移动开发技能


谢谢:)

这是可以讨论的,所以so可能不是最好的提问地点。一般来说,在宣布某事太慢(或太快)之前,测量、比较并挑选最适合你的。是的,您可以将JSON保存在数据库中,这通常比在FS上保存单独的文件要快。但是,再一次,基准和比较


顺便说一句,大多数J2EE“方法”(模式)对于任何平台来说都是多余的,更不用说移动了。

第一个表用于具有基本字段(id、名称、附件缩略图…)的对象,第二个表用于附加字段定义(某些id、名称和/或类型),第三个表用于从第二个字段链接对象和值(id、第一个表id、第二个表id、值作为文本) ?