编译指南
1.环境准备
1.1 编译服务器
系统版本:Ubuntu 22.04.3 LTS
系统架构:x86*_64*
使用自己的用户账号
1.2 网络要求
保证服务器正常联网,以确保可以正常gradle编译和下载开源软件。
1.3 AOSP环境搭建
获取AOSP源码,上传至~/ARMNative目录下并解压
cd ~/ARMNative
tar -xvf aosp11r48.tar1.4 项目代码下载
编译完整的视频流二进制包需要下载本仓库和VMIEngine仓库。
git clone https://gitcode.com/boostkit/vmi.git
git clone https://gitcode.com/boostkit/VMIEngine.git切换到15分支
cd ~/ARMNative/vmi
git checkout CloudPhone15
cd ~/ARMNative/VMIEngine
git checkout dev_aosp151.5 安装编译环境
进入vmi源码目录下执行auto_install_tools.sh,如果想了解各脚本的具体实现细节,请参考编译脚本介绍文档
cd ~/ARMNative/vmi
./scripts/auto_install_tools.sh ${安装目录}
source ~/.bashrc 其中,{安装目录},则脚本使用默认目录~/NativeCompileToolsDir。
并在~/.bashrc中添加以下环境变量:
# android
export AN_AOSPDIR=/home/newdisk/XXX/ARMNative/aosp11 # 改成实际存放aosp11源码的绝对路径
export AN_AOSPOUT=${AN_AOSPDIR}/out更新后source使其生效
source ~/.bashrc1.6 ccache配置
配置ccahe加快编译速度,查看本地ccache安装位置
sudo apt install ccache
which ccache在.bashrc中配置环境变量
export NDK_CCACHE=ccache
export CCACHE_DIR=~/.ccache
export PATH={ccache安装位置}:$PATH # 例如export PATH=/usr/bin:$PATH
export USR_CCACHE=1更新后source使其生效
source ~/.bashrc软链接所有的gcc和g++到ccache上
cd /usr/bin # ccache安装位置
ln -s ccache /usr/bin/gcc
ln -s ccache /usr/bin/g++
ln -s ccache /usr/bin/cc
ln -s ccache /usr/bin/c++2.编译AOSP源码
2.1 安装依赖库
下载必要依赖,如果已安装,跳过即可
sudo apt install -y git
sudo apt install -y libtool automake tclsh make openjdk-11-jdk git-core gnupg
sudo apt install -y flex bison gperf build-essential zip curl zlib1g-dev
sudo apt install -y gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev
sudo apt install -y x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev
sudo apt install -y libxml2-utils xsltproc unzip
sudo apt install -y libx11-dev libreadline-dev
sudo apt install -y libncurses5 libncurses5-dev
sudo apt install -y tofrodos python-markdown-doc zlib1g-dev
sudo apt install -y dpkg-dev libsdl1.2-dev
sudo apt install -y m4 bc python3 python3-mako gettext
sudo apt install -y expect2.2 编译源码
进入安卓源码目录,执行如下编译指令
cd ~/ARMNative/aosp11
source build/envsetup.sh
lunch aosp_arm64-eng
make -j【线程数】3.编译视频流
编译前需设置如下环境变量,不建议写入~/.bashrc中,每次编译前设置即可。
# 视频流15的版本依然用aosp11去编译即可
export ANDROID_VERSION=113.1 编译客户端
cd ~/ARMNative/vmi
./build_video.sh video_client命令执行成功后,将在output目录生成CloudPhoneApk.tar.gz和已解压好的CloudPhone.apk
3.2 编译服务端
cd ~/ARMNative/vmi
./build_video.sh video_server命令执行成功后,将在output目录生成DemoVideoEngine.tar.gz
3.3 编译二进制
cd ~/ARMNative/VMIEngine
./build.sh build VideoEngine命令执行后,将在output/native/release_imgs/下生成VideoEngine.tar.gz