Android dump的使用2
来源:互联网 发布:1hhhh.com域名升级 编辑:程序博客网 时间:2024/05/19 13:09
由于dumpsys命令只能dump出有限的几个service,例如SurfaceFlinger,window
那么其他类中的dump函数如何使用呢
以WindowManagerService相关的WindowState和WindowAnimator为例
PrintWriter pw = new PrintWriter(System.out, true);WindowState win = windows.get(i);WindowStateAnimator winAnimator = null;win.dump(pw, "××××", true);winAnimator = win.mWinAnimator;winAnimator.dump(pw, "×××× ", true);
dump函数一般需要3个参数,第一个PrintWriter,通过System.out构造就可以将log输出到logcat中
第二个参数是一个前缀,随便写成什么字符串都可以,方便你阅读
第三个参数是dumpall,true/false。设置dump函数中是否输出全部信息
这个变量可以到dump函数中去修改
dump的好处是如果程序挂掉,你想看到挂掉之前的一些变量值,在不能debug的情况下,就非常方便了
其他类中的dump的使用当然就都是类似了,是不是还很简单。
但是我这坑爹的脑袋竟然搞了好久才发现^ ^
再拿ActivityManagerService举个例子
ActivityManagerService中有如下函数
@Override
protected void dump(FileDescriptor fd, PrintWriter pw, String[] args)
那么这个函数如何使用呢
在你需要dump的代码处加入如下代码即可
String dumpFilePath = "/sdcard/dumpfile.txt"; File dumpFile = null; FileOutputStream osDump = null; try { dumpFile = new File(dumpFilePath); osDump = new FileOutputStream(dumpFilePath); FileDescriptor fdout = osDump.getFD(); PrintWriter pw = new PrintWriter(System.out, true); String [] args = {"-a", "a"}; dump(fdout, pw, args); // aaaaaaaaaaaaaaaaaaaa wang.yang args [1] = "p"; dump(fdout, pw, args); osDump.close(); } catch (FileNotFoundException fnfe) { } catch (IOException ioe) { } finally { }
0 0
- Android dump的使用2
- Android dump的使用1
- mysql dump的使用
- dump文件的使用
- 如何使用android dump 函数
- linux 下dump的使用
- 使用systemstate dump的方法
- class-dump工具的使用
- 使用DUMP分析聚簇表的使用
- Android dump .so 文件crash log(不太明白 转载过来以便需要的时候使用)
- Android下生成core dump的方法
- android的崩溃报告(crash dump)
- android的崩溃报告(crash dump)
- 【android】解析dump的几种方式
- 程序崩溃 dump 文件 *.kdmp的使用
- 程序崩溃 dump 文件 *.kdmp的使用
- WinDbg 和 Dump 文件的使用
- WinDbg 和 Dump 文件的使用
- 产品规划
- ICIP
- MySQL远程访问权限,允许远程连接的开启
- servlet作用及配置
- JavaScript获取路径
- Android dump的使用2
- 权重矩阵
- 《Java程序员面试笔试宝典》之为什么Java中有些接口没有任何方法
- Swing
- 【内存类操作】浅谈内存拷贝异常
- 取石子游戏2
- 移植Realtek USB无线网卡到 mini2440
- C#基础知识概念
- 避免Spring产生两个Context的做法