我可以在独立项目中使用android.os。*库吗?

我正在尝试开发一个外部库(不确定这是否是正确的术语),以便在Android项目中提供预先打包的function。 在Eclipse中工作,我已经将相应的android.jar文件添加到构建路径中,在编辑和编译时,一切都很愉快。

但是,当我使用Android的Handler和Message类(android.os.Handler,android.os.Message)进行线程间通信时,除非我在Android应用程序,模拟器或设备上运行,否则会出现exception。 我无法再以“独立”方式测试我的库,而无需通过正在运行的Android目标。

有没有办法让我包含这两个Android类,仍然可以独立测试我的库? 我是否需要提供Android源代码? 或者它需要某种条件编译挥手吗?

有没有办法让我包含这两个Android类,仍然可以独立测试我的库?

不容易,无论如何我都能想到。

我是否需要提供Android源代码?

我不知道你从哪里获得实现。 但是,更重要的是,这些东西不是为了在操作系统之外单独工作而设计的,只需要抓住一两个Cocoa类并将它们拉入Objective-C库并期望它们在Windows机器上运行。

关闭袖口,对你正在构建的内容一无所知,我会对你在HandlerMessage上引入的任何依赖都更加可插拔。 使用纯Java实现在Android之外进行测试,甚至可能只是一些模拟。 使用真实实现在Android内部进行测试。

您可以尝试lib Robolectric,它实现了android API,因此您可以为您拥有的一些隔离代码创建JUnit测试:

http://robolectric.org/