Android 如何制作插件数据APK?

Android 如何制作插件数据APK?,android,Android,我的目标是拥有一个主应用程序和一系列独立的数据包,这些数据包可以作为APK按需提供,并且在Play Store中有各自的条目。这完全取决于用户需要安装哪些以及安装多少。想想语言包、键盘布局、字典之类的东西。应用程序将始终检查安装了哪些数据包,并让用户选择使用哪个数据包 我认为数据apk不会提供任何活动,而是包含一个服务,允许访问某种内容提供者。但这对我来说是全新的,有很多术语让我困惑:这是一个新的概念吗?A.这两个似乎在某种程度上符合我的目的。我是否需要让这项服务(每个数据包一项)在后台运行,等

我的目标是拥有一个主应用程序和一系列独立的数据包,这些数据包可以作为APK按需提供,并且在Play Store中有各自的条目。这完全取决于用户需要安装哪些以及安装多少。想想语言包、键盘布局、字典之类的东西。应用程序将始终检查安装了哪些数据包,并让用户选择使用哪个数据包

我认为数据apk不会提供任何活动,而是包含一个
服务
,允许访问某种
内容提供者
。但这对我来说是全新的,有很多术语让我困惑:这是一个新的概念吗?A.这两个似乎在某种程度上符合我的目的。我是否需要让这项服务(每个数据包一项)在后台运行,等待广播呼叫,或者我可以告诉Android它存在,这样当这个特定的查询来自我的应用程序时,它就会启动它

如果不需要在后台运行任何东西,这将是理想的,甚至可能是在列表阶段。然后选择一个数据文件,相应的APK只在数据被访问时运行。所有数据包都属于同一类(字典),除了提供一些静态元数据,然后提供对原始文件的访问之外,不需要提供任何其他功能

我能找到的所有信息都与“扩展APK”有关,但这与我想要的是正交的

我认为数据APK不会提供任何活动,而是包含一个允许访问某种内容提供者的服务

您不需要
服务
就可以访问
内容提供商

这是听筒吗?提供者

我不知道那句话中的“this”是什么。
ContentProvider
使用清单中的
元素。
服务使用清单中的
元素

我是否需要让这项服务(每个数据包一项)在后台运行,等待广播呼叫,或者我可以告诉Android它存在,这样当这个特定的查询来自我的应用程序时,它就会启动它

以上都没有。您的主应用程序通过
PackageManager
发现这些“数据包”APK的存在。例如,您可以对这些“数据包”APK的应用程序ID/包名称使用标准命名约定,然后使用查找安装了哪些“数据包”APK

从那里,您可以:

  • 访问“数据包”中的资产和资源

  • 生成指向“数据包”APK的
    ContentProvider
    Uri
    ,然后使用
    ContentResolver
    访问APK发布的内容(例如,
    openInputStream()
    query()

  • 使用其他形式的IPC(广播、启动服务、绑定服务)与“数据包”交互

所有数据包都属于同一类(字典),除了提供一些静态元数据,然后提供对原始文件的访问之外,不需要提供任何其他功能


我不知道你为什么要通过Play Store以APK文件的形式分发这些材料。只需从您自己的Web服务器上以某种方便的格式(例如ZIP存档)下载材料即可。

我希望我能增加一笔奖金,因为我正在寻找与您完全相同的东西!最后一个问题:我没有web服务器,也不想为一个免费应用程序付费。我曾经尝试过使用一个朋友的一个,但这是一个无法诊断的错误源,停机时间超出我的控制,每个Android版本(权限)的差异等等。此外,如果数据是APK,用户有一个简单、熟悉的安装和卸载方法,不会在设备上留下死角,这很好。我在其他一些应用程序中见过这种模式,只是不知道它们是如何做到的。