当前位置:网站首页 > 技术博客 > 正文

android源码怎么运行



上一篇文章中,我们编译了AOSP的源码并刷入自己编译的ROM到Pixel 6设备中。本文我们使用Android官方提供的IDE(Android Studio For Platform)来打开AOSP源码,并进行debug调试,这样可以方便我们跟踪底层代码的调用流程。

ASFP的官网:https://developer.android.com/studio/platform

我们可以在官网直接下载安装,但需要注意的是,,我是使用Ubuntu系统,所以可以正常打开并下载。

按照官网的介绍,Android Studio for Platform (ASfP) 适用于使用 Soong 构建系统进行构建的 Android 开源项目 (AOSP) 平台开发人员。 我们可以简单理解为我们平常开发使用的Android Studio,只是开发面对的不是上层应用而是底层Framework层。

它与我们之前使用的源码查看工具不同,它支持我们在同一IDE中编辑Java、Kotlin和C++,同时支持对AOSP源码的debug调试。

下载后可以使用下面的命令安装:

 
  

安装这个工具后,我们不光可以用来调试AOSP源码,还可以把它作为正常的Android Studio使用。

调试AOSP源码,需要我们先下载&编译AOSP源码,并拥有一台真机或者模拟器安装了我们编译的镜像。这里可以参考我的上一篇文章一文学会从零搭建编译AOSP源码刷机全流程。

然后我们将我们的AOSP源码导入,导入时需要注意,我们只需要导入我们需要调试的模块即可,这里我们以art模块为例。

选择「Import Asfp Project」,然后按下图填写即可。

需要注意的是Lunch Target,这个值需要与我们之前编译ROM时一致。需要注意的时,编译的Target要是以结尾的版本才是可调试的。

image-20240730000237474

点击「Finish」后会进行一次编译,然后开始建立索引,如果你之前编译过,则整个编译过程会比较短,主要是建立索引的过程较长。

索引建立完以后我们就可以进行代码跳转了。

image-20240730000720531

这里我们使用ASFP新建一个Android工程,编写逻辑点击按钮后触发gc,核心代码如下:

 
  

然后我们在的函数中打上断点。

然后我们先安装运行我们的应用,然后在ASFP中选择如下图,然后我们选择自己的App即可。

我们可以选择Debug C++代码或者Java代码或者同时debug(注意:我实际测试选择Dual(Java + Native)断点会出现异常),分别Debug Java和C++则正常,目前原因还未知,但对我们常规的调试基本是够用的。

image-20240730001856340

我们点击触发C++代码后,可以看到如下断点命中,剩下的步骤就跟常规Debug一致了。

image-20240730002313818

如果你只是Debug Java代码,你只需要使用普通的Android工程,将targetSdk设置为你的ROM系统版本即可正常Debug,并且代码行号也是对应上的,这样对系统资源的消耗会更低。

  • 上一篇: oracle 视图 rowid
  • 下一篇: vmware和vcenter
  • 版权声明


    相关文章:

  • oracle 视图 rowid2025-06-07 11:01:05
  • pyqt5 pypi2025-06-07 11:01:05
  • linux中的ldd命令简介2025-06-07 11:01:05
  • java实现网络爬虫2025-06-07 11:01:05
  • rsa属于非对称加密算法吗2025-06-07 11:01:05
  • vmware和vcenter2025-06-07 11:01:05
  • javascript file2025-06-07 11:01:05
  • 局部变量,成员变量,静态变量分别怎么声明2025-06-07 11:01:05
  • 颜色16进制代码表2025-06-07 11:01:05
  • 专门提供破解软件的网站2025-06-07 11:01:05