小编sfi*_*nja的帖子

通过服务替代方案的插件架构

我正在寻找一种实现基于插件的 Android 应用程序的方法,并发现了这篇很棒的文章,描述了基于服务的插件方法。

我尝试这种基于服务的插件架构的目标是:

  1. 避免将附加模块(“插件”)静态链接到核心应用程序。
  2. 避免分发核心应用程序或库的源代码。
  3. 可以选择通过 Proguard 传递核心应用程序/库,以保护关键部分。

基于服务的方法很好地满足了目标 #1,但是当涉及目标 #2 和 #3 时,我发现自己陷入了无限循环(即“追我的尾巴”):

本文中实现的基于服务的插件演示效果很好,因为...它只返回内置类型(请参阅 参考资料IBinaryOp.aidl)。

但在我的实际应用程序中,我需要返回我自己的类,其中一些很复杂并且包含“商业秘密”。

这是一种先有鸡还是先有蛋的情况吗?无论我做什么,我总是必须暴露一些核心类?

或者这个问题可以解决吗?

我考虑解决这个问题的方法之一(真的是解决方法吗?)是使用我的类通过服务返回的接口,因此:

  1. 插件(由其他人编写)仍然需要了解我的命名空间,因此在构建时需要我的库项目的 JAR ,但它无法访问实现源代码。
  2. 我也许可以将当前的整体库项目分为 2 个 JAR:一个仅包含接口,另一个甚至没有作为 JAR 发布,而是作为我的应用程序 APK 的一部分。

我的思考方向正确吗?或者你发现一些误解吗?

有更好的方法来解决这个问题吗?

是否有演示项目已经成功解决了这一挑战(即上述所有 3 个目标)并可以用作参考或教程?

java android dependency-injection inversion-of-control android-service

3
推荐指数
1
解决办法
457
查看次数

元素"http:conduit"的前缀"http"没有约束 - 这是什么意思?

我试图根据这个官方的Apache CXF指南为我的基于CXF的客户端配置SSL支持,但Eclipse标记了带有红色下划线和非常短的错误描述的标记:http:conduit

  The prefix "http" for element "http:conduit" is not bound
Run Code Online (Sandbox Code Playgroud)

我在网上搜索了关于此消息的含义以及如何修复它的其他线索,但我还没有找到任何可以解释为什么我收到此错误的信息.

知道元素"http:conduit"的前缀"http"是不是绑定意味着什么?

绑定到什么?

为什么只有前缀"http"而不是"管道"?

java ssl web-services cxf applicationcontext

3
推荐指数
1
解决办法
2700
查看次数

如何列出Android设备中的所有服务

我正在寻找一种可靠的方式来编程查找和列出所有 Android设备可用服务(运行和未运行).

我在API中找到的最接近的东西是getRunningServices(),ActivityManager但即使是大胆标记:

注意:此方法仅用于调试或实现服务管理类型用户界面.

它无论如何都只列出正在运行的服务.

有没有可靠的方法来查找给定Android设备中的所有可用服务?

(理想情况下,如果存在此类方法,则应与API/SDK 8兼容)

android android-service

1
推荐指数
1
解决办法
3065
查看次数