[转]Android 录制回放原理

摘要:
http://www.robotium.cn/archives/995大致了解录制和回放的方法。一般实现原则如下:1.基于坐标的实现,以monkeyrunner为代表monkeyrunner所使用的截屏方法效率低下。对于root手机,可以使用gsnap等屏幕截图模式进行改进。此外,Python脚本用于增加用Java开发的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解析的.

免责声明:文章转载自《[转]Android 录制回放原理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇jconsole使用传奇身上装备升级系列脚本,以及UPGRADEITEMEX 脚本的详细参数解释下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android开发高级进阶——多进程间通信

一. 什么是多进程? 多进程就是多个进程的意思,那么什么是进程呢? 当一个应用在开始运行时,系统会为它创建一个进程,一个应用默认只有一个进程,这个进程(主进程)的名称就是应用的包名。 进程的特点: 进程是系统资源和分配的基本单位,而线程是调度的基本单位。 每个进程都有自己独立的资源和内存空间 其它进程不能任意访问当前进程的内存和资源 系统给每个进程分...

Android动态加载jar/dex

前言 在目前的软硬件环境下,Native App与Web App在用户体验上有着明显的优势,但在实际项目中有些会因为业务的频繁变更而频繁的升级客户端,造成较差的用户体验,而这也恰恰是Web App的优势。本文对网上Android动态加载jar的资料进行梳理和实践在这里与大家一起分享,试图改善频繁升级这一弊病。 声明 欢迎转载,但请保留文章原始出处:)...

Android学习笔记六:六大布局

六大界面布局方式包括:线性布局(LinearLayout)、帧布局(FrameLayout)、表格布局(TableLayout)、相对布局(RelativeLayout)、绝对布局(AbsoluteLayout)和网格布局(GridLayout)。 1. LinearLayout线性布局 LinearLayout容器中的组件一个挨一个排列,通过控制and...

Android编程获取手机型号,本机*,sdk版本号及firmware版本号号(即系统版本号号)

Android开发平台中,可通过TelephonyManager 获取本机号码。 TelephonyManager phoneMgr=(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE); txtPhoneNumber.setText(phoneMgr.getLine1Num...

Android 如何优化APP内存

极力推荐Android 开发大总结文章:欢迎收藏程序员Android 力荐 ,Android 开发者需要的必备技能 随机存取存储器(RAM)在任何软件开发环境中都是非常有价值的资源,但对于物理内存经常受到限制的移动操作系统来说,它更有价值。 尽管Android运行时(ART)和Dalvik虚拟机都执行常规垃圾收集,但这并不意味着您可以忽略应用程序分...

Android Touch事件原理加实例分析

       Android中有各种各样的事件,以响应用户的操作。这些事件可以分为按键事件和触屏事件。而Touch事件是触屏事件的基础事件,在进行Android开发时经常会用到,所以非常有必要深入理解它的原理机制。        Android Touch事件原理描述        一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOW...