
我正在开发应可扩展的应用程序
我希望用户安装基本应用程序,然后通过安装扩展包(不同的APK)或插件(例如go启动器和主题包或附加控件)来扩展它.
我唯一能找到的就是使用库项目来共享代码,但这不符合我的需求.有人可以解释如何完成吗?
[编辑]
更具体地说,这是我想要做的:
我有一组动画场景,效果和过渡
动画场景是代码和资源的组合
用户可以选择第一场景,第二场景等.
我希望能够添加更多场景,但我不想将它们全部包含在一个APK中
我想让用户下载他选择的场景.
解决方法:
为了建立这种类型的交互,ContentProvIDer将成为您的朋友.根据您希望信息流向的方向,我可以想到两种选择来构建这种类型的系统.
选项1:主应用程序中的单个ContentProvIDer
在您的主应用程序中定义一个ContentProvIDer,这将为其他应用程序创建一个外部接口以将数据读/写到一个公共位置.该提供程序维护对您的应用程序所需的场景数据文件/数据库的访问.
随后的每个插件应用程序都访问主ContentProvIDer(并且如果用户运行插件但尚未安装主应用程序,还会警告用户),并通过将其写入ContentProvIDer来安装其特定内容.这样,每个插件都被设计为充当“安装程序”,这意味着用户必须从Market下载并运行该插件才能安装场景内容.
选项2:每个“插件”应用程序都有其自己的ContentProvIDer
此选项与上述相反.在每个插件应用程序中定义一个具有一致接口的ContentProvIDer,并从主应用程序中获取一个方法,该方法可扫描系统中的新插件(可通过PackageManager进行此 *** 作),并将数据从每个提供程序读取到其主本地存储中.
此处的区别在于用户不必运行每个插件包,因为主应用程序将负责获取数据.但是,定义多个提供程序会更加复杂.例如,您必须确保,即使每个提供程序都具有相同的基本接口,它们也不能具有单一的通用权限,因此您将必须在系统中扫描像您自己的包名称,并根据该信息解析提供程序. .
社论
话虽如此,我觉得我应该提到,我认为这不是向用户提供内容的好方法.我对这个主题的个人感觉是,这种方法会污染用户设备,使应用程序图标无益,并且很难在移动设备上隐藏这种东西.一种更简单,更清洁的方法是将“附加”内容存储在服务器上(S3和SimpleDB之类的AWS服务实际上是免费的),并使用Google的应用内帐单之类的服务让您的用户购买新内容并将其直接下载到单个应用程序中,而不是让它们返回市场并购买更多应用程序.
希望对您有所帮助!
总结以上是内存溢出为你收集整理的将我的Android应用扩展为其他APK全部内容,希望文章能够帮你解决将我的Android应用扩展为其他APK所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)