Android Studio Debug:编码五分钟,调试俩小时

前言

整理并积累Android开发过程中用到的一些调试技巧,通过技巧性的调试技能,辅助增强代码的健壮性、安全性、正确性

案例一:抛出明显异常

  • 常见的:除数为0问题
class MainActivty : AppCompatActivity(){
    override fun onCreate(savedInstanceState: Bundle?){
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    
        button.setonClickListener {
               val i = 1/0
        } 
    }
}

提示错误原因,并告知在哪一行

class MainActivty : AppCompatActivity(){
    override fun onCreate(savedInstanceState: Bundle?){
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    
        button.setonClickListener {
               val s = "Candy"   //假设此处是在一个方法内,我们无法看到
               var i = 0
               i = s.toInt()
        } 
    }
}    

提示错误原因,并告知在哪一行
错误原因可能不认识,直接找错误关键字,检索百度

案例二:逻辑问题

  • println()方式调试
class MainActivty : AppCompatActivity(){
    override fun onCreate(savedInstanceState: Bundle?){
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    
        button.setonClickListener {
            var res = 0
            for (i in 1 until 10){
               res=+i     //该处将逻辑故意写错  应为 +=
               println("i=${i},res=${res}")
            }
            val s:String = StringTo(res)
            Toast.makeText(this,s,Toat.LENGTH.SHORT).show()
        } 
    }
    private fun StringTo(res:String){
        println("将Int转换成String")
        resturn res.roString()
    }
}    

会掺杂其他方法日志

  • log方式调试
class MainActivty : AppCompatActivity(){
    val TAG = "MainActivity"
    override fun onCreate(savedInstanceState: Bundle?){
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    
        button.setonClickListener {
            var res = 0
            for (i in 1 until 10){
               res=+i     //该处将逻辑故意写错  应为 +=
               Log.d(TAG,"i=${i},res=${res}")
            }
            val s:String = StringTo(res)
            Toast.makeText(this,s,Toat.LENGTH.SHORT).show()
        } 
    }
    private fun StringTo(res:String){
        println("将Int转换成String")
        resturn res.roString()
    }
}    

筛选条件多:Debug、Info、Worn、Error以及自定义筛选等
可以直接根据key筛选
调试数据较多时,不方便查看,不够灵活

  • debug模式调试

debug运行时,会出现提示框,无需操作

案例三:代码丢失||项目问题

  • history
    不小心删除代码/文件且已save并退出
    右击项目 -> Local History -> Show History -> 选择某一历史右键 -> Revert

作者:Coward881
链接:https://juejin.cn/post/7114926062982660103

最后

如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。

如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。

在这里插入图片描述


相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。

一、架构师筑基必备技能

1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO
……

在这里插入图片描述

二、Android百大框架源码解析

1.Retrofit 2.0源码解析
2.Okhttp3源码解析
3.ButterKnife源码解析
4.MPAndroidChart 源码解析
5.Glide源码解析
6.Leakcanary 源码解析
7.Universal-lmage-Loader源码解析
8.EventBus 3.0源码解析
9.zxing源码分析
10.Picasso源码解析
11.LottieAndroid使用详解及源码解析
12.Fresco 源码分析——图片加载流程

在这里插入图片描述

三、Android性能优化实战解析

  • 腾讯Bugly:对字符串匹配算法的一点理解
  • 爱奇艺:安卓APP崩溃捕获方案——xCrash
  • 字节跳动:深入理解Gradle框架之一:Plugin, Extension, buildSrc
  • 百度APP技术:Android H5首屏优化实践
  • 支付宝客户端架构解析:Android 客户端启动速度优化之「垃圾回收」
  • 携程:从智行 Android 项目看组件化架构实践
  • 网易新闻构建优化:如何让你的构建速度“势如闪电”?

在这里插入图片描述

四、高级kotlin强化实战

1、Kotlin入门教程
2、Kotlin 实战避坑指南
3、项目实战《Kotlin Jetpack 实战》

  • 一个膜拜大神的 Demo 开始

  • Kotlin 写 Gradle 脚本是一种什么体验?

  • Kotlin 编程的三重境界

  • Kotlin 高阶函数

  • Kotlin 泛型

  • Kotlin 扩展

  • Kotlin 委托

  • 协程“不为人知”的调试技巧

  • 图解协程:suspend

在这里插入图片描述

五、Android高级UI开源框架进阶解密

1.SmartRefreshLayout的使用
2.Android之PullToRefresh控件源码解析
3.Android-PullToRefresh下拉刷新库基本用法
4.LoadSir-高效易用的加载反馈页管理框架
5.Android通用LoadingView加载框架详解
6.MPAndroidChart实现LineChart(折线图)
7.hellocharts-android@R_404_5796@
8.SmartTable@R_404_5796@
9.开源项目android-uitableview介绍
10.ExcelPanel @R_404_5796@
11.Android开源项目SlidingMenu深切解析
12.MaterialDrawer@R_404_5796@

在这里插入图片描述

六、NDK模块开发

1、NDK 模块开发
2、JNI 模块
3、Native 开发工具
4、Linux 编程
5、底层图片处理
6、音视频开发
7、机器学习

在这里插入图片描述

七、Flutter技术进阶

1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter开发环境搭建和调试
5、Dart语法篇之基础语法(一)
6、Dart语法篇之集合的使用与源码解析(二)
7、Dart语法篇之集合操作符函数与源码分析(三)

在这里插入图片描述

八、微信小程序开发

1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战……

在这里插入图片描述

全套视频资料:

一、面试合集

在这里插入图片描述


二、源码解析合集

在这里插入图片描述


三、开源框架合集

在这里插入图片描述


欢迎大家一键三连支持,若需要文中资料,直接点击文末CSDN官方认证微信卡片免费领取↓↓↓

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...