【问题标题】:Reusing code between Android and Google App Engine在 Android 和 Google App Engine 之间重用代码
【发布时间】:2014-10-24 02:44:04
【问题描述】:
我是 GAE 的新手,但已经在 Android 上工作了一段时间。我想编写一些基本上解析xml文件并将其存储在后端数据库中的代码。然后根据查询将部分数据发送到前端android应用。
android 应用程序会将数据存储在本地数据库中。在这里,如果可能的话,我想重用来自 GAE 和 Android 应用程序的代码。所以,我的问题是:
- GAE 上的数据库有哪些选择?
- 使用哪种方法来促进后端和前端的代码重用?
- 有没有可以复用的xml解析器?
谢谢,
拉贾特
【问题讨论】:
标签:
android
database
google-app-engine
google-cloud-endpoints
【解决方案1】:
在 GAE 中,基本上您有两个非排他性的选择:Google Cloud SQL 和 Datastore。
哪个更好以及使用哪个取决于您的应用程序。 SQL server 是一个经典的 mySQL 基础数据库,而 Datastore 基于不同的非关系结构,您应该花一些时间来熟悉它。
一般来说,您可以在这两种情况下重用 Java 代码,但是在许多情况下,您会与不同的服务(例如本地 android sql 服务而不是 google 数据存储)进行交互,因此在这种情况下,您必须调整您的类。在这些情况下,我可以建议重用概念而不是代码,让我解释一下:假设您必须管理图像。你在 android 中拍照,你必须将一些信息与它相关联,为此你可以定义一个自定义数据模型(比如说一个 AppImage 类)。 AppImage 将仅包含数据和基本方法。然后您可以例如创建一个管理 AppImages (ImagesManager) 的类(实现上传、本地存储等)。在服务器端,您将拥有类似的结构,但持久性技术可能会有所不同。因此,您可以再次创建类似的对象 AppImage 以及管理它们的类 (ImagesManager)。代码中的不同之处在于存储信息的 API 调用,在这些情况下,您没有选择,您必须编写自定义代码,但是高级结构保持不变,当事情开始变得复杂时,这可能会有所帮助。
上面的评论也适用于 xml 解析问题。 (What libraries are there for processing XML on Google App Engine/Java Servlet)