3

我只是想知道如何解决以下情况:

我想为我的女儿写一个非常简单的应用程序。该应用程序在活动中显示 4 个彩色字段,并通过语音输出说“点击绿色”之类的内容。然后她应该点击绿色区域以获得积极的反馈。到目前为止,很容易。

然后我想,如果应用程序随着年龄的增长也能“增长”,那可能会很好。也许以后我想要一个游戏模式,我可以在其中显示动物、数字、车辆等,所以如果我能有类似“形状集”之类的东西会很好——基本上是一组图像以及应用程序的描述应该说每个图像。也很简单——您只需要一组图像和一个描述图像的 XML 文件。


我希望以后能够将这些“形状集”作为附加 APK 安装,这样我就不必每次都修改应用程序。我想安装 APK,以便将内容添加到 SD 卡上的特定子文件夹中,我的应用程序将在其中枚举可用的“形状集”。

如果我曾经将应用程序发布到 Play 商店,其他人也应该能够下载我创建的“形状集”(尽管不需要用户贡献)。

那可能吗?如果是这样,我该怎么做才能让 Android 操作系统将 APK 的内容“复制”到 SD 卡上的特定文件夹(比如说“/TapGame/Shape Sets/Animals”)?或者有没有另一种方式来实现我没有想到的我想要的东西?


当我写这个问题时,我想到了“插件架构”这个词。使用该术语搜索我发现了这个问题:Extended my android app in different APK

它似乎为我的问题提供了解决方案 - 我将对此进行进一步调查,但请随时提出其他可能的解决方案!

4

2 回答 2

1

那可能吗?

嗯,当然。

如果是这样,我该怎么做才能让 Android 操作系统将 APK 的内容“复制”到 SD 卡上的特定文件夹(比如说“/TapGame/Shape Sets/Animals”)?

Android 不会做任何事情。必须这样做。您必须检测是否安装了“形状集”APK(或者观看安装包的广播,扫描所有已安装的应用程序以查找似乎是“形状集”的应用程序等)。然后你必须安排将任何你想要的东西复制到你想要的任何地方,或者通过:

  • 要求“形状集”应用程序执行此操作(例如,向 some 发送命令IntentService),或

  • 使用createPackageContext()并尝试从您的主应用程序进行复制

或者有没有另一种方式来实现我没有想到的我想要的东西?

嗯,只需使用您的应用程序从知名位置自行下载的 ZIP 文件。这对应于 Dave Smith对您刚刚在编辑中链接到的问题的回答的最后一段。

或者,只需更新主应用程序。我不太确定你认为你节省了多少努力。

或者,只是保持内容在线,使用 Web 服务指示可用的“形状集”并根据需要下载它们(使用可选缓存)。

于 2013-07-09T15:53:15.563 回答
0

有趣的问题。如果您真的想使用插件,那么OSGi可能是要走的路,但要了解和使用它需要做很多工作,而且在这种情况下似乎有点矫枉过正。

我不知道您的形状是如何定义的,但它们可能每个都定义在一个单独的文件集中,提供形状(可能是 png 或 jpg?)以及将用作命令的音频文件这个形状。如果存储这些文件集的文件夹是固定的(TapGame/Shape Sets/...),则应用程序可以在每次启动时扫描文件夹并相应地生成视图(在这种情况下,活动不能完全构建在XML 文件,但必须部分以编程方式完成)。

Plugin-Aps 将相当容易。它们是一个包含文件集(jpg 和 mp3 或其他)的 apk。一旦他们将所有这些文件存入指定的文件夹(他们可能会在之前检查这些文件是否存在)就开始了,然后apk可以再次关闭并被卸载。

在下次启动时,Tap Game App 会找到新符号并将它们包含到游戏中。

这对我来说似乎很直接。另一种方法是将形状和音频文件实际存储在互联网上,并在每次启动应用程序时检查形状和音频文件的数量是否已更改并创建新的本地副本。这意味着没有下载 apk ......可能是解决问题的更常用方法。

我很想听听你的看法,这似乎是一种不同于常规的方法,这总是很酷。

于 2013-07-09T15:54:28.277 回答