最近工作需要 要大量阅读并且调试androidx源码, 本来以为github上clone 一下就很容易的,但碰到很多坑,项目一直跑不起来 。搜了下也没有特别好的答案,折腾了一下 总算流程跑通了。
git clone 方法
clone项目
git clone https://android.googlesource.com/platform/frameworks/support
我们一般情况下,默认配置的jdk环境是11
但是要执行androidx源码环境 ,建议升级到21
然后cd 到 playground-projects 目录下
可以看出来 谷歌对项目做了分层,我们挑选一个项目
就挑选room把
执行命令
./gradlew studio
恩 这个过程可能会有错
大概就是
这个OUT_DIR 会是个null, 我没有配置过这个环境变量 导致这里报错了 没事,我们简单改下,去掉它 ok了,执行正常
剩下的就是漫长的等待了,它会自动帮你build 一个最新的as 来启动androidx的项目
可以看出来 这里的as版本 和我们正常能下载到最新的as还是有区别的。
我自己目前正常最新的as 是
跑一下room的benchmark吧
但是这种方式会有个问题
她只能支持这些项目的编译,例如你像对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
最后执行一个关键的命令
这次一次成功 ,并且所有androidx项目都可以源码调试