Java 我可以在独立项目中使用android.os.*库吗?
我正在尝试开发一个外部库(不确定这是否是正确的术语),以在Android项目中提供预先打包的功能。在Eclipse中工作时,我将适当的android.jar文件添加到构建路径中,在编辑和编译时,一切都很顺利 但是,当我使用Android的处理程序和消息类(Android.os.Handler、Android.os.Message)进行线程间通信时,我会遇到异常,除非我在Android应用程序、模拟器或设备上运行。我不能再以“独立”的方式测试我的库,而不必通过运行的Android目标 我有没有办法包括这两个Android类,并且仍然能够独立测试我的库?我需要安卓的源代码吗?或者它需要某种条件编译吗 我有什么办法可以包括在内吗 这两个Android类仍然存在 能够独立测试我的库吗 我想不出有什么办法 我需要Android源代码吗 有空吗 我不知道你还能从哪里得到实现。但是,更重要的是,这些东西并不是为了在操作系统之外独立工作而设计的,就像你只需要抓取一两个Cocoa类并将它们拉到你的Objective-C库中并期望它们在Windows机器上运行一样Java 我可以在独立项目中使用android.os.*库吗?,java,android,android-emulator,android-source,Java,Android,Android Emulator,Android Source,我正在尝试开发一个外部库(不确定这是否是正确的术语),以在Android项目中提供预先打包的功能。在Eclipse中工作时,我将适当的android.jar文件添加到构建路径中,在编辑和编译时,一切都很顺利 但是,当我使用Android的处理程序和消息类(Android.os.Handler、Android.os.Message)进行线程间通信时,我会遇到异常,除非我在Android应用程序、模拟器或设备上运行。我不能再以“独立”的方式测试我的库,而不必通过运行的Android目标 我有没有办法
即兴说,我对您正在构建的内容一无所知,我会让您在
处理程序
和消息
上引入的任何依赖性都更加可插拔。使用纯Java实现在Android之外进行测试,甚至可能只是一些模拟。使用真实的实现在Android内部进行测试。您可以尝试实现Android API的lib Robolectric,以便能够为您拥有的一些独立代码创建JUnit测试:
我想可能会是这样——尽管我不确定如何让库的依赖部分“可插拔”。此时,我正在考虑用一个瘦包装器类继承所讨论的类,然后重写需要使用处理程序和消息的部分。测试代码将直接实例化(纯Java)父类,而Android应用程序将实例化包装器。这听起来合理吗?是的,即兴的,似乎合理。谢谢-我试过了,效果很好!下面是我是如何做到这一点的链接;您可以看到处理程序和消息代码从Deacervice类中删除并移动到Deacon包装类的位置。再次感谢你的帮助!!