SystemUI是android系统中的部分系统组件,以一个apk的形式存在,功能主要包括锁屏、任务管理、下拉通知栏、状态栏等。SystemUI虽然是一个apk,但是编译依赖源码环境,系列文章是将SystemUI拆分出来,最终可以在Android Studio中进行编译。
SystemUI独立编译(一)环境搭建
SystemUI独立编译(二)SystemUI源码编译
SystemUI独立编译(三)SystemUI拆分编译
SystemUI独立编译(四)SystemUI版本适配
第一篇介绍SystemUI基于源码的编译方式
一、Android源码下载与编译
建议使用ubuntu系统编译,以下是ubuntu新机器环境搭建流程
安装步骤:
1 首先安装ubunut16.04,一切配置按默认即可。
2. 切换源,建议切换为清华的源:
附件是源文件,可直接替换或自己手动修改source.list文件。
参考 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
Ubuntu 的软件源配置文件是 /etc/apt/sources.list
。将系统自带的该文件做个备份,将该文件替换为下面内容,即可。anyconnect-linux64-4.4.04030-predeploy-k9.tar.gz
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
3 安装android编译环境。
a安装基本的依赖软件:
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install lib32z-dev ccache
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install gawk
b 根据自己所下载的Android代码的版本,选择安装所需的jdk版本
Android版本是7.1.2,所需的JDK版本是openjdk-8-jdk。Ubuntu默认自带的openjdk-8-jdk的安装源,可以直接安装,使用下面的命令安装即可:
sudo apt-get update
sudo apt-get install openjdk-8-jdk
如果使用的OpenJDK7,由于Ubuntu 16.04没有OpenJDK7的源,因此要先添加源,然后在安装OpenJDK7,按下面的命令操作即可:
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-7-jdk
安装完以后,执行下面的命令添加JAVA_HOME相关配置
sudo gedit /etc/profile
在打开的profile文件的末尾添加下面的内容:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
修改了/etc/profile文件需要重启才能生效,但使用下面命令可以在不重启的情况下在当前bash环境生效:
source /etc/profile
最后,检查一下jdk是否安装成功:
java -version
下载android源码
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-8.1.0_r18
开启10个线程下载,注意:-j10
repo sync -j10
参考:https://www.jianshu.com/p/6fed8af8d11e