Android Studio 系列(二)使用Android Studio 导入整个android 源码,调试系统代码

Android基础(android studio最详细基础使用功略) android studio最详细基础使用功略!!!!!!!!!! 阅读详情
AI摘要

本文详细介绍使用Android Studio导入Android源码的过程,包括配置AS、生成配置文件、配置JDK/SDK、调试源码及解决常见问题等关键步骤。

转载请注明出处:Android Studio 系列(二)使用Android Studio 导入整个android 源码,调试系统代码(不定时更新)_十橙-优快云博客

后续文章

Android Studio系列(三)Version Control I 使用内置版本管理工具管理源码

Android Studio系列(四)Version Control II Annotate

------

本文是以源码中development/tools/idegen/README作为指导文档,给出了使用Android Studio导入Android源码的方法步骤。
由于Android Studio(以下简称AS)是基于IntelliJ IDEA开发的,所以本文也适用于IntelliJ IDEA。

零、为什么用AS

  1. 智能代码提示
  2. 自动保存
  3. 多设备实时预览
  4. 内置终端
  5. UI漂亮
  6. 自带git github svn插件
  7. 强大的搜索

一、修改AS的配置

由于Android源码太大了,在过导入源码和后续工作中,AS需要占用大量内存,所以我们要先做些设置。
在2.3.1以后的版本中修改/home/username/.AndroidStudio2.3/studio64.vmoptions文件,增加-Xms748m -Xmx4096m,也可通过help->Edit Custom VM Options修改。

二、生成导入AS所需配置文件(*.ipr)

为了成功将源码导入AS,我们需要先生成AS可是别的项目工程配置文件。
在源码根目录依次执行

source build/ensetup.sh  
make idegen
development/tools/idegen/idegen.sh

之后会出现类似下面的结果:

Read excludes: 5ms  
Traversed tree: 44078ms

这时会在源码的根目录下生成android.ipr,android.iws和android.iml三个文件。

三、导入源码

android源码代码量较大,全部导入比较耗时,因此在打开前可以先去除一些不想导入的代码文件夹。
如果我们一直都不会去修改prebuilt文件夹下的代码,可以先修改android.iws,在合适的位置添加:<ignored path="$PROJECT_DIR$/prebuilt/" />。
之后再打开源码目录下的android.ipr。
另外,第一次导入源码需要生成index,因此花费的时间比较长,完整扫描一次以后再打开就没这么慢了。

四、配置AS的JDK、SDK

在上一步操作之后的等待期间刚好让我们来配置一下JDK和SDK。
在AS中参照下图Project Structure设置,在SDKs设置中加入必须的JDK,SDK。
创建一个新的JDK,可以取名为1.7(No Libraries),然后删除classpath标签页下面的jar文件。 这样可以确保使用Android源码里的库文件。


之后将1.7(No Libraries)作为Android SDK要使用的Java SDK。如下图

之后在Project标签中的Project SDK中选择对应的Android API版本。

五、debug源码

我们可以通过给刚导入的工程在'Modules'中添加'Android Framework'来让AS将它作为一个Android工程,从而方便我们调试代码。

选择途中Framework目录下的Android

在代码中加断点,然后选择'Run'->'Attach debugger to Android process'或者直接点击下图中的手机上有个虫子的图标。

在弹出的选择进程(Choose Process)对话框中,先勾选显示所有进程,然后选择要debug的代码所在的进程,点击OK即可(可同时debug多个进程)。

六、解决源码中跳转错误问题

设置'Modules'的依赖

 将除了Module source和Android API以外所有的依赖删掉。
点击上图中'+'并选择'Jars or directories'选项,将frameworks文件夹添加进来。如:

如果之后还是遇到了代码跳转错误,请仿照上面的步骤将相应代码的路径或jar文件添加到其Dependencies标签页中。

最近我在几个英文网站上看到把out/target/common/R文件夹标记为Sources,我猜测是为了解决找不到R资源的问题,但是我测试没有生效。读者自行选择吧。

七、快捷键

快捷键是利器啊!熟悉了快捷键效率飙升!不过有些与系统快捷键冲突了,若要实行请自行修改。
全部快捷键请看另一篇文章:IDEA 快捷键 Android Studio快捷键


