美文网首页贤榆HouseAndroid技术知识Android开发经验谈
「Do.016」AndroidStudio不用编译,阅读Andr

「Do.016」AndroidStudio不用编译,阅读Andr

作者: 贤榆的榆 | 来源:发表于2018-10-28 17:37 被阅读52次
    image

    首发公众号:Android程序员日记
    作者:贤榆的榆
    如果你觉得有帮助欢迎关注、赞赏、转发
    阅读时间:2616字 6分钟

    写在前面

    很早就像自己搭一个Android源码阅读环境,折腾了几次无果,就搁置了。最近有点闲暇时间,再加上也觉得是时候更深刻的认识Android系统了,所以再折腾了一次,没想到成功了,而且是用AndroidStudio阅读,还是那个熟悉的界面,还是那个熟悉的快捷键,哈哈,你也试试?

    首先呢,之前有研究过用AndroidStudio阅读源码的,应该都知道,如果想用AS阅读Android源码差不多分这样四个步骤

    • Step 1: 下载源码
    • Step 2: 编译源码
    • Step 3: 用AS导入源码
    • Step 4: 阅读源码

    尝试过的朋友就知道,编译源码这个步骤应该是一个比较让人难过的过程。可能你的编译花的时间比你下载还长。不过在尝试了很多次之后,我也完美的搭好了AS阅读源码的环境。下面我就告诉大家如何做到不用编译就能导入AS阅读Android源码。

    Android源码阅读环境搭建

    1、下载初始化源码库

    AOSP(Android Open Source Project)初始化包下载地址:
    https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar
    将该网址复制到浏览器即可下载,迅雷好像不能使用,至少我的没用。另外需要注意的是,下载的过程中,不要合上电脑。我都下载了18g就因为合了一下电脑,结果就要从头再来了。

    当然源代码下载,除了直接下载这个初始化包,你也可以先装repo工具,然后用repo同步。反正无论是哪种方式,中间都不能断。
    关于源码下载更多信息可以查看下面两个网站:
    过清华大学开源软件镜像站:
    *https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ *
    google官网:
    https://source.android.com/source/downloading.html

    2、下载repo工具

    差不多下载最新的初始化包,你需要好几个小时,网速不好,甚至要10几个小时。那么在这个过程中我就可以把后面同步和检出代码需要的的repo工具安装一下,在命令行中执行如下代码,(我的是mac,win的话,大家可以google一下对应的教程,应该会有很多)

    mkdir ~/bin
    PATH=~/bin:$PATH
    curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    chmod a+x ~/bin/repo
    

    3、同步并检出源码项目

    下载完成以后会得到一个37g的以aosp-latest命名的tar文件,然后将其解压可以看到里面有一个.repo的隐藏文件(mac 下载查看隐藏文件的快捷键Command+Shift+ .

    接下来使用命令行进入到解压的根目录然后运行repo sync,然后就可以同步到最新的分支,并检出其master分支。

    当然你也可以不同步直接使用 repo sync -l 来检出repo里面的源码项目。
    检出后的效果是这样的:

    image

    4、关键一步——放入编译文件

    其实之所以需要编译,这个和我们的Android项目是一个道理,我们从github上拉下来的开源Android项目也是没有.iml等配置文件的,需要我们自己再编译一边,才能让这个项目里的个文件在AS关联起来。

    那么在这里之所以不用编译,不是真的无需编译。而是有一位简书ID是difcareer的小伙伴已经帮我们把各个版本需要的AS配置文件已经编译好,我们只需要将它下载下来放到项目的根目录就ok了。
    as配置文件git地址:
    https://github.com/difcareer/AndroidSourceReader

    注:
    如果你忘了自己源码检出的版本可以通过如下方式查看:
    根据目录'/build/core/version_defaults.mk' 打开version_defaults.mk文件,然后找到�PLATFORM_SDK_VERSION这个关键字的值,就可以在下表中找出相应的版本。

    image

    如果是28 当然就是Android 9.0了

    5、将源码项目导入到AS

    准备工作已经做完了下面就可以像导入一个Android项目一样导入AOSP目录了。进入AOSP目录选择被识别出来的.ipr文件,然后点击open即可。

    image

    这里有两个个问题需要注意一下:

    • 第一次导入的时候,可能你看到的只有那几个刚才放入的配置文件,而看不到其他的目录,这个时候需要点击File->Invalidate Cashes/Restart...,让AS重新启动编译一下项目。
      image
      这个编译的状态差不多会持续10几分钟。然后将右边文件目录切换到Project模式下:
      image
    • 如果出现循环执行任务Scanning file to index.... 不动
      image
      解决办法如下(Open module setting --> Modules --> 找到gen文件夹 --> 选择Resources
      image

    6、好了导入成功

    那么接下来我们就可以自由的翱游在Android源码的海洋了,让我们来看一下吧!


    image

    最后,要感谢一下「代码GG之家」的明哥,8年Android手机开发的老大哥。在源码阅读环境搭建和源码阅读方式与技巧上都给我很大的帮助。这里我把明哥在星球里的回答贴出来分享一下:

    image
    另外,我也强烈推荐明哥的「Android答疑解惑」星球。毕竟,成长的道路上,我们需要弄清的不是距离起点有多远,而是距离下一个终点有多近。我相信明哥会是那个让能够告诉你离终点有多近的人。

    推荐阅读

    系列文章

    其他

    欢迎大家关注我的公众号

    相关文章

      网友评论

        本文标题:「Do.016」AndroidStudio不用编译,阅读Andr

        本文链接:https://www.haomeiwen.com/subject/achmtqtx.html