代码之家  ›  专栏  ›  技术社区  ›  Catalin Morosan

开发电子商务应用程序的良好指南

  •  15
  • Catalin Morosan  · 技术社区  · 14 年前

    我正在Android上开发一个电子商务应用程序,因为这是我的第一个严肃的项目,所以我想提前找出实现这一点的最佳方法。

    应用程序与Web服务(magento-api,不幸的是,这意味着SOAP或XML-rpc)进行通信,并获取电话上的所有内容(产品类别、产品详细信息、用户凭据等)。我认为它应该做懒惰的装载或者类似的事情。

    所以,我想将用户凭证保存在一个自定义对象中,该对象将保存在 SharedPreferences 这样每个活动都可以很容易地访问它。我要用两个 ListView s显示内容和 AsyncTask 获取所需的数据。我应该将所有数据保存在对象的内存中,还是应该使用某种缓存或本地数据库?另外,我计划使用 HashMap 具有 SoftReferences 保存我正在下载的位图。但这不会消耗很多记忆吗?

    所有活动如何能够访问所有这些对象(电子商务购物篮等)?我在考虑用意图传递他们,但这对我来说似乎不合适。sharedreferences可以用于许多对象吗?是否存在并发问题?

    任何指点都会受到赞赏。什么是好的指导方针?我应该去上什么课?你知道我在网上有什么可以结帐的资源吗?

    2 回复  |  直到 14 年前
        1
  •  12
  •   Janusz Daniel Rindt    14 年前

    一个非常详细的问题,我会尽力回答。 我在应用程序中使用了以下方法:

    • 我在共享首选项中保存用户凭据。如果自定义对象是可序列化的,则首选项只能保存这些对象,而从闪存中进行写入和读取需要花费大量时间。因此,我在启动时加载首选项并将它们存储在内存中。

    • 我试图将许多地方需要的所有数据保存在内存中,并保持一致状态,所有其他内存都通过序列化到JSON并传递一个意图来传递,或者我只传递ID,然后从网络中重新获取它。(在本地数据库中兑现确实是有可能的,但是保持它的最新状态的工作现在是非常重要的。)要存储需要很长时间才能从内部内存或网络重新加载并重新解析的对象,我使用自定义的 application 它保存对一些管理缓存的控制器对象的引用。应用程序将一直保存在内存中,直到应用程序关闭。这很方便,但如果不小心的话,可能会导致需要更多的内存。

    • 我的程序下载的位图缓存在两层上。当我第一次想要访问一个图像时,我在我的活动范围内创建了一个图像管理器对象。该对象将尝试在内部映射中查找位图。如果它不在那里,它将尝试从手机内存加载它如果它不在手机内存,它将从网络下载它,存储在我的应用程序的缓存文件夹,并把它放在地图上。这样,只要活动运行,就可以访问位图,并在用户切换到另一个屏幕时清除位图。到现在为止,这对我来说已经足够了。

    最后,开始编程,如果遇到其他问题或错误,请返回,并发布一些更具体的问题。

        2
  •  1
  •   Moss    14 年前

    您需要使用许多有用的技术:ContentProviders、AsyncTasks、位图缓存…。被用在罗曼人的架子上。( http://www.curious-creature.org/2009/01/19/shelves-an-open-source-android-application/ App。这是进入推荐的Android流的一个很好的起点。