前言

最近因为找工作,需要频繁查阅Android源码。因此,打算在本地硬盘上下载Android源码,通过Android Studio来阅读。

  • Android 源码构建:https://source.android.com/setup【建议直接阅读该文档】
  • Android - AOSP源码编译和调试

操作流程

配置硬盘

由于我使用的是MacOS,所以仅提供MacOS的配置流程。

  1. 打开Disk Utility
  2. File -> New Image -> Blank Image
  3. 按照下图配置一块200G,区分大小写的磁盘分区。
    • 一定要区分大小写,否则下载源码后,占用空间极大。
    • 区分大小写后,Android 12的源码大小为139GB;不区分大小写,占用空间超过700GB。

下载源码

下载Android系统源代码:建议按照清华大学开源软件镜像站文档下载源码。

  • 如果需要下载指定版本的源码,tag可见:源代码标记和 build

  • 清华大学开源软件镜像站:Android 镜像使用帮助
  • LUG @ USTC:AOSP(Android) 镜像使用帮助

生成

  • 初始化环境变量:source build/envsetup.sh
  • 编译,生成idegen.jarmmm development/tools/idegen/
  • 生成android.iwsandroid.iprandroid.imlsh ./development/tools/idegen/idegen.sh

排除部分模块

打开android.iml,提前添加如下内容,提高加载Android源码工程的速度。

<excludeFolder url="file://$MODULE_DIR$/.repo" />
<excludeFolder url="file://$MODULE_DIR$/abi" />
<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$/external/bluetooth" />
<excludeFolder url="file://$MODULE_DIR$/external/chromium" />
<excludeFolder url="file://$MODULE_DIR$/external/emma" />
<excludeFolder url="file://$MODULE_DIR$/external/icu4c" />
<excludeFolder url="file://$MODULE_DIR$/external/jdiff" />
<excludeFolder url="file://$MODULE_DIR$/external/webkit" />
<excludeFolder url="file://$MODULE_DIR$/frameworks/base/docs" />
<excludeFolder url="file://$MODULE_DIR$/hardware" />
<excludeFolder url="file://$MODULE_DIR$/libcore" />
<excludeFolder url="file://$MODULE_DIR$/libnativehelper" />
<excludeFolder url="file://$MODULE_DIR$/ndk" />
<excludeFolder url="file://$MODULE_DIR$/out" />
<excludeFolder url="file://$MODULE_DIR$/out/eclipse" />
<excludeFolder url="file://$MODULE_DIR$/out/host" />
<excludeFolder url="file://$MODULE_DIR$/out/target/common/docs" />
<excludeFolder url="file://$MODULE_DIR$/out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates" />
<excludeFolder url="file://$MODULE_DIR$/out/target/product" />
<excludeFolder url="file://$MODULE_DIR$/packages" />
<excludeFolder url="file://$MODULE_DIR$/pdk" />
<excludeFolder url="file://$MODULE_DIR$/prebuilt" />
<excludeFolder url="file://$MODULE_DIR$/prebuilts" />
<excludeFolder url="file://$MODULE_DIR$/sdk" />
<excludeFolder url="file://$MODULE_DIR$/system" />
<excludeFolder url="file://$MODULE_DIR$/tools" />

附录

  • Mac 中下载阅读 Android 源码
  • Android Studio导入系统源码及配置

国内源

  • 清华大学开源软件镜像站

调试Framework

  • 五、调试 Android Framework

