frameworks 之导入源码Android Studio


日常需要导入到android stduio 方便我们代码查看和跟踪,源码提供的 Idegen 脚本能帮助我们快速导入android stdudio

1.加载 和 生成 Idegen.jar

切换到源码目录,跟正常加载脚本编译源码流程一样,需要执行以下命令

// 加载脚本
source build/envsetup.sh
// 选择编译目标
lunch
// 生成idegen.jar
make idegen

注意是执行 make idegen

2.执行Idegen脚本,生成 android.ipr和android.iml

在源码对应的目录下,执行idegen目录下的脚本,该脚本会生成 android.iprandroid.iml 文件,注意执行该命令需要加sudo权限,命令如下

sudo development/tools/idegen/idegen.sh

执行完成功则会在源码目录生成上述2个文件
在这里插入图片描述
有的人可能会在用sudo执行该命令的时候,报错 java 命令找不到 command not found。这有2个因为

  1. 编译电脑没配置对应的java环境变量。对于这种情况配置java环境即可
  2. 已经配置java环境
    已经配置java环境,但是sudo 找不到是因为使用sudo去执行一个程序时,出于安全的考虑,这个程序将在新的、最小化的环境中执行。所以sudo命令下已经被重置成默认的状态。可以按以下方法配置软连接。连接到对于的java文件

打开 /etc/sudoers 文件 查看 secure_path 是否包含 /usr/local/bin 已包含则无需处理。

gedit  /etc/sudoers

在这里插入图片描述

打开命名面板,先不用切换超级管理员,输入以下命令查找对应的java程序路径

which java

在这里插入图片描述
跟着 使用sudo 命令 进入root用户,配置该软连接, -s 表示保存 -f表示强制替换。(如果以前没操作过则直接-s即可)

// 进入root用户
sudo -i 
// 添加软连接,  f标志强制替换
ln -sf /home/ming/sofeware/android-studio/jdk11/bin/java /usr/bin/java

替换完成后,在root用户下 执行命令查看是否配置成功,如果有输出则代表配置成功。重新执行上面 idegen 脚本即可成功

// 查看路径
which java
// 查看版本
java -version

在这里插入图片描述

3.优化导入的代码速度

对于新手的我,只需要package 和 frameworks 目录下的代码查看和修复,对源码目录下生成的 android.iml 修改,通过 excludeFolder 即可排查对应的文件夹导入,避免android stduio 加载过久。下面是我的设置,可供参考。

<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" />

在这里插入图片描述
也可以导入后通过AS 排除对应的模块
在这里插入图片描述

4.Android Stduio导入

点击 File -> open 选择生成的 android.ipr 导入即可,第一次导入会比较久,等待即可。

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值