Tips:
因为Android Studio 的配置和缓存文件存在home/.AndroidStudio文件夹中,时间长了可能会导致系统磁盘吃紧,若要修改默认存储位置(比如改到其他挂在盘),需修改android-studio/bin/idea.properties文件中相关的配置信息,修改内容参考:

注:前面生成的文件分别作用为:
①android.iws 包含工作区的个人设置,比如打开过的文件,版本控制工具的配置,本地修改历史,运行和debug的配置等。
②android.ipr 一般保存了工程相关的设置,比如modules和modules libraries的路径,编译器配置,入口点等。
③android.iml 用来描述modules。它包括modules路径、 依赖关系,顺序设置等。一个项目可以包含多个 *.iml 文件。

你可能需要的链接:

  1. Android Studio系列教程
  2. 如何使用Android Studio开发/调试Android源码
  3. Ubuntu下配置Android Studio的快捷启动方式
  4. Android Studio简单设置
  5. Android Studio 常用功能介绍
  6. 配置Android Studio

感谢原作者!

Android Studio导入Android系统源码 实现步骤非常简单: 1:编译idegen模块 源码要编过,不然idegen没法生成。 检查out/host/linux-x86/framework/目录下是否有idegen.jar 如果idegen.jar不存在,执行mmm development/tools/idegen/ 把这个文件copy到out/host/linux-x86/framework/目录下,在根目录下执行 . ... 阅读详情

相关推荐

Android Studio 导入 Android 源码

我的博客原文地址 Android 的源码代码量是非常大的,也有多种代码编辑器来供我们选择来去阅读Android源码,本文将介绍如何将 Android 源码导入到 Android Studio 中来的技巧。 导入源码修改Android Studio的配置文件由于导入源码时需要消耗大量内存,所以建议修改一studio64.vmoptions文件:-Xms1024m -Xmx1024m生成导入到And

寒江蓑笠的专栏 2万+

Android Studio入门级教程(详细)【小白必看】[通俗易懂]

有了Java阶段的学习,这一阶段建议以视频学习为主辅以图书查漏补缺。遇到问题可以去百度,入门的问题一般会有很多人遇到,并且给出比较好的解答。需要掌握基本知识点,比如四大组件如何使用、如何创建Service、如何进行布局、简单的自定义View、动画、网络通信等常见技术。注:小白为了养成良好习惯,每个控件的id一定要起得严谨,一看到就知道是什么意思,最好不要含有数字。R是类 索引类 把r文件下的所有文件进行索引 资源目录的索引 通过索引号找到响应的静态成员。可能有许多小伙伴不知道R是什么?

Android23333的博客 6万+

把Android源码导入Android Studio进行调试

一.整编代码 1.source build/envsetup.sh 在你需要编辑的根目录下输入如下命令初始化环境 2.lunch 选择平台编译选项,如:32.lito-userdebug 3.make -j16 -jx # x指线程数,一般写8具体看电脑配置 二.生成idegen.jar文件 1.source build/envsetup.sh 2.lunch 3.mmm development/tools/idegen/ 这行命令的意思是编译idegen这个模块项目,然后生成id...

xxdw1992的博客 3871

Android Studio导入Android源码(推荐)

实际项目开发中,FWK需要阅读全部的源码,如果直接用AS打开所有源码会很卡,大多数情况下会直接卡死(公司电脑配置如此),体验感极差;如果使用VS Code阅读,有一个缺点就是无法实现AS里的方法跳转,只能搜索,相对会麻烦一些。所以介绍AS导入Android.ipr的方式阅读Android源码。

ITQ555的博客 4964

Android AOSP基础(四)Source Insight和Android Studio导入系统源码

关联系列 Android AOSP基础系列 Android系统启动系列 前言 在上一篇文章Android AOSP基础(三)Android系统源码的整编和单编中,我们对系统源码进行了编译,这篇文章我们接着来学习如何将系统源码导入到编辑器中,以便于查看和调试源码。关于查看源码,可以使用Android Studio、Eclipse、Sublime、Source Insight等软件,这里我推荐使用S...

Android进阶三部曲 - 刘望舒 6348

Android AOSP基础(五)Android Studio调试系统源码的三种方式

