Android笔记之:CM9源码下载与编译的应用攻略
前言
本篇攻略旨在介绍如何下载和编译基于CM9的Android系统源代码,涵盖了代码下载、环境搭建、编译及常见问题解决等内容,适用于Android开发者和爱好者。
步骤一:源码下载
- 安装必要的软件:Git和repo。
Git是一个版本控制工具,repo是谷歌提供的用于管理大型代码库的脚本。
```shell
sudo apt-get install git-core
mkdir ~/bin
export PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
```
- 配置Git用户名和邮箱
shell
git config --global user.name "Your Name"
git config --global user.email "youremail@example.com"
- 创建工作目录并下载源码
shell
mkdir CM9
cd CM9
repo init -u git://github.com/CyanogenMod/android.git -b ics
repo sync -j16
这里我们将源码下载到了名为CM9的目录中,选择了分支为ics(即Android 4.0.x版本),同时使用-j16选项下载更快。
步骤二:环境搭建
- 安装必要的编译工具和依赖库
shell
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
- 配置Java环境变量
安装Java Development Kit 6:
shell
sudo apt-get install openjdk-6-jdk
配置Java环境变量,在~/.bashrc文件中添加以下内容:
shell
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
export PATH=$JAVA_HOME/bin:$PATH
使环境变量立即生效:
shell
source ~/.bashrc
- 配置设备驱动
如果你需要编译某个特定厂商的设备驱动,则需根据其提供的具体规范进行操作。这里以Samsung Galaxy Nexus为例,首先需要下载设备驱动并解压到任意目录下。
shell
curl -L -O https://dl.google.com/dl/android/aosp/yakju-jop40d-factory-279d6015.tgz
tar zxvf yakju-jop40d-factory-279d6015.tgz
将解压得到的目录下的“android_info.txt”内容复制到源代码目录下,并执行命令绑定驱动:
shell
cp -r ./yakju-jop40d/ ~/android/system/device/samsung/maguro
cd ~/android/system/
source build/envsetup.sh
lunch full_maguro-eng
步骤三:编译源码
- 预编译
shell
source build/envsetup.sh
lunch
选择目标编译设备
- 执行编译
shell
make -j16
-j16选项表示使用16个进程并行编译,以加快编译速度。
- 查看输出结果
如果一切正常,编译过程会在终端显示出大量的信息和日志。成功编译后的输出结果可以在out目录下找到。其中,产生的系统镜像文件通常位于out/target/product目录下。
常见问题解决
- 编译中发生如下错误:
shell
target Required: libz
解决办法:
shell
sudo apt-get install lib32z1 lib32z1-dev
- 编译中发生如下错误:
shell
mkdir: 无法创建目录“out/target/product/generic_x86/system/lib/egl”: 没有那个文件或目录
解决办法:
shell
mkdir -p out/target/product/generic_x86/system/lib/egl
示例
- 编译Google Nexus 7
shell
cd ~/CM9/
repo init -u https://github.com/CyanogenMod/android.git -b cm-9.0
repo sync
source build/envsetup.sh
lunch
选择“aosp_grouper-eng”并开始编译:
shell
make -j4
- 编译Amazon Kindle Fire
shell
cd ~/CM9/
git clone http://github.com/CyanogenMod/android_device_amazon_otter device/amazon/otter
source build/envsetup.sh
lunch
选择“full_otter-userdebug”并开始编译:
shell
make -j4
以上就是完整的Cm9源码下载与编译的应用攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android笔记之:CM9源码下载与编译的应用 - Python技术站