[转]Android 录制回放原理

http://www.robotium.cn/archives/995

录制回放的方法大概了解了下,一般实现原理有:
1.基于坐标的实现,monkeyrunner为主要代表.通过截屏获取屏幕,进行缩放解析动作点,monkeyrunner使用的截图方法效率较低,对于root的手机可以使用类似gsnap之类的截图模式进行改进,另外采用的python脚本,对于java开发的android额外增加了语言复杂度.还有不同的手机设备响应时间不固定,导致脚本可执行行也较差.但是可以跨app录制.
2.利用asjectJ来进行录制的.通过对class文件的weaving,来监控类似的 onClick等事件并进行记录,对于有源代码的app较容易实现,编译apk时进行weaving即可.只有apk的模式,需要反汇编出jar,再对jar进行weaving再编译回apk实现,对于无法反编译出jar的,就无法使用了.真针对单一的app.
3.通过getevent获取事件信息解析的.通过解析事件类型,可以监控手机全部操作,也可以跨app.实现形式也是解析成坐标点,是另一种获取坐标点的方式.
4.通过修改事件处理的baidu cafe,拦截所有的事件,添加日志记录.
5.还有看到的资料说JDPA 监听VM stackframe解析的.

posted @ 2015-01-27 11:26  ~乖乖~  Views(627)  Comments(0Edit  收藏  举报