use*_*161 8 android dexclassloader
对于一个长期的学生项目,我正在尝试使用插件开发模块化应用程序.具体来说,我们会:
我们可以搜索,更新,删除和运行插件的主应用程序.此主应用程序还将存储插件中的一些数据.
从带有代码和GUI组件的HTTP服务器下载的几个插件.
现在,我有一个主应用程序,它能够从HTTP下载.apk文件,并从此.apk文件中定义的类创建一个新实例.我使用这里描述的方式:http://android-developers.blogspot.fr/2011/07/custom-class-loading-in-dalvik.html使用DexClassLoader()方法.
但是我无法看到如何在插件.apk文件中显示存储为资源的布局(或任何其他GUI组件).例如,我试图通过使用插件类名从主应用程序创建一个Intent,但没有成功:
DexClassLoader cl = new DexClassLoader(...);
Class<?> libClass = cl.loadClass("plugin_classname");
Intent intent = new Intent(this.getApplicationContext(), libClass);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为Intent未在主应用程序的AndroidManifest.xml中声明.这也在这个其他线程中描述:Android-使用DexClassLoader加载apk文件
这是否意味着绝对没有办法建立这样的"动态"用户界面?更一般地说,这种类型的插件系统可以在Android上完成吗?我应该尝试其他方法吗?
我曾经尝试过同样的事情,但发现这是不可能的。如果从那时(2011年1月)起基本机制没有改变,那仍然是不可能的。我的博客中用日语和英语描述了技术细节。
博客:动态添加AndroidManifest.xml中未声明的Activity(不可能)
http://darutk-oboegaki.blogspot.jp/2011/01/androidmanifestxml-activity.html
| 归档时间: |
|
| 查看次数: |
1336 次 |
| 最近记录: |