我编写了一个小的java代理,它在类加载时执行字节码注入,它通过添加vm参数-javaagent path-to-agent-jar在独立的Java应用程序上正常工作。
我的要求是应用相同的java代理来检测android应用程序代码。 我必须在Android应用程序中进行一些字节码注入,同时通过Junit测试代码。
我的问题是,在dalvik vm中,检测机制的工作原理与普通java vm的工作方式相同吗?
如果是,那么我想知道为什么它在我的Junit测试用例中不起作用。请注意,我的测试类从android Junit框架扩展了ActivityInstrumentationTestCase2。
如果不是,我可以通过什么方式实现这一目标?如何在运行时在dex文件中注入代码?
答案 0 :(得分:1)
我使用Aspectj成功完成了该要求。 如果有人最终遇到类似的问题,你可以按照以下精彩的博客来帮助我。
https://deansserver.co.uk/~dean/2011/07/18/aspect-oriented-android-development-tool-integration/
答案 1 :(得分:0)
没有
javaagent是Oracle JVM 1.5中引入的技术。它不存在于dalvik。
但您可以将工具更改为离线,请尝试ASM / ASMDEX(http://asm.ow2.org / http://asm.ow2.org/asmdex-index.html)。