Android 车载系统源码下载与编译

该文详细介绍了如何在Ubuntu系统中设置root权限,安装必要的软件包,下载并初始化repo工具,设置Android源码的获取源,以及编译AOSP源码的过程,包括同步源码和使用lunch选择编译目标。最后,提到了启动模拟器时遇到的警告和解决建议,并指出成为优秀架构师所需的能力和学习方向。
摘要由CSDN通过智能技术生成

ubuntu安装略…

  1. 打开终端,设置root密码切换root用户:
damon@damon-desktop:~$ sudo passwd root
[sudo] damon 的密码: 
输入新的 UNIX 密码: 
重新输入新的 UNIX 密码: 
passwd:已成功更新密码
damon@damon-desktop:~$ su
密码: 
root@damon-desktop:/home/damon#

  1. 安装软件包:
root@damon-desktop:/home/damon# apt-get install -y git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig openjdk-8-jdk vim 

  1. 源码下载

环境准备:

root@damon-desktop:/home/damon# snap install git-repo
git-repo 1.12.37-3 from Jim Hodapp (jhodapp) installed
root@damon-desktop:/home/damon# mkdir ~/bin
root@damon-desktop:/home/damon# PATH=~/bin:$PATH
root@damon-desktop:/home/damon# curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 45723  100 45723    0     0   214k      0 --:--:-- --:--:-- --:--:--  214k
root@damon-desktop:/home/damon# chmod a+x ~/bin/repo
root@damon-desktop:/home/damon# mkdir aosp_9
root@damon-desktop:/home/damon# cd aosp_9/
root@damon-desktop:/home/damon/aosp_9# export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'

修改repo的python版本:

root@damon-desktop:/home/damon/aosp_9# python3 --version
Python 3.6.9
root@damon-desktop:/home/damon/aosp_9# vim ~/bin/repo

第一行#!/usr/bin/env python 改为 #!/usr/bin/env python3
初始化repo:

root@damon-desktop:/home/damon/aosp_9# git config --global user.name damon
root@damon-desktop:/home/damon/aosp_9# git config --global user.email damon@kueredu.com
root@damon-desktop:/home/damon/aosp_9# repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-9.0.0_r61

Your identity is: damon <damon@kueredu.com>
If you want to change this, please re-run 'repo init' with --config-name

Testing colorized output (for 'repo diff', 'repo status'):
  black    red      green    yellow   blue     magenta   cyan     white 
  bold     dim      ul       reverse 
Enable color display in this user account (y/N)? y

repo has been initialized in /home/damon/aosp_9/
If this is not the directory in which you want to initialize repo, please run:
   rm -r /home/damon/aosp_9//.repo
and try again.

同步拉取Android 源码:

root@damon-desktop:/home/damon/aosp_9# repo sync -c -j8

编译源码:

root@damon-desktop:/home/damon/aosp_9# source build/envsetup.sh 
including device/generic/car/vendorsetup.sh
including device/generic/mini-emulator-arm64/vendorsetup.sh
including device/generic/mini-emulator-armv7-a-neon/vendorsetup.sh
including device/generic/mini-emulator-mips/vendorsetup.sh
including device/generic/mini-emulator-mips64/vendorsetup.sh
including device/generic/mini-emulator-x86/vendorsetup.sh
including device/generic/mini-emulator-x86_64/vendorsetup.sh
including device/generic/uml/vendorsetup.sh
including device/google/cuttlefish/vendorsetup.sh
including device/google/marlin/vendorsetup.sh
including device/google/muskie/vendorsetup.sh
including device/google/taimen/vendorsetup.sh
including device/linaro/hikey/vendorsetup.sh
including sdk/bash_completion/adb.bash
root@damon-desktop:/home/damon/aosp_9# lunch aosp_car_x86_64-userdebug

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=9
TARGET_PRODUCT=aosp_car_x86_64
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_ARCH=x86_64
TARGET_ARCH_VARIANT=x86_64
TARGET_2ND_ARCH=x86
TARGET_2ND_ARCH_VARIANT=x86_64
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-5.4.0-128-generic-x86_64-Ubuntu-18.04.6-LTS
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=PI
OUT_DIR=out
============================================
root@damon-desktop:/home/damon/aosp_9# make -j8
......
The new table will be used at the next reboot.
The operation has completed successfully.

#### build completed successfully (02:02:41 (hh:mm:ss)) ####

启动编译好的模拟器镜像:

root@damon-desktop:/home/damon/aosp_9# emulator
emulator: WARNING: Couldn't find crash service executable /home/damon/aosp_9/prebuilts/android-emulator/linux-x86_64/emulator64-crash-service

emulator: WARNING: system partition size adjusted to match image file (2562 MB > 800 MB)

emulator: WARNING: cannot read adb public key file: /root/.android/adbkey.pub
Your emulator is out of date, please update by launching Android Studio:
 - Start Android Studio
 - Select menu "Tools > Android > SDK Manager"
 - Click "SDK Tools" tab
 - Check "Android Emulator" checkbox
 - Click "OK"

模拟器运行界面:

模拟器运行界面

模拟器运行界面

也可以通过同一套源码编译多个目标产物,并同时保持多个目标的编译结果。可以在使用 lunch 命令设置新的编译目标前指定新的输出目录即可(默认为 out 目录):

export OUT_DIR=new_out

最后

如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。

如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。
在这里插入图片描述
相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。

全套视频资料:

一、面试合集

在这里插入图片描述
二、源码解析合集
在这里插入图片描述

三、开源框架合集
在这里插入图片描述
欢迎大家一键三连支持,若需要文中资料,直接扫描文末CSDN官方认证微信卡片免费领取↓↓↓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值