android之Eclipse如何使用adb

对于像AndroidStudio这种更先进的IDE,肯定自带了adb输入窗口。

但ADT是没有的,也就是说使用Eclipse是没有自带输入窗口的!不过,这个adb是Android自带的,只是Eclipse没有输入命令的窗口而已,那么用Eclipse开发的菜鸟们,如何输入adb命令呢?(前提是:你有需求必须使用adb命令)

使用方式:

win+r打开cmd,通过cd命令进入adb所在目录,比如我的目录是:D:\adt-bundle-windows-x86_64-20140702\sdk\platform-tools。然后就可以使用adb命令了。

比如我现在的需求是:要查看listview滑动、fragment切换、复杂动画等等的帧数。

那么,我先打开USB调试,在“GPU呈现模式分析”中,选择“在adb shell dumpsys gfxinfo中”,然后重启应用,快速滑动我的listview或者其他操作 。然后在定位到adb目录下的cmd窗口中输入"adb shell dumpsys gfxinfo com.xxx.xxx"(后面这个com.xxx.xxx等是包名),回车。然后就出现很多信息,滚动鼠标滚轮就找到了


这样,我就可以通过“draw”列找到在Java中创建显示列表部分中,OnDraw()方法占用的时间。

如果超过16(单位是ms,因为手机屏幕都是60Hz,1000ms÷60Hz=16.6666666.....ms,如果一帧超过这个时间,那么就代表存在顿卡现象)

补充:下面的解释参考自:http://www.cnblogs.com/myzh/archive/2013/03/17/2965225.html

Draw:表示在Java中创建显示列表部分中,OnDraw()方法占用的时间。
  Process:表示渲染引擎执行显示列表所花的时间,view越多,时间就越长
  Execute:表示把一帧数据发送到屏幕上排版显示实际花费的时间。其实是实际显示帧数据的后台缓存区与前台缓冲区交换后并将前台缓冲区的内容显示到屏幕上的时间。所以这个时间,一般都很短。
 
  PS:View类包含Surface(变量名mSurface),每个Surface通常对应两个buffer,一个front buffer, 一个back buffer。(4.1之后是3个,一个前,两个后)其中,back buffer就是canvas绘图时对应的bitmap (研究 Android_view_Surface.cpp::lockCanvas)。因此,绘画总是在back buffer上,需要更新时,则将back buffer和front buffer互换。
 
  Draw + Process + Execute = 完整显示一帧 ,这个时间要小于16ms才能保存每秒60帧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值