跳转至

ANDROID_SDK 编译

SDK(Software Development Kit,软件开发工具包)是一套为特定软件框架、硬件平台或操作系统提供的开发工具集合,旨在帮助开发者更高效地创建应用程序。

编译环境配置

在PC上安装Ubuntu,进行SDK编译。

  • 硬件:PC满足RAM ≥ 16 GB,CPU core ≥ 4,Hard Drive ≥ 500GB

  • 软件:Ubuntu 22.04,虚拟机磁盘空间分配 ≥ 200GB

配置安装

sudo apt-get update
sudo apt install autoconf bc binfmt-support bison build-essential bzip2
sudo apt install chrpath cmake cpp-aarch64-linux-gnu curl device-tree-compiler diffstat
sudo apt install expat expect expect-dev fakeroot flex
sudo apt install g++ g++-multilib gawk gcc gcc-multilib git gnupg gperf gpgv2 imagemagick
sudo apt install lib32ncurses5-dev lib32readline-dev lib32z1-dev libgmp-dev 
sudo apt install libgucharmap-2-90-dev liblz4-tool libmpc-dev
sudo apt install libncurses5-dev libsdl1.2-dev libssl-dev libwxgtk3.0-gtk3-dev 
sudo apt install libxml2 libxml2-utils live-build lzop
sudo apt install make module-assistant ncurses-dev openjdk-8-jdk 
sudo apt install patchelf pngcrush python2 python-is-python3 python-pip
sudo apt install qemu-user-static rsync schedtool squashfs-tools ssh sudo 
sudo apt install texinfo u-boot-tools unzip
sudo apt install xsltproc yasm zip zlib1g-dev pip
sudo pip install pyelftools
sudo ln -s /usr/bin/python2 /usr/bin/python

获取 SDK 源码

Note

1.SDK不可放在共享目录下编译。
2.编译主机不可用ROOT账号登陆

1.Android SDK 源码下载,release_sdk.sh 脚本下载,通常选择日期后缀最新的文件。

2.存放 tar.gz、md5sum、release_sdk.sh 文件到编译主机同一级目录下。

rk-android13.0-*.tar.gz
rk-android13.0-*.md5sum
release_sdk.sh

3.运行脚本还原 SDK 源码

chmod +x ./release_sdk.sh
./release_sdk.sh

示意图

K7_RESET_SDK

完整编译

1.进入编译主机的代码路径,执行如下命令配置编译目标;

./build.sh lunch

根据板卡型号和SOC选择配置文件。

主板 SOC 配置文件
K1 rk3568 BoardConfig-rk3568-kickpi-k1.mk
K1B rk3568 BoardConfig-rk3568-kickpi-k1b.mk
K3 rk3562 BoardConfig-rk3562-kickpi-k3.mk
K8 rk3588 BoardConfig-rk3588-kickpi-k8.mk

K1 配置示例:

./build.sh lunch
will lunch sdk

You're building on Linux
Lunch menu...pick a combo:

1. rk356x
2. rk3588
3. rk3562
Which would you like? [0]: 1

You're building on Linux
Lunch menu...pick a combo:

1. BoardConfig-rk3566-kickpi-tx66.mk
2. BoardConfig-rk3568-kickpi-k1.mk
3. BoardConfig-rk3568-kickpi-k1b.mk
4. BoardConfig.mk
Which would you like? [0]: 2
switching to board: /home/work/rockchip/rk-android13.0/device/rockchip/rk356x/BoardConfig-rk3568-kickpi-k1.mk

2.完整镜像编译。

./build.sh -AUCKu

单独编译

编译多屏识别镜像

./build.sh -UCKAum

单编Uboot

./build.sh -Uu

单编安卓

./build.sh -Au

单编kernel

./build.sh -CKu

配置 Kernel defconfig

./build.sh -M

常见问题

  • 由于代码位置变化,路径错误导致 android 编译错误?

先清除数据,然后重新编译

source build/envsetup.sh
lunch rk3568_t-userdebug
make clean -j32
  • 编译空间不足?

目前默认线程 -j32,通过降低线程数进行编译,编译方式添加带 -J 线程

如: 修改线程为1,-J1
./build.sh -AUCKu -J1