Android 开机启动调试,system_process调试

本文介绍了如何调试Android的system_process。首先,详细阐述了下载、编译AOSP源码并导入IDE的步骤。然后,讲解了如何在源码中添加调试代码,使得system_process启动时等待调试器连接。通过设置/system/debug文件,配合特殊启动命令,使模拟器在开机时暂停,从而实现system_process的断点调试。文章还提到了相关配置和参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载,编译,导入,配置

作为开发者,经常会对Debug工程进行调试,Android具有debug签名的应用才可以被调试,如果想调试系统源码呢?

想要调试源码,首先必须要有源码,并且保证设备运行的源码和IED里的源码是同一份.

下载和编译AOSP源码,本人使用的ubuntu LTS 16.04系统, 磁盘剩余空间至少要150G(如果编译时,提示空间不够,可以删掉".repo" 目录), 内存16G, 8G的内存,编译死慢,调试更是卡的动不了,墙裂建议用16G的内存!

注意编译源码时,如果你是64位的机器,就编译64位的目标版本,运行起来快!

编译完成后执行如下代码:

soruce build/envsetup.sh
mmm development/tools/idegen/
sudo ./development/tools/idegen/idegen.sh

注意请在源码目录下执行,如果是按照官方的教程,应该是在 ~/WORKING_DIRECTORY 目录下

"mmm development/tools/idegen/" 执行完成后会生成idegen.jar

"sodo ./development/tools/idegen/idegen.sh"则会在源码目录下生成IEDA工程配置文件:android.ipr,android.iml

android.ipr:保存工程相关的设置,比如编译器配置,入口,相关的libraries等
android.iml:主要是描述了modules,比如modules的路径,依赖关系等,在导入源码工程是,可以编辑该文件,排除一些不使用的目录文件,这样导入会快很多,因为源码文件实在是太多了,全部导入,要花很长时间,可以排除的文件为目录为(我的机器的的配置):

<excludeFolder url="file://$MODULE_DIR$/.repo" />
      <excludeFolder url="file://$MODULE_DIR$/external" />
      <excludeFolder url="file://$MODULE_DIR$/external/bluetooth" />
      <excludeFolder url="file://$MODULE_DIR$/external/chromium" />
      <excludeFolder url="file://$MODULE_DIR$/external/emma" />
      <excludeFolder url="file://$MODULE_DIR$/external/icu4c" />
      <excludeFolder url="file://$MODULE_DIR$/external/jdiff" />
      <excludeFolder url="file://$MODULE_DIR$/external/webkit" />
      <excludeFolder url="file://$MODULE_DIR$/frameworks/base/docs" />
      <excludeFolder url="file://$MODULE_DIR$/out/eclipse" />
      <excl
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值