【问题标题】:android app adding content during runtimeandroid应用在运行时添加内容
【发布时间】:2012-11-30 09:52:00
【问题描述】:

您好,我正在尝试构建一个包含“其他应用程序”的应用程序
例如,我的应用程序将包含不同客户的不同应用程序。 现在我想让 1 个客户可以选择只下载他的部分,但他仍然必须使用我的主应用程序。 (换句话说,我不想引用另一个 APK,因为这样他就可以在不使用我的情况下启动他的应用程序(我认为))
并且下载选项应该在运行时,否则他必须一次性下载所有内容。
我曾考虑使用 jar 文件作为库文件,但到目前为止我发现您必须在 Eclipse 中添加它们(否则找不到它们) 我还考虑过使用其中的 jar 文件构建应用程序,然后在编译应用程序时将它们排除在外。然后我的客户可以在之后下载这些文件。但我猜这会导致引用错误?

所以问题是;

  1. 有可能吗?
  2. 怎么办?

主要想法是我不想制作一个巨大的应用程序,因为我的客户只会使用他的一部分。

提前致谢

【问题讨论】:

    标签: android runtime add


    【解决方案1】:

    可以在android中实现,一些大平台的应用可以让第三方开发者为其开发插件。主要思想是尝试创建自己的 DexClassLoader 来替换默认的,自定义的 DexClassLoader 可以从 apkfile 加载类。

    请尝试通过this article查看详细信息。

    this question 相同。

    【讨论】:

    • 确实是非常有趣的技术。感谢您的链接(并祝贺 Fred Chung 关于该主题的精彩文章)
    • @faylon 感谢您提供的遮阳篷,我会考虑的,但乍一看,我担心这对我的技能水平来说有点过分了。
    • @ItisI。不是很难。与java中的ClassLoader机制相同。
    • 我从未尝试过 DexClassLoader。如果它真的有效,我认为它应该是非常糟糕的。作为 Android 安全模型,用户应该明确允许每个应用程序安装在设备上,并且用户会被告知应用程序需要什么权限。如果 DexClassLoader 工作,黑客可以构建一个具有基本权限要求的简单应用程序,然后静默下载其他有害 apk,并从下载的 apk 中执行任何操作。这太糟糕了!看起来像 Android 的一个很大的安全漏洞。
    • @EvanLi 。不,您不能在新的 apk 中授予其他权限。因为它没有在您的设备中安装和注册。
    【解决方案2】:

    这似乎是一个困难的话题。我只能给你一点。

    由于您不想制作大型应用,因此您必须将客户端构建为单独的 APK。但是,如果您没有在清单中将 CLIENT 的活动定义为 MAIN 和 DEFAULT,则在安装 CLIENT 应用程序后,用户无法从系统菜单(启动器)中找到 CLIENT 应用程序。您可以为 CLIENT 应用程序的活动定义一个私有意图名称,这样,只有您的主应用程序可以启动 CLIENT 应用程序的活动。

    【讨论】:

    • 如果我理解正确;只要我不将客户端应用程序的活动命名为 MAIN 和 Default,它就不会在 android 菜单中找到。但是如果不允许“从未知来源安装”,它仍然可以安装吗?
    • 该 apk 应该与普通 apk 完全相同,只是在 android 菜单中找不到它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多