AndroidX(/frameworks/support) 代码下载与编译

AndroidX(/frameworks/support) 代码下载与编译

什么是 AndroidX

android 支持库,提供对不同 android 版本的兼容接口。

以下为 android 开发者网站上的说明:

AndroidX 支持库的 mvnrepository 仓库

https://mvnrepository.com/artifact/androidx

可通过上面的网址查看和下载历史发布版本,需要自己编译历史版本,可以参考发布时间,拉取新的分支。

下载 androidX 源码

aosp 的 /frameworks/support 仓库即 androidX 支持库源码位置,但是这个仓库中没有编译环境,所以只有这个仓库是无法编译的。

网上没有找到编译方法,偶然打开 googlesource 的 manifest 仓库网页,看到里面有 androidx-main 分支,尝试使用 repo 拉取这个分支,最终才发现下载完整编译环境的方式。

google 代码仓库下载位置

因为源码位置国内不可以访问,可以使用清华大学镜像站进行下载。

使用清华大学镜像站进行下载

将下载地址替换为镜像站的网址。

下载所需空间

manifest 配置文件中,指定了 clone-depth="1",所以 repo sync 后只会下载最后一次 commit 的文件状态。

这种方式下载后占用空间在 24G 左右。

下载全量代码所需空间

上面下载的的代码是最新的提交状态,编译出的 aar 是最新版本。
如果需要调试旧版本的 androidX 支持库,则需要切换代码到旧版本所在的 commit,此时需要使用 git pull 拉取全部代码。

以下 git 仓库占用空间大。

全部下载在 200G 以上,建议硬盘预留 300G 空间。

文件结构

编译

使用 gradle 进行构建。对应的 gradlew 可执行文件位于 support 文件夹内。

以下,以编译 frameworks/support/camera/camera-camera2 为例。

1.0 使用 gradlew tasks –all 查看所有任务

打包 aar 文件,关注 assembleDebug assembleRelease 这两个就可以了。assembleDebug 是 debug 版本, assembleRelease 是 release 版本。

2.0 编译指定 task

这一步如果没有生成物,且输出以下日志。

就执行一次 ./gradlew build –scan 后再执行上面的指令

3.0 生成的 aar 位置

./out/androidx/camera/camera-camera2/build/outputs/aar

0 Comments
Leave a Reply