繁体   English   中英

Android-有效地从远程数据库检索数据

[英]Android - Retrieving data from remote Database efficiently

我正在为医生设计一个Android项目。 首次打开应用程序时,需要医生进行身份验证。

身份验证过程是通过HTTPS连接完成的,使用服务器端的PHP代码将JSON代码返回给应用程序,让其知道连接是否成功,并且在这种情况下,还返回该医生的列表。耐心。 让我展示一段成功登录后将返回的JSON代码:

JSON示例代码

显然,如果登录失败,则“ listOfPatients”属性将不携带任何数据。 服务器生成此JSON代码后,应用程序将使用JSON解析器简单地读取它。

现在想象一下,医生不仅只有3名患者,而且还有100名患者。 每个患者不仅具有3个属性(“年龄”,“电话”,“吸烟者”),而且在需要时适当嵌套了许多属性。 然后,我们将有一个较大(但可能不太复杂)的JSON代码可以读取。

在这个项目中,我正在设计客户端代码(即Android App),而服务器代码是由其他人编写的。 他在问我要如何编写服务器代码,以便于“ Android客户端-服务器”交互并实现最佳,最流畅的用户体验。

我回答了(这是我回答的真正简短的版本; 不必担心服务器端代码的安全性,因为这不是此问题的目的 ):

  1. 创建一个允许进行POSTS查询的login.php 我的应用程序将发送“用户”和“密码”,服务器将其与数据库进行比较。
  2. 然后,服务器将根据医生的登录请求成功生成适当的JSON代码。
  3. Android应用程序将简单地解析此JSON并将其以列表视图的形式显示给用户,依此类推(在此问题中,我向医生显示此数据的方式并不重要)。

我在想两件事:

  1. 知道JSON将包含数百个属性后,此代码的效率如何? 有没有更好的方法来实现此功能? 你会怎么做?
  2. 这些属性的绝大部分值每天都会更改(例如,“ bodyTemperature”或“ bloodPressure”)。 此外,还将有“重要通知”,在这种情况下,患者将在紧急情况下通知医生。 我认为遍历整个过程(“服务器创建JSON ==>客户端读取JSON ==>客户端显示JSON”)效率不高,一分钟又一分钟,一小时又一小时,日复一日。 必须有一个更好的方法(也许是本地存储?然后我必须辨别哪些属性每年仅读取一次(“年龄”),每月一次(“电话”),每天一次(“ bodyTemperature”) )或每30分钟(“ importantNotifications”);然后如何区分每个会话中需要从JSON读取哪些值?)

现在,您可能将使用GSON来解析服务器的响应。 另外,您可能会定义默认值,并告诉服务器不要返回与默认值相等的任何内容,例如Smoker-默认NO (以最小化要传输的数据量)。 您很有可能在ListView或RecyclerView中显示患者。Google有点如何实现惰性加载程序,这意味着您告诉服务器仅返回一些结果,而不是全部结果,并且当用户滚动到结束时,您要求服务器给您更多(如果有)。 另外,在Android上使用缓存是一种将几个不必要的请求保存到服务器的好方法。 您可以定义缓存有效的时间(例如5分钟),如果要重新填充列表,请检查列表是否仍然有效。 但是,您应该始终保留手动刷新选项,SwipeToRefresh是实现此目的的一种简便快捷的方法。 希望其他人可以有更多的东西,因为我对此也很感兴趣。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM