关于使用Logcat辅助理解复杂的类
2013-10-03 11:24
148 查看
在读Android源码的过程中,常常会碰到一些类中使用了极多方法的情况。让人束手无策,甚至沮丧。
虽然读类的过程中都是先从构造方法读起,然后去读一个个的调用。但是对于一些有几百个方法的类,阅读起来时还是很痛苦,一个方法里往往关联了N多个变量,其它地方引入的类,还有方法嵌套地调用。后来一直想找个工具,希望能够自动生成uml时序图,这样看着容易理解一些。起初想试试Rational Rose,结果安装在64位系统上Java逆向工程用不了。后来换java call trace之类的工具,下下来居然是些jar包,感觉有些麻烦。又试了试Visual
Paradigm,这个工具还不错,可以直接把方法中调用到的类直接转换为时序图,但是仍然不好用。
思来想去,其实有个最简单的方法被自己忽略了,那就是Logcat。平时经常使用logcat看错误日志,却没有在代码中使用Log.i()的习惯。有时候一个方法不太理解的时候,多打印一些日志信息,看看值,再结合代码上下文的分析要比单纯看代码要好很多。还有一个Debug单点调试也不要忘了。
虽然读类的过程中都是先从构造方法读起,然后去读一个个的调用。但是对于一些有几百个方法的类,阅读起来时还是很痛苦,一个方法里往往关联了N多个变量,其它地方引入的类,还有方法嵌套地调用。后来一直想找个工具,希望能够自动生成uml时序图,这样看着容易理解一些。起初想试试Rational Rose,结果安装在64位系统上Java逆向工程用不了。后来换java call trace之类的工具,下下来居然是些jar包,感觉有些麻烦。又试了试Visual
Paradigm,这个工具还不错,可以直接把方法中调用到的类直接转换为时序图,但是仍然不好用。
思来想去,其实有个最简单的方法被自己忽略了,那就是Logcat。平时经常使用logcat看错误日志,却没有在代码中使用Log.i()的习惯。有时候一个方法不太理解的时候,多打印一些日志信息,看看值,再结合代码上下文的分析要比单纯看代码要好很多。还有一个Debug单点调试也不要忘了。
相关文章推荐
- Android中关于JNI 的学习(五)在C文件中使用LogCat
- 关于缓存使用的一点理解
- 关于静态时序约束的理解以及TimeQuest的约束命令使用
- IOS初学,关于内存的使用和释放,以及对其方法的理解
- 关于递归的理解及递归表达式复杂度分析(以求解最大公约数为例)
- 关于IOS的Autolayout特性的理解以及使用
- Android关于TextureView理解及基本使用
- 深入理解Java特性:关于继承的使用思考
- 自己关于指针在函数中使用的理解和总结
- 关于springMVC中使用session的理解
- 【条件渲染】关于在<template>上使用v-if分类的理解
- 关于IOS的Autolayout特性的理解以及使用
- 关于xshell5的使用和理解
- 理解与使用Promise完成复杂异步处理流程
- 关于Spring事务<tx:annotation-driven/>的理解(Controller可以使用@Transactional)
- 关于js中单引号(')和双引号(")的使用以及转义的理解
- NHibernate中关于Inverse的理解和使用
- 关于Spring事务<tx:annotation-driven/>的理解(Controller可以使用@Transactional)
- 关于java枚举使用和理解。
- 关于AO和AE中使用小问题(新手理解)