2

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

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

有什么方法可以让我包含这两个 Android 类并且仍然能够独立测试我的库吗?我需要有可用的 Android 源吗?或者它是否需要某种条件编译挥手?

4

2 回答 2

4

有什么方法可以让我包含这两个 Android 类并且仍然能够独立测试我的库吗?

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

我需要有可用的 Android 源吗?

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

即兴发挥,对你正在构建的东西一无所知,我会做出你引入的任何依赖,Handler并且Message更加可插拔。使用纯 Java 实现在 Android 之外进行测试,甚至可能只是一些模拟。使用实际实现在 Android 内部进行测试。

于 2010-05-03T00:52:39.977 回答
1

您可以尝试实现 android API 的 lib Robolectric,这样您就可以为您拥有的一些隔离代码创建 JUnit 测试:

http://robolectric.org/

于 2014-02-25T17:22:46.367 回答