本文首发于微信公众号「刘望舒」 关联系列 Android AOSP基础系列 Android系统启动系列 应用进程启动系列 Android深入四大组件系列 Android深入理解Context系列 Android深入理解JNI系列 Android解析WindowManager Android解析WMS系列 Android解析AMS系列 Android包管理机制系列 Android输入系统系列 前...

Android进阶三部曲 - 刘望舒 5954

使用Android Studio导入Android系统源码

转载请注明出处:https://blog.youkuaiyun.com/turtlejj/article/details/83857897,谢谢~ 在之前的工作中,由于不仅要分析和调试Android系统源码中Framework以及Telephony部分的Java代码,而且还要兼顾RIL和Modem相关的C/C++代码。然而Android Studio对于C/C++代码的支持并不是很好,...

二二的二姐夫的博客 5万+

使用Android Studio调试Android Framework代码

使用Android Studio调试Android Framework代码阅读源码很枯燥,如果能单步调试岂不是能使逻辑更清晰,更轻松的学习,本文章讲如何使用Android Studio调适Android Framework。

云涛的博客 1万+

Android Studio 导入安卓源码步骤

前言 我们做Android系统源码开发,在定位问题的过程中经常要从App层跟踪代码到Framework层中,为了更加方便的查找代码,这时候就需要把整个工程源码导入到Android Studio中,导入后我们也可以通过断点调试,更加快速和准确地定位分析解决问题。 操作步骤 开发环境: Ubantu 20.4 Android Studio4.2 Android 11(R) 源码 步骤一 1. 进入源码根目录,初始化系统环...............

u012514113的专栏 1万+

使用Android Studio调试Android 9.0 Framework代码

阅读源码很枯燥,如果能单步调试岂不是能使逻辑更清晰,本文章讲如何调适android framework。本文使用的环境是ubuntu 14.04,jdk1.8。Android9.0源码。具体步骤如下, 1.下载android源代码 任何一个工程都可以;后面会介绍如何用现有工程的相关img替换模拟器的对应img。 2.编译源码 如果只是加载源码的话可以不编译,执行/development/tools...

w05285的博客 4140

导入小部分aosp源码,在Android studio调试

这部分,不过多介绍。网上很多。 source build/envsetup.sh -> lunch xxx -> make idegen source -> development/tools/idegen/idegen.sh大部分人代码都在远程服务器,在本地也可以 在本地新建一个文件夹 将需要的代码拷入 ,例如我的是, 注意:并不是将frameworks packages中的代码全部拷入,而是只拷贝需要的部分 拷入的代码结构需保持一致, 我只拷贝了 frameworks\opt\telephony

qq_41285455的博客 2037

Android Studio 导入系统源码并对源码进行debug调试

Android9系统源码下载 Android9源码编译 之前阅读Android源码都是使用直接从百度云盘下载源码,并导入Source Insight进行阅读,这个工具也很强大,类的查找搜索都很方便,源码也不需要进行编译,但是,是不能进行类的关联以及进行调试。 如果你已经将源码进行编译,得到了Android Studio项目配置文件,就可以直接导入Android Studio了。优势是,各种快捷键随心使用,而且可以进行系统源码调试。 1.编译好的Android源码导入Android Studio 在源码目录,

风的轨迹 7758

【Android Studio】--- 经典常用开发设置(超详细-持续更新中)

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。

秋知叶i 5878

将Android源码导入Android Studio进行调试

做系统开发的,比如手机,平板,需要编译修改源码。 做源码开发,不像开发纯app,调试起来有些麻烦,但还是可以实现的,可以将整个源码导入AS,实现打断点调试 我这边使用的是Android Studio 2.3 要调试的源码是Android9.0 因为在导入源码时需要消耗大量内存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的机器修改studio.v...

wangwei6227的博客 4028

使用Android Studio调试安卓系统源代码:将AOSP源码整体导入到AS

前面的文章里,以Settings作为例子,以android 9.0和android 11.0作为平台,做了AS移植的详细介绍。但从android 11.0开始,部分系统APP更加模块化,导致一次要移植N个依赖模块,相当复杂,于是乎,我们想到了一个原始的方法,对于AOSP安卓源码,谷歌其实有提供现成的工具,可以把真个源码制作成一个AS工程,如此导入到AS中,进行调试,本文将对此进行介绍、演示。

