系统开发 (六) AndroidStudio导入源码和调试

一、Android源码下载和编译

参考前文 

系统开发 (一)Aosp 下载

系统开发 (二)Aosp编译

二、生成可被AndroidStudio导入的配置文件


2.1 单独编译idegen模块生成idegen.jar

在源码的根目录下,执行下面命令编译出idegen.jar文件

source build/envsetup.sh
mmm development/tools/idegen/

命令执行完成后会输出idegen.jar的路径:
out/host/darwin-x86/framework/idegen.jar

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=10
TARGET_PRODUCT=aosp_arm
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=generic
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-5.4.0-150-generic-x86_64-Ubuntu-18.04.6-LTS
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=QP1A.190711.019
OUT_DIR=out
============================================
[100% 1367/1367] Install: out/host/linux-x86/framework/idegen.jar

2.2 生成AndroidStudio工程配置文件-android.ipr和android.iml

成功编译完成idegen模块生成idegen.jar文件后,在根目录继续执行下面命令,就可以生成了AndroidStuido源码工程的配置文件了

development/tools/idegen/idegen.sh

大约一两分钟后命令执行完成后就会生成android.ipr和android.iml 这两个文件位于在源码的根目录下

.
├── Android.bp -> build/soong/root.bp
├── Makefile
├── android.iml
├── android.ipr
├── art
├── bionic
├── bootable
├── bootstrap.bash -> build/soong/bootstrap.bash
├── build
├── compatibility
├── cts
├── dalvik
├── developers
├── development
├── device
├── external
├── frameworks
├── hardware
├── kernel
├── libcore
├── libnativehelper
├── out
├── packages
├── pdk
├── platform_testing
├── prebuilts
├── sdk
├── sync.sh
├── system
├── test
├── toolchain
└── tools

三、导入源码

打开Android Studio,通过File->open找到源码目录下的android.ipr文件就可以直接导入工程了.
第一次导入将会非常漫长.

3.1 加快导入

默认会把所有android源码导入到AndroidStudio中,如果只关注Framework层源码,可以在android.iml文件中添加下面的文件,排除掉不需要导入的目录

<excludeFolder url="file://$MODULE_DIR$/art" />
<excludeFolder url="file://$MODULE_DIR$/bionic" />
<excludeFolder url="file://$MODULE_DIR$/bootable" />
<excludeFolder url="file://$MODULE_DIR$/build" />
<excludeFolder url="file://$MODULE_DIR$/cts" />
<excludeFolder url="file://$MODULE_DIR$/dalvik" />
<excludeFolder url="file://$MODULE_DIR$/developers" />
<excludeFolder url="file://$MODULE_DIR$/development" />
<excludeFolder url="file://$MODULE_DIR$/device" />
<excludeFolder url="file://$MODULE_DIR$/docs" />
<excludeFolder url="file://$MODULE_DIR$/external" />
<excludeFolder url="file://$MODULE_DIR$/hardware" />
<excludeFolder url="file://$MODULE_DIR$/kernel" />
<excludeFolder url="file://$MODULE_DIR$/libcore" />
<excludeFolder url="file://$MODULE_DIR$/libnativehelper" />
<excludeFolder url="file://$MODULE_DIR$/out" />
<excludeFolder url="file://$MODULE_DIR$/pdk" />
<excludeFolder url="file://$MODULE_DIR$/platform_testing" />
<excludeFolder url="file://$MODULE_DIR$/prebuilts" />
<excludeFolder url="file://$MODULE_DIR$/sdk" />
<excludeFolder url="file://$MODULE_DIR$/system" />
<excludeFolder url="file://$MODULE_DIR$/test" />
<excludeFolder url="file://$MODULE_DIR$/toolchain" />
<excludeFolder url="file://$MODULE_DIR$/tools" />
<excludeFolder url="file://$MODULE_DIR$/.repo" />

四、AndroidStudio中配置源码

通过AndroidStudio导入源码后, 需要为项目配置SDK和JDK,否则阅读源码时代码会跳转到jar包中的类

4.1 新建和配置SDK

右键打开项目配置窗口-Project Structure,选中SDKs中新建SDK,命名为jdk(framework),什么名字都可以,然后将其Classpath和Sourcepath删除掉

在这里插入图片描述

右键打开项目配置窗口-Project Structure,选中SDKs,选择Android API 28 Platform 将Java SDK切换为上一步刚创建的jdk(framework)

在这里插入图片描述

4.2 为工程配置SDK

右键打开项目配置窗口-Project Structure,选中Project,将Project SDK 切换为选择的 Android API 28 Platform

在这里插入图片描述

4.3 为工程配置依赖

右键打开项目配置窗口-Project Structure,选择Modules 将Dependencies中除了Android API 28 Platform以外的全部删除掉,然后将frameworks和external添加进来最终如下图所示.

在这里插入图片描述

五、调试源码

5.1 打开通过源码编译的模拟器

source build/envsetup.sh
lunch

emulator

 在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值