调试Androidx源码的正确姿势

1,210 阅读1分钟

最近工作需要 要大量阅读并且调试androidx源码, 本来以为github上clone 一下就很容易的,但碰到很多坑,项目一直跑不起来 。搜了下也没有特别好的答案,折腾了一下 总算流程跑通了。

git clone 方法

clone项目

git clone https://android.googlesource.com/platform/frameworks/support

我们一般情况下,默认配置的jdk环境是11

image.png

但是要执行androidx源码环境 ,建议升级到21

image.png

然后cd 到 playground-projects 目录下

image.png

可以看出来 谷歌对项目做了分层,我们挑选一个项目

就挑选room把

执行命令

./gradlew studio

恩 这个过程可能会有错

image.png

大概就是

image.png

这个OUT_DIR 会是个null, 我没有配置过这个环境变量 导致这里报错了 没事,我们简单改下,去掉它 ok了,执行正常

剩下的就是漫长的等待了,它会自动帮你build 一个最新的as 来启动androidx的项目

image.png

可以看出来 这里的as版本 和我们正常能下载到最新的as还是有区别的。

image.png

我自己目前正常最新的as 是

image.png

跑一下room的benchmark吧

image.png

但是这种方式会有个问题

image.png

她只能支持这些项目的编译,例如你像对asyncInfalter 或者viewpager2 进行编译,你就没办法了 他不在这个列表里

repo 方法

repo下载好以后 ,稍微配置一下 bash_profile

function repo(){
  command python3 ~/bin/repo $@	
}

免的repo 执行各种报错 找不到python环境变量

继续执行命令

repo init -u https://android.googlesource.com/platform/manifest -b androidx-main 

初始化完成以后 继续

repo sync -c -j8

最后执行一个关键的命令

image.png

这次一次成功 ,并且所有androidx项目都可以源码调试 image.png