以下仅作为公司项目下载过程记录,仅供参考。针对个人对AOSP源码下载过程,建议查看 https://source.android.google.cn/source/downloading

Gerrit环境搭建

1.生成SSH Key以及设置git用户名邮箱
$git config --global user.name "test"
$git config --global user.email "test@chinatsp.com"
$git config --global user.group media/system/bsp/hmi      是哪个组就配置哪个组,比如是HMI组,就设置hmi

可以通过git config --list查看是否设置正确

  • 查看配置成功
    $ssh -p 29418 test@10.100.193.154
  • 成功则显示
**** Welcome to Gerrit Code Review ****

Hi Jenkins, you have successfully connected over SSH.

Unfortunately, interactive shells are disabled.
To clone a hosted Git repository, use:

git clone ssh://test@10.100.193.154:29418/REPOSITORY_NAME.git
  • 如果不成功,报错incorrect signature
    1.在git的安装目录下找到\etc\ssh\ssh_config文件添加一行:HostKeyAlgorithms ssh-rsa
    2.删除.ssh\known_hosts这个hosts文件
2.下载仓库
  • 安装repo
    从\10.100.193.29\Public\2_Software\1_repo目录下拷贝repo文件到usr\bin目录下
    增加权限 chmod a+x repo
    注: 安装repo可以参考安装 Repo
  • 安装Android编译环境
    1、安装JDK,分别执行以下命令
$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk

2、切换java版本

$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac

3、安装相关的依赖包

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib 
 sudo apt-get install libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
  • 初始化及同步代码
repo init -P [项目]
repo sync -c --no-tags -j2
可能出现的问题解决

/usr/bin/env: “python”: 没有那个文件或目录

File “.repo/repo/main.py”, line 79
file=sys.stderr)
^
SyntaxError: invalid syntax

第一个问题可能是没有安装Python,安装Python2.7
第二个问题可能是同一个系统存在多个python版本,比如python2.7 和 python3.8,因为repo对应的是python2.7版本的,但是系统默认是用python3.8版本的去运行的,因此需要指定一下默认执行的python版本,通过配置软链接

sudo apt-get install python2.7

### 找Python2.7位置
whereis python2.7

#配置软连接
ln -s /usr/bin/python2.7 /usr/bin/python
  • 安装所需的安装包
sudo apt-get install lib32stdc++6
sudo apt-get install bison
sudo apt-get install m4
sudo apt-get install libxml2-utils
sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential chrpath libsdl1.2-dev xterm subversion cvs dos2unix lzop gcc-multilib g++-multilib libglib2.0-dev ia32-libs lib32gcc1 libc6-i386 lib32z1 lib32stdc++6 lib32ncurses5 lib32gomp1 lib32z1-dev lib32bz2-dev
sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
sudo apt-get install xutils-dev libtool texinfo chrpath libsdl1.2-dev automake flex libssl-dev texinfo chrpath python-dev
sudo apt install curl
编译Android

使用cd 命令,切换目录,最终切换到代码的\项目\lagvm\lagvm\LINUX\android
使用 envsetup.sh 脚本初始化环境:

source build/envsetup.sh

执行完了之后在执行 lunch

然后让你输入 ,你就输入35—具体看lunch后的分支情况
然后在执行 make update-api -j2 && make -j2 执行上面那个 没有问题,也执行完成了就执行

mmm development/tools/idegen/ && ./development/tools/idegen/idegen.sh

其中mmm development/tools/idegen/执行完成后会生成idegen.jar,而sodo ./development/tools/idegen/idegen.sh则会在源码目录下生成IEDA工程配置文件:android.ipr,android.iml及android.iws.

简单的说明一下这三个文件的作用:

  • **android.ipr:**通常是保存工程相关的设置,比如编译器配置,入口,相关的libraries等
  • **android.iml:**则是主要是描述了modules,比如modules的路径,依赖关系等.
  • **android.iws:**则主要是包含了一些个人工作区的设置.

看到以下类似信息则说明成功:

make completed successfully (7 seconds) 

Read excludes: 21ms
Traversed tree: 194799ms

到目前为止,我们就完成了源码准备工作.

导入源代码

编译成功后,现在我们就可以将源码导入Android Studio了.但是在导入之前,我们先修改一下Android studio的配置:32位系统下修改idea.vmoptions,64位下修改idea64.vmotions
调整其中的-Xms和-Xmx参数值,官方要求至少在748m以上,根据实际情况进行配置即可.
然后进入android-studio目录下的bin文件夹,执行如下命令启动Android Studio
./studio.sh

导入源码

File->New->Import project->进入对应的目录-->点击配置文件 android.ipr即可

android Gson超大_ide