前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Android编程权威指南》之Android应用的调试篇

《Android编程权威指南》之Android应用的调试篇

作者头像
用户8928967
发布2021-09-22 10:26:20
7820
发布2021-09-22 10:26:20
举报
文章被收录于专栏:用户8928967的专栏

处理应用的bug,这是每个程序员的基本功,实际项目中天天都有各式各样的bug,因此学会如何使用Logcat、Android Lint以及Android Studio内置的调试器就非常有必要啦!

异常与栈跟踪

写代码嘛,一个不注意就把程序写奔啦,不用担心,展开Logcat工具窗口。上下滑动LogCat窗口滚动条,就能看到整片红色的异常或错误信息。若看不到,可尝试选择LogCat的No Filters过滤器项。还有信息太多的情况下,可以调整Log Level为Error,让系统只输出严重问题日志。或者直接搜索 “FATAL EXCEPTION”,直接定位到崩溃异常。

如图,模拟一个崩溃日志:

异常日志

注意,Android应用编译,Kotlin代码会被编译为和Java代码同样的低级字节码,所以即使是用kotlin来编写代码,会看到java.lang异常也不用觉得太奇怪。

上述图片显示的异常,我们可以从异常语句直接跳转到源代码出错的对应行上,找出奔溃原因,加以修正。

当然这是比较简单的异常,真正的复杂项目中,碰到运行异常时,记得在LogCat中寻找最后一个异常及其栈跟踪的第一行(对应着源代码),这也是查找解决方案的最佳起点。

诊断应用异常

由于有的错误并不会产生崩溃,却得不到我们想要的结果,此时,我们就需要打印日志跟踪或者是断点调试了。

  • 记录栈跟踪日志 打印日志也有点技巧,我们在调试一个功能异常的时候,TAG可设置成一种,方便我们过滤日志信息从而分析日志。 一般项目中都会自行封装一个专门打印Log日志的类,用于控制整个项目的日志输出,github上面有个挺多好用日志输出工具。 随意推荐两个: logger :https://github.com/orhanobut/logger LogCat:https://github.com/liangjingkanji/LogCat
  • 设置断点 打断点也是程序员调试程序的常用方法,断点会在断点设置行的前一行代码出停止运行,然后我们可以逐行检查代码。

设置断点 然后调试运行项目:

debug 然后从Variables可以看到各种变量信息,当然也可以从旁边的箭头一步步执行代码,分析代码,上边有个小计算机图标,是用来做一些计算调试的,它可以改变一些变量看一些结果。

demo debug工具控制按钮:

debug工具控制按钮

「推荐」一篇专门讲了Android Studio一些各种小技巧的文章,当然包含了调试技巧。

地址:https://jaeger.itscoder.com/android/2016/02/14/android-studio-tips.html

小总结:

打印Log日志的优点是,在同一日志记录中可以看到多处的栈跟踪信息;缺点是,必须学习如何添加日志记录函数,重新编译、运行应用并跟踪排查应用问题。

相对而言,代码调试的方法更为方便,应用以调试模式运行后,可在应用运行的同时,在不同的地方设置断点,寻找解决问题的线索。

当然不同场景下,打印日志会更加清晰、方便寻找解决问题线索,比如说一个循环中。

Android特有的调试工具

  • 使用Android Lint Android应用代码的静态分析器(static analyzer)。 Analyze → Inspect Code...菜单项手动运行Lint。

lint 选择Whole project,然后Android Studio会立即运行Lint和其他一些静态分析器开始分析代码。检查完毕,所有的潜在问题会按类别列出。

Lint警告信息 总的来说,Lint工具都提供了详细的信息,并给出了解决建议,我们可以选择解决,或者是忽略它。真正大项目还是看情况来吧,自己分析一下,是不是有必要解决。

  • R类的问题 资源编译错误有时会一直存在或莫名其妙地出现时候,可尝试的操作:
    • 重新检查资源文件中XML文件的有效性
    • 清理项目(Build -> Clean Project)
    • 使用Gradle同步项目(Sync Project with Gradle Files)
    • 运行Android Lint(或许会有意想不到的发现)

实在还没解决的问题,就访问Stack Overfow网站或本书论坛求助!^_^

挑战练习:探索布局检查器

Tools → Layout Inspector

可用交互的方式检查布局文件,研究它是如何在屏幕上渲染显示的。

layout inspector

还有有用的,分析布局,还有个调试布局不错的工具,在sdk->tools->bin->uiautomatorviewer,打开这个东西,也可以分析布局,结合使用。

挑战练习:探索Android性能分析器

Android Studio 3.0 及更高版本中的 Android Profiler 取代了 Android Monitor 工具。Android Profiler 工具可提供实时数据,帮助您了解应用的 CPU、内存、网络和电池资源使用情况。

Profiler

具体参考:https://developer.android.com/studio/profile/android-profiler

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 妮K妮K妮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 异常与栈跟踪
    • 诊断应用异常
    • Android特有的调试工具
    • 挑战练习:探索布局检查器
    • 挑战练习:探索Android性能分析器
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档