欢迎来到天天文库
浏览记录
ID:59256946
大小:49.50 KB
页数:2页
时间:2020-09-08
《Android的调试打印接口分析.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Android的调试打印接口分析Android输出Log可以通过使用Android.util中的Log类来实现。android.util.Log常用的方法有以下5个:Log.v()Log.d()Log.i()Log.w()以及Log.e()。根据首字母对应VERBOSE、DEBUG、INFO、WARN、ERROR。例如,在执行下面的代码后,会输出Log到LogCatView里:Log.v("tag", "message");Java中原有的打印语句System.out.println()的打印也会被输出到LogCat,它的Tag标签是”System.out”在Eclipse下
2、会通过如下的窗口显示:在机顶盒命令模式下,则需要执行logcat命令在串口输出打印(或者将打印输出到指定文件)。1、使用android.util.log的优点1)功能强大,使用方便Logcat可以根据调试级别输出不同等级的信息(VERBOSE,DEBUG,INFO,WARN,ERROR),而且可以过滤输出指定tag的调试信息;2)系统自动添加调试信息,定位问题快捷程序异常退出、强制关闭、长时间无响应时,系统会自动生成log打印。包括系统基本信息(内存,CPU,进程队列,虚拟内存,垃圾回收等)、时间信息和虚拟机信息(包括进程的,线程的跟踪信息)。2、使用android.util
3、.log的缺点中间件其它模块的打印最后统一由rocme_porting_dprintf()实现,独独android的java输出使用了自己的底层实现(调用Linux的write(intfildes,constvoid*buf,size_tnbyte)),不够统一。3、Android中Java打印在底层改由rocme_porting_dprintf()实现的优点中间件打印最后统一由rocme_porting_dprintf()实现,这样只需修改porting就可以实现打印的开关、打印终端的控制(串口、控制台……)。4、Android中Java打印改由rocme_porting_
4、dprintf()实现的缺点1)Androidlog原有的输出等级控制和输出过滤的功能将丧失,Android内部C和C++实现中用LOGV、LOGD、LOGI等分等级输出的打印将全部会输出,除非rocme_porting_dprintf()也实现分等级输出的功能;2)Android在运行Java应用的时候,会将每个进程的标准输出sdtout等重定向到/dev/log/下的三个文件(main、radio、events)中进行缓存,执行logcat命令后再重定向到串口进行输出。若改用rocme_porting_dprintf(),则需要其实现将每个进程的标准输出sdtout重定向
5、,这样会降低系统效率。也可以修改Android实现,一开始就将每个进程的标准输出重定向到我们想要的终端,但这样Android的logcat功能就没有了。3)Android为了支持logcat及其它我们还未了解的功能,在上百处地方使用了输出重定向。在没有充分了解这些使用意图的前提下,我们直接用rocme_porting_dprintf()替代,存在一定的风险。
此文档下载收益归作者所有