是否可以使用java在android中进行方法调配?我想截取系统方法并记录其参数然后正常处理
答案 0 :(得分:3)
我认为在任何环境中都不能使用Java技术。
也许你可以使用AOP获得类似的结果。
但是你可以做的事情在Android上看起来有限。见Aspect-oriented programming in android。实际上,由于您不会编译目标代码(系统方法),因此编译时编织(在Android上似乎只能使用它)对于这种情况将毫无用处。我想这是答案。
另一个想法......我想你想要始终如一地进行这种记录。但是如果您需要这个来调试问题,可以使用conditional breakpoint in Eclipse。
来完成条件表达式可以包含任意Java代码 包含多个语句,允许断点条件 实现跟踪等功能。例如,条件可以执行 打印语句然后返回硬编码值永不挂起 (“System.out.println(...); return false;”)。
我不知道具体是否适用于Android SDK中的方法。但它确实适用于Java SDK中的方法。例如,这是简单的代码:
System.err.println("foo");
我在PrintStream.print中创建了一个条件断点,如下所示:
System.err.println("hello: " + arg0);
return false;
在程序中调试时控制台输出是这样的:
hello: foo
foo
请注意,由于JDK未使用调试符号进行编译,因此我无法按名称引用方法参数,而是使用arg0..argn
。