如何下载并导入Android系统源代码到Android Studio

下载源代码对于下载源代码这种操作,官方给的说明确实也是很详细。但是奈何GFW。所以用国内的源跑得比什么都快。网上也有很多教程,但是这些感觉是copy——因为它们都比不上国内源的网站上给的操作说明。国内有哪些Android的镜像源1. 中国科技大学2. 清华大学从上面的两个链接直接点进去便是帮助文档,

下载源代码

对于下载源代码这种操作,官方给的说明确实也是很详细。但是奈何GFW。所以用国内的源跑得比什么都快。网上也有很多教程,但是这些感觉是copy——因为它们都比不上国内源的网站上给的操作说明。

国内有哪些Android的镜像源

1. 中国科技大学

2. 清华大学

从上面的两个链接直接点进去便是帮助文档,跟着帮助文档一步一步走就OK了。但是我还是想偷一下懒。。。也许有一天我并不想点这两个链接,那就看下面吧。

下载步骤(同AOSP(Android) 镜像使用帮助)

按照 Google 官方教程 https://source.android.com/source/downloading.html,https://android.googlesource.com/platform/manifest 替换为 git://mirrors.ustc.edu.cn/aosp/platform/manifest

具体做法摘录如下(以防墙抽风):

1. 首先下载 repo 工具。

mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

如果上述 URL 不可访问,可以用下面的: curl https://storage-googleapis.proxy.ustclug.org/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo

2. 然后建立一个工作目录(名字任意)

mkdir WORKING_DIRECTORYcd WORKING_DIRECTORY

3. 初始化仓库:

repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest

如果提示无法连接到gerrit.googlesource.com,可以编辑 ~/bin/repo,把 REPO_URL 一行替换成下面的: REPO_URL = 'https://gerrit-googlesource.proxy.ustclug.org/git-repo'如果需要某个特定的 Android 版本(Android 版本列表): repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-4.0.1_r1

4. 同步源码树(以后只需执行这条命令来同步):

repo sync

5. 已有仓库如何改用科大源

如果您已经从官方同步了 AOSP 仓库,现在希望使用科大的 AOSP 仓库,请修改.repo/manifests.git/config,将 url = https://android.googlesource.com/platform/manifest修改成 url = git://mirrors.ustc.edu.cn/aosp/platform/manifest即可。

导入到 Android Studio

之前弄过一次,过了这么久再弄时就已经忘记得差不多了,特地记下来。经过这样的配置之后,可以实现点击一些类时进行跳转。R文件还是没有搞定,其中的资源还是无法进行跳转,不过这样基本上已满足工作上的需求。

修改AS配置文件

在AS的bin目录下,打开studio64.vmoptions文件,修改成如下数值:

-Xms1024m
-Xmx1024m

大一些应该也没关系。

生成AS项目配置文件

1、首先全局编译一次。 2、查看out/host/linux-x86/framework/idegen.jar是否存在; 若已不存在,先执行下面命令以生成它:

source build/envsetup.sh
lunch [选择刚全局编译时的参数]
mmm development/tools/idegen/

3、执行以下命令以生成所需配置文件。

development/tools/idegen/idegen.sh

导入系统源代码至AS

1、此时在根目录下,就已经生成了android.ipr、android.iml,可以将整个源代码导入AS。 2、(可选)设置模块过滤 有些不想导入AS的模块,可以通过在android.iml中加入excludeFolder,达到过滤效果。

<excludeFolder url="file://$MODULE_DIR$/.repo"/>
<excludeFolder url="file://$MODULE_DIR$/abi"/>
<excludeFolder url="file://$MODULE_DIR$/frameworks/base/docs"/>
<excludeFolder url="file://$MODULE_DIR$/art"/>
<excludeFolder url="file://$MODULE_DIR$/bionic"/>
<excludeFolder url="file://$MODULE_DIR$/bootable"/>
<excludeFolder url="file://$MODULE_DIR$/out"/>
<excludeFolder url="file://$MODULE_DIR$/pdk"/>
<excludeFolder url="file://$MODULE_DIR$/prebuilts"/>
<excludeFolder url="file://$MODULE_DIR$/sdk"/>
<excludeFolder url="file://$MODULE_DIR$/system"/>
<excludeFolder url="file://$MODULE_DIR$/tools"/>
<excludeFolder url="file://$MODULE_DIR$/trusty"/>
<excludeFolder url="file://$MODULE_DIR$/vendor"/>
...