Android aosp源码阅读相关推荐

  1. Android Framework源码阅读计划(2)——LocationManagerService.java

    Android Framework源码阅读计划 Android Framework源码阅读计划(1)--LocationManager.java Android Framework源码阅读计划(2)- ...

  2. Android AOSP 源码 编译 android5.1.1,并刷入手机

    必备: linux(本次使用centos7) aosp(android5.1.1) 二进制驱动(官网下载) 设备:nexus5 LMY48M openjdk 1.7.x centos和ubuntu基本 ...

  3. Android Pie源码阅读 -----深入理解init(一)

    在阅读源码之前,我们应要熟悉整个Android的系统架构,在针对某一层进行深入理解,否则东看西看没有方向没有目标会导致思绪紊乱,这样读源码的效果不佳 这篇文章主要参考gityuan阅读Android ...

  4. android sensor源码,阅读android有关sensor的源码总结 - JerryMo06的专栏 - CSDN博客

    虽然这篇文章写得很差,因为赶时间,所以就匆匆忙忙地写出来自己作一个笔记.但是我想对大家应该有一点帮助. 1.有关sensor在Java应用程序的编程(以注册多个传感器为例,这程序是我临时弄出来的,可能 ...

  5. Android Linkage-RecyclerView源码阅读

    当前版本 1.9.2 项目地址 概述 自定义LinkageRecyclerView控件,该控件布局中含有两个RecyclerView控件,左边为主Rv,右边为次Rv. 次Rv顶部有一个悬挂头View, ...

  6. ubuntu-18.04.4 Android系统源码TP1A(Android 13)下载及编译

    继上一篇博客介绍了VMware Workstation15 配置ubuntu-18.04.4,这篇主要介绍安装后环境搭建,Android源码的下载与编译.小编当前下载的是当前最新的代码,是主干分支代码 ...

  7. Mac下编译Android源码,并导入IntelliJ IDEA进行源码阅读

    macOS High Sierra 版本 10.13.4 Xcode 9.3 aosp分支:android-8.1.0_r20 准备编译环境 具体参考官方文档 安装 jdk8u45 or newer ...

  8. Android系统源码在线阅读(Android4.4~Android13.0)

    原文链接 ​Android系统源码在线阅读(Android4~Android13) Android系统源码下载.编译.刷机 玩转Android10(二)刷机操作 Android系统镜像刷机方法(一) ...

  9. 大牛们是怎么阅读 Android 系统源码的?

    转载自https://www.zhihu.com/question/19759722 作者:王宇龙 链接:https://www.zhihu.com/question/19759722/answer/ ...

最新文章

  1. ​5G行业应用成熟度洞察,哪些场景将率先起飞?|新基建技术洞察之
  2. mysql题目_MySQL练习题
  3. mysql_real_escape_string 报错_addslashes与mysql_real_escape_string的区别
  4. 安卓逆向_15( 二 ) --- Android Studio 3.6.3 JNI 环境配置 和 so 生成开发 demo
  5. debugging Auto Layout:Logical Errors
  6. 简历避免采坑总结——为什么你的简历杳无音信?程序员的简历该怎么写?看这一篇就够了!毕业生快进 (待更新)
  7. jquery学习系列8(过滤选择器)
  8. DeepMind 用 GAN 虚构视频真假难辨【智能行业热点】(2019.7.22)
  9. 开源DataGridView扩展(6) 简单实现checkbox行选级联。
  10. 贴片二极管正负极如何区分
  11. 高职高专院校人才培养工作水平评估工作感想
  12. did拼接屏最小拼缝0.88mm
  13. 微带线和带状线的SIEMC分析以及对DDR等长设置的影响
  14. 校验国内外的座机和手机号码
  15. 游戏开发中字典数据的优化方案 golang版本
  16. 12306 java程序_基于java httpclient的12306 买票软件
  17. python-regex-thread-localhost
  18. 踩坑:重写了alert方法,在点击事件中调用苹果手机不兼容
  19. 微信链接防拦截跳转系统 微信域名防屏蔽技术
  20. Android4.4之后SD卡存储方案

热门文章

  1. 带有详细书签的IT电子书大全
  2. 如何使用WordPress建立亚马逊会员商店
  3. 国科大学习资料--最优化计算方法(王晓)--期末考试试卷历年题按题型汇总
  4. SpringBoot - OAuth2第三方登录之新浪微博登录
  5. 国密SSL通信协议详细介绍与抓包分析
  6. iOS开发最新最全微信第三方登录接入流程
  7. 玩转全球最大同性交友网站--- 开源社区GitHub
  8. 打印网页时去掉标题、页码、网页地址方法
  9. 电子硬件工程师要求?
  10. 今日新网络舆情信息监测收集技术解决办法