上周的博客 3431

ray.tune调参学习笔记0:调参基本流程

本篇总结python中使用tune调参的整体流程

Mr_111000的专栏 2622

Android studio 导入 Android 系统源码

1. 通常,从事Android开发相关的人员,都需要涉及到Android源码的阅读,尤其是从事Android系统相关开发的。这里介绍下Android studio 如何 导入Android源码,以便更好的学习开发。比较早的时候,阅读学习调试Android源码通常都是使用eclipse工具,当android studio 问世后,许多人便开始使用Androidstudio 导入源码,使用as笔者有这...

wang 恒 的博客 7694

关于DHCP Option60的认识

<br />       最近在网络建设过程中,必须面对一个实际存在的问题:当只有一根线入户时,该如何解决CATV和宽带业务的共存呢?这时就要考虑用到DHCP Option60了,那么DHCP Option60到底是如何来实现业务区分的呢?<br />首先先来看下DHCP协议,在DHCP协议中,定义了一个option字段,该字段主要是用来扩展DHCP协议的,Option 60 (Vendor class identifier)是DHCP报文中的一个选项字段,code为60,可以标识终端类型,根据不同的终

luoyingchuan的专栏 7940

【Android】使用Android Studio调试apk文件

一、反编译apk文件 这里,我直接使用Android Killer来对apk文件进行反编译: 二、导入源码 打开AS,导入Androidkiller反编译完毕后生成的源码: 导入完成: 此时,代码文件都是smali格式 此时需要安装smaliidea插件,来对smali代码进行处理。 安装完成后,就可以出现语法高亮。 三、AS连接安卓模拟器,进行动态调试 ...

不忘初心,护天下安全! 1万+

STM32 HAL库 实现基于SPI模式的SD卡、TF卡FATS文件系统+模拟U盘的应用笔记

很多单片机不带SDIO接口,所以在使用SD卡时必须使用SPI模式进行读写。 想做一个基于SPI的SD卡文件系统读写SD卡上的文件,再配合USB接口做一个模拟U盘。只能利用业余时间慢慢更新,也不知道能不能坚持下去。 我会把从零开始开发一个程序需要经历的过程一一的记录下来。做成一个奶妈级的单片机开发笔记。 一、硬件简介 1.SD卡和MicroSD卡(TF卡)的区别 由下图可以很容易的看出TF卡只是比SD卡少了一个3脚Vss脚,其它的管脚顺序

KyleKuang的博客 8333

App渗透 - 人脸识别登录绕过

一、APP抓包和逆向破解加密算法打开APP是一个登录框抓包后发现参数被加密了使用Jadx脱源码发现,并没有加壳也没有混淆,运气很好根据经验,先搜索Encrypt、Decrypt等关键字,发现在Common.js中有一个encryptData函数定位过去,一套加解密算法都写好了放在这放到浏览器console里面调试,果然没错二、寻找注入点首先测试了一下注入明文:{"userName":"TEST'...

渗透测试研究中心 2823

Android Studio 调试 Android Framework 层代码

Android Studio 调试 Android Framework 层代码 转自:https://blog.youkuaiyun.com/songjinshi/article/details/53020549/?utm_medium=distribute.pc_relevant.none-task-blog-title-6&spm=1001.2101.3001.4242 一、准备工作 1、下载最新的 Android Studio 版本 https://developer.android.com/studi

他晓 1万+

【AUTOSAR SystemServices】AUTOSAR CP中Watchdog Manager模块技术解析

本文深入解析了AUTOSAR中的Watchdog Manager模块实现。该模块通过多层次监督机制(Alive/Deadline/Logical Supervision)确保系统安全运行,具备动态模式切换和分级故障处理能力。 关键实现包括: 数据结构设计:包含监督实体状态结构体(实时状态维护)、监督配置结构体(支持模式切换)和全局状态信息(系统级监控) 核心流程优化:初始化采用事务性设计,检查点处理通过条件编译优化,主监控循环采用流水线式并行处理 监督机制实现:Alive监督采用滑动窗口算法,Deadlin

1038
上一篇: android 打开移动数据流程
下一篇: IDEA 快捷键 Android Studio快捷键
十橙
博客等级 码龄24年 312粉丝 95原创
评论 22
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值