Hi all!
我想知道如果希望两个完全不同的 Android 应用程序访问和操作同一个数据库,是否存在一种普遍首选的实现范例值得尊重?是否建议甚至技术上可以这样做?这样的架构会是什么样子?
截至目前,我正在考虑让这两个应用程序实现自己的ContentProvider
s (both ContentProvider
s 将访问同一个数据库,但保证不会同时访问)。我还考虑过构建一个通用的内容提供程序,并让两个应用程序在访问数据库时都使用该内容提供程序。我更喜欢第一个例子,但还没有完全放弃后面的例子。
理由:
我有两个需要访问公共数据库的应用程序。数据库本身存储数据的同时也描述了数据行之间的关系,通常描述一组“表单”,其中表单内容; UI 元素(如文本框、按钮和不同类型的列表)是可定制的。两个应用程序都使用数据库中的“描述数据”在运行时生成相应应用程序 UI 的一部分。
因此,这两个应用程序有两个方面:一是“管理”方面(管理数据结构和数据行之间的关系),二是“通用用户”方面(读取/修改实际数据值)。将这两个方面分离到不同的应用程序中是经过深思熟虑的选择。
NOTE!数据值与数据结构分离,即values存储在一个单独的表中,并且结构在另一个表中描述。这意味着这两个应用程序本质上将修改同一数据库中的两个不同表,并且可以这么说,它们永远不会修改“另一个表”。
任何想法都将不胜感激。该应用程序尚处于规划阶段,因此现在是进行根本性更改的时候了。
Dbm,
是的,它被接受、鼓励并且可以在 Android 上实现。你确实有第三个选择(这无疑会给我带来一些激烈的评论),那就是将 ContentProvider (1) 放入一个完全属于它自己的 APK 中。但是,鉴于您只有 2 种类型,您可以翻转四分之一的 apk 托管。我会选择管理应用程序,但这对我来说是主观的。
如果您要麻烦地创建两个应用程序,那么您就“先验”了解每个应用程序将做什么,以及每个应用程序可以操作什么类型的数据。因此,我会得出一个单一的 CP 接口,并根据您所描述的行为来限制每个应用程序调用的内容。
Frank
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)