可以在运行时从插件接收自定义逻辑的Android活动

时间:2011-07-14 02:56:24

标签: android function-pointers android-intent

我正在尝试编写一个操作相机数据的应用程序。我想使这个框架可扩展,以便其他人可以通过使用适当的签名实现单个方法来编写不同的操作逻辑。我想象的是用户安装我的应用程序加上一些其他人的插件。当我的应用程序启动时,它会查询以查找操作逻辑的实现并将其加载到其中。

因为我想实时处理相机数据,所以在具有意图的应用程序之间传递图像数据可能是行不通的。相反,我想请求将对象发送回我的活动,以便在相机预览监听器中进行设置。

这可能,还是有更好的方法?

1 个答案:

答案 0 :(得分:1)

如果您正在为静态图像执行此操作(捕获图像,选择转换/过滤器​​,显示结果),则可以使用任何一种现有IPC机制(AIDL,网络流等)来执行此操作。

但是对于实时响应,您将无法将一个全新的类与您加载到APK的类加载器中的APK分开打包和分发并使用:类加载限制实际上不允许在类之间共享类数据的APK。我已经看到人们尝试使用DexClassLoader构建他们自己的类加载层次结构但据我所知,没有人(公开)成功地使它在非根硬件上做一些有价值的事情。

更新:以下是有关让DexClassLoader正常工作的一些细节:http://android-developers.blogspot.com/2011/07/custom-class-loading-in-dalvik.html