android之Eclipse如何使用adb
2015-04-25 14:28
363 查看
对于像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帧。
但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帧。
相关文章推荐
- 如何使用eclipse单独调试android系统的app
- 如何使用Eclipse开发Android源码
- 如何使用adb命令查看android中的数据库
- 如何使用eclipse和emulator debug Android source code(JNI以上部分)
- 如何使用ADB命令查看Android手机相关信息参数
- Android的adb ||开发事项及Eclipse使用
- Android学习 ——Android中如何使用WIFI来连接ADB
- Android中如何使用WIFI来连接ADB
- 基于 eclipse 的 android 工程如何使用 jar 文件
- 如何使用Eclipse开发Android源码
- android 在eclipse中如何继续使用以前的ADT
- Java如何操作Android的adb shell 之 我自己在程序中的使用方法
- Android源码学习之如何使用eclipse+NDK
- Android源码学习之如何使用eclipse+NDK
- (转)如何使用Eclipse开发Android源码
- Android源码学习之如何使用eclipse+NDK【一】
- Android源码学习之如何使用eclipse+NDK【二】
- Android源码学习之如何使用eclipse+NDK【三】
- Android源码学习之如何使用eclipse+NDK
- Android中如何使用WIFI来连接ADB