android monkey编译,monkey 二次开发遇到的问题

最近在研究 monkey 源码,准备进行二次开发或是抠出部分代码用于其他用途,遇到不少坑

最主要是 android 源码调用的问题

一. 调用 android 隐藏类,会报 Unknown Source,比如下面这个代码

public class MonkeyNetworkMonitor extends IIntentReceiver.Stub

我使用 Eclipse 新建的 java 工程,导入 android.jar 和 framwork.jar 后是没报错的,但是重新编译转成二进制 jar 包的时候提示解析错误如下

D:\adt-bundle-windows-x86_64-20140321\sdk\build-tools\19.0.2>dx --dex --output=monkey.jar D:\adt-bun

dle-windows-x86_64-20140321\sdk\build-tools\19.0.2\SmarMonkey.jar

UNEXPECTED TOP-LEVEL EXCEPTION:

com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)

at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)

at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)

at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.jav

a:388)

at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)

at com.android.dx.command.dexer.Main.processClass(Main.java:665)

at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)

at com.android.dx.command.dexer.Main.access$600(Main.java:78)

at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)

at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)

at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)

at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)

at com.android.dx.command.dexer.Main.processOne(Main.java:596)

at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)

at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)

at com.android.dx.command.dexer.Main.run(Main.java:230)

at com.android.dx.command.dexer.Main.main(Main.java:199)

at com.android.dx.command.Main.main(Main.java:103)

...while parsing com/android/commands/monkey/MonkeyNetworkMonitor.class

1 error; aborting

在 eclipse 按 java 工程运行提示

Exception in thread "main" java.lang.UnsatisfiedLinkError: android.os.Binder.init() V

at android.os.Binder.init(Native Method)

at android.os.Binder.(Unknown Source)

at android.content.IIntentReceiver$Stub.(Unknown Source)

at com.android.commands.monkey.MonkeyNetworkMonitor.(MonkeyNetworkMonitor.java:32)

at com.android.commands.monkey.Monkey.(Monkey.java:216)

at com.android.commands.monkey.Monkey.main(Monkey.java:471)

疑问的时,没看见有复制 aidl 文件呀,居然没报错,跟获取 mWm = IWindowManager.Stub.asInterface(ServiceManager.getService("window")); 一样,这个也没报错

重新编译的时候就报错了,不知道为啥

二. 看见 zhangzhao_lenovo 利用 monkey 进行二次开发的 fastmonkey 不需要 root 权限,而且可以匹配不同的 android 版本

很想知道是怎么做到的,求各路大神提供思路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值