3、第一次导入时间有点长,耐心等待

配置AS的JDK、SDK

下面的这些操作,是为了让在看代码的时候,能够自由、正确地显示、跳转到相应的地方。 在上一步操作之后的等待期间刚好让我们来配置一下JDK和SDK。 在AS中参照下图Project Structure设置,在SDKs设置中加入必须的JDK,SDK。 创建一个新的JDK,可以取名为1.7(No Libraries),然后删除classpath标签页下面的jar文件。 这样可以确保使用Android源码里的库文件。

图片1

之后将1.7(No Libraries)作为Android SDK要使用的Java SDK。如下图

图片2

之后在Project标签中的Project SDK中选择对应的Android API版本。

图片3

结果

还没弄得太好,R文件还没导入,不过感觉这个不是很重要。

图片4

参考: http://blog.csdn.net/heqiangflytosky/article/details/62236001http://blog.csdn.net/aaa111/article/details/43227367http://blog.csdn.net/murphykwu/article/details/52117907https://www.cnblogs.com/qianxudetianxia/p/3721202.html导入Eclipse可以参考罗升阳的PPT简略文档: https://wenku.baidu.com/view/2d820c973b3567ec112d8a91.html

Read more

Volcano 与 Kubernetes GPU 调度学习笔记

本笔记系统整理 Volcano 调度器、Kubernetes 调度框架、GPU Device Plugin、HAMi 等云原生 AI 调度领域的核心知识,适合用于学习、复习和工程实践参考。 目录 * 第一部分:Volcano 入门 * 1. Volcano 是什么 * 2. 安装与快速使用 * 3. 核心特性一览 * 第二部分:Volcano 整体架构 * 4. Volcano 解决的核心问题 * 5. 整体架构与数据流 * 6. 三层抽象模型 * 第三部分:Volcano 核心实现原理 * 7. Session 机制 * 8. Gang Scheduling 实现 * 9. Queue 与 DRF 公平调度

容器镜像(4):镜像的常用工具箱

容器镜像(4):镜像的常用工具箱

前几篇在讲多架构镜像时已经用过 skopeo 和 crane 做镜像复制,这篇系统整理这两个工具的完整能力,同时介绍几个日常操作镜像时同样好用的工具。 一、skopeo:不依赖 Daemon 的镜像瑞士军刀 skopeo 的核心价值是绕过 Docker daemon,直接与 Registry API 交互。上一篇用它做镜像复制和离线传输,但它的能力远不止于此。 1.1 安装 # Ubuntu / Debian sudo apt install -y skopeo skopeo --version # skopeo version 1.15.1 1.2 inspect:免拉取检查镜像元数据 docker inspect 需要先把镜像拉到本地,skopeo inspect 直接向 Registry

容器镜像(3):多架构镜像构建

容器镜像(3):多架构镜像构建

一、什么是多架构镜像 1.1 OCI Image Index 上一篇介绍了单平台镜像的结构:一个 Manifest 指向 Config 和若干 Layer blob。多架构镜像在此之上多了一层——OCI Image Index(也叫 Manifest List),是一个轻量的索引文件,把多个单平台 Manifest 组织在一起: $ docker manifest inspect golang:1.22-alpine { "schemaVersion": 2, "mediaType": "application/vnd.oci.image.index.v1+json", "manifests&

容器镜像(2):containerd 视角下的镜像

容器镜像(2):containerd 视角下的镜像

一、为什么需要了解 containerd 如果你只用 docker run 跑容器,从来不关心底层,那可以不了解 containerd。但如果你在用 Kubernetes,或者想真正理解"容器运行时"是什么,containerd 是绕不开的。 事实上,当你执行 docker run 的时候,containerd 早就在后台悄悄工作了——Docker 从 1.11 版本开始,就把核心运行时剥离出来交给 containerd 负责。 1.1 Docker 的架构演变 早期的 Docker(1.10 及之前)是一个"大一统"的单体程序:一个 dockerd