| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Windows系统Android Studio断点调试Android源码 -> 正文阅读 |
|
[移动开发]Windows系统Android Studio断点调试Android源码 |
????????之前我都是在Windows环境下开发Android。调试代码的时候有时候要进到系统类中去断点调试代码,经常断点断不到,或者就跑飞了。 ????????最近因为在研究一些源码,比如LayoutInflater.inflate()这个方法你要进去一层层调试的话怎么办呢?其实不要再相信网上说的什么还要装Linux环境,哪有那么复杂,这里其实非常非常非常简单。 ????????首先你看下你的壳项目的build.gradle配置 ????????注意这个compileSdk配置,说明你当前使用的编译Android SDK就是31版本的。那最关键的一点就是你调试时候的手机的Android SDK版本一定也要是31的。不管是物理机还是虚拟机,你想要断点调试源码的话肯定调试机的API版本要和对应的Android Studio编译Android SDK版本一致才行啊。 ? ? ? ? 大部分情况大家随便插个物理机或者随便新建一个虚拟机就开干了,都不关注版本的一致性这些,导致源码断点调试不了!!! ? ? ? ? 那为什么就必须一致呢??? ????????因为Google每个版本都在升级源码,特别是一些常用的类,比如LayoutInflater。你调试机的 API(可以理解就是Android SDK)对应的版本与Android Studio编译时候的版本不一致那调试机运行时调用的源码与编译的源码都不一样(比如可能存在同一个方法对应的行索引都对不上)当然断点跑飞了呀。这里恍然大悟!!! ????????因此比如我上面Android Studio编译的Android SDK版本是31,那我当然首先必须下好对应版本的Android SDK。 ????????这个都不知道怎么下载的看下图,在设置里去下。 ????????那此时检查你调试机器的API情况。以我的虚拟机为例。?我也用的是31的API哦。 ?????????那调试机器的API版本与Android Studio编译时候的API版本都是31,不就完美匹配了么。 ????????那还会断点进不去吗? ????????那是绝对绝对绝对不可能滴!!! ????????立图为证 ????????首先我最外部的inflate()调用已经断点走到了 ????????再往里走,断到了 ? ?????????再走,依旧是断到了 ????????完美收工,以后就愉快地源码调试吧,就快乐高效地学习源码吧!!!? |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 2:27:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |