优雅的类加载和更新系统

时间:2017-05-16 11:38:01

标签: android android-studio updates auto-update android-runtime

在我目前正在进行的项目的当前状态中,我有一个经典的Android Studio项目,上面有一个经典的应用程序。

出于某些原因(它是一个嵌入式应用),我想在应用中添加一个自动更新功能,它不需要退出它(我必须留在应用内或另一个应用程序,永远不会显示基础Android系统)。

我有两个解决方案可以做到这一点:

  • 创建另一个"更新程序"使用包管理器命令更新应用程序的应用程序。它需要一个有根设备才能工作,但它可以满足我的需求:当有更新时,主应用程序自行关闭并打开更新主应用程序并启动它的更新程序应用程序
  • 将应用程序的实际代码存储到外部存储并将APK转换为下载并运行应用程序的引导程序

后一种解决方案更好,因为它不需要有根设备。

这就是为什么我想写一个优雅的系统来实现这个目标;应用程序的开发不应该因此而瘫痪(例如,我不必在每次构建时上传新课程,我不需要做额外的伏都教工作来为清单添加活动或权限。 ..)。

我想过使用Android Studio的构建变体:

  • 调试变体:像往常一样构建应用程序,不要使用bootstraper
  • 发布变体:不要包含APK中的所有类,构建包含它们的外部JAR并在启动器意图中使用boostraper

我看到了如何从外部存储加载外部类,但我无法找到有关如何外部化整个应用程序代码的任何内容,包括活动。我觉得我们不能。

这样的系统是否有可能发展?

0 个答案:

没有答案