IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android Studio 导入源码模块并debug -> 正文阅读

[移动开发]Android Studio 导入源码模块并debug

  • 1. 导入需要开发的模块

2. 配置Android Sdk并且加载src,支持android studio里面的java文件跳转

?

这一步可以加载其他模块,比如我把package目录、system目录等模块加载进来,注意,每次加载之后,都要用下面的方式,让模块中的java类重新生成下依赖,否则,不会实现跳转

?

这样做是为了重新加载.java文件,添加索引,这样之后,点击ctrl+鼠标左键 直接跳转过去

下面我们还需要给模块配置SDK,这个SDK需要把.jar去除,否则,跳转的时候,会跳转到Android 自带的sdk中的.class文件中,而不跳转到我们自己的代码

?

删除SDK中的jar包

这一部是防止跳转的时候,跳转到sdk中的class文件中去

此时有可能会出现String和其他一些类找不到的情况,
一般情况下,我还添加/out/target/common/obj/JAVA_LIBRARIES/android_system_stubs_current_intermediates/下的资源,这个里面有基本库,String类等

也可以导入libcore/ojluni,这个里面包含了常用库,也会最终生成/out/target/common/obj/JAVA_LIBRARIES/android_system_stubs_current_intermediates/

注意:

在开发系统的时候,有时候,代码中会有一些相同名的文件名,为了规避跳转到不对应的地方,我们需要把不需要的文件名Exclude掉
比如下图,framework/base/package/SystemUI 并不是我们编译进系统的SystemUI
真正的地方在Vendor下面,
那我们可以把framework下的SystemUI给Exclude掉

?

3. debug调试

首先要保证你刷机的镜像和本地的代码保持一致,否则会出现代码无法识别的情况

支持打断点,还需要添加一下Facets,随便选一个模块添加就行,添加完成后,能直接在Android Studio中查看logcat和进行单步debug

?

这样就可以跟正常的app 应用开发打断点了

正常情况下,如果你选择的进程不是对应的代码,那前面的小红点不会有变化。
如果你选择debug的进程对应了你所需要调试的代码,前面的小红点会打钩。
此时,你就可以进行断点,如果程序运行到断点位置,就会停下来。
此时通过F5、F6、F7等就可以调试。和普通的断点调试没有任何区别

注意:

有可能调试模块的时候出现能调试全局变量,但是不能调试局部变量的情况,此时有可能是因为你的代码进行了混淆。

我们只需要在Android.mk文件中,把代码混淆去掉,重新编译就行了

  1. 指定不需要混淆的native方法与变量的proguard.flags文件如:LOCAL_PROGUARD_FLAG_FILES := proguard.flags
  2. 制定编译的工程,不要使用代码混淆的工具进行代码混淆如:LOCAL_PROGUARD_ENABLED := disabled
  3. 不设置,默认使用LOCAL_PROGUARD_ENABLED := full.即将该工程代码全部混淆

4. Profile 分析

使用Profile分析需要配置

file?→ project structure?→ Project Settings?→ Modules?→ 添加?→ Apk

?

配置config

配置完之后,就能使用Profile功能了

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-14 14:11:29  更:2021-08-14 14:14:19 
 
开发: 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/23 11:06:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码