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功能了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值