源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Ubuntu Android源码以及内核下载与编译

  • 时间:2021-10-13 19:59 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Ubuntu Android源码以及内核下载与编译
本教程是基于Ubuntu下Android6.0.1源码以及内核的下载和编译,记录一下,以后也就不用自己去找资料,一遍一遍的尝试了。可以翻墙的,英语好的,直接去AndroidSource. 系统环境:Ubuntu14.04LTS Android版本:6.0.1 重要网址 清华大学镜像 AndroidSource [b]下载前的准备[/b] 安装OpenJdk
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk
sudo update-alternatives --config java
java -version
[b]安装git[/b] sudo apt-get install git-core 安装额外的组建
sudo apt-get install gnupg flex bison gperf build-essential \
 zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \
 libgl1-mesa-dev libxml2-utils xsltproc unzip
组建 功能 介绍网址
gnupg 加密工具 [url=http://www.ruanyifeng.com/blog/2013/07/gpg.html]GPG入门教程[/url]
flex The Fast Lexical Analyzer [url=http://flex.sourceforge.net/]快速的语法分析工具[/url]
bison 用于自动生成语法分析器程序 [url=https://zh.wikipedia.org/wiki/GNU_bison]自动生成语法分析器程序[/url]
gperf 完美的散列函数生成器 [url=http://www.ibm.com/developerworks/cn/linux/l-gperf.html]使用 gperf 实现高效的 C/C++ 命令行处理[/url]
build-essential 编译内核中make menuconfig进图形编译 [url=https://github.com/chef-cookbooks/build-essential]build-essential[/url]
zip Linux 下zip包的压缩与解压 [url=http://www.cnblogs.com/chinareny2k/archive/2010/01/05/1639468.html]Linux 下zip包的压缩与解压[/url]
curl 网络请求和提取工具 [url=http://www.ruanyifeng.com/blog/2011/09/curl.html]curl网站开发指南[/url]
zlib1g-dev 用于发现gzip和PKZIP的工具 [url=https://launchpad.net/ubuntu/trusty/+package/zlib1g-dev]Binary package “zlib1g-dev” in ubuntu trusty[/url]
gcc-multilib 允许在64位机器中运行32位应用 [url=https://wiki.archlinux.org/index.php/multilib]multilib[/url]
g++-multilib 同上(g++编译工具) [url=https://packages.debian.org/wheezy/g++-multilib]多平台支持[/url]
libc6-dev-i386 Embedded GNU C Library: 32-bit development libraries for AMD64 [url=http://packages.ubuntu.com/precise/libc6-dev-i386]libc6-dev-i386[/url]
lib32ncurses5-dev 待完善 [url=https://jiangtaoquite.github.io/2016/07/24/Ubuntu%E4%B8%8BAndroid%E6%BA%90%E7%A0%81%E4%BB%A5%E5%8F%8A%E5%86%85%E6%A0%B8%E4%B8%8B%E8%BD%BD%E4%B8%8E%E7%BC%96%E8%AF%91/]待完善[/url]
x11proto-core-dev 待完善 [url=https://jiangtaoquite.github.io/2016/07/24/Ubuntu%E4%B8%8BAndroid%E6%BA%90%E7%A0%81%E4%BB%A5%E5%8F%8A%E5%86%85%E6%A0%B8%E4%B8%8B%E8%BD%BD%E4%B8%8E%E7%BC%96%E8%AF%91/]待完善[/url]
libx11-dev 待完善 [url=https://jiangtaoquite.github.io/2016/07/24/Ubuntu%E4%B8%8BAndroid%E6%BA%90%E7%A0%81%E4%BB%A5%E5%8F%8A%E5%86%85%E6%A0%B8%E4%B8%8B%E8%BD%BD%E4%B8%8E%E7%BC%96%E8%AF%91/]待完善[/url]
lib32z-dev 待完善 [url=https://jiangtaoquite.github.io/2016/07/24/Ubuntu%E4%B8%8BAndroid%E6%BA%90%E7%A0%81%E4%BB%A5%E5%8F%8A%E5%86%85%E6%A0%B8%E4%B8%8B%E8%BD%BD%E4%B8%8E%E7%BC%96%E8%AF%91/]待完善[/url]
ccache 待完善 [url=https://jiangtaoquite.github.io/2016/07/24/Ubuntu%E4%B8%8BAndroid%E6%BA%90%E7%A0%81%E4%BB%A5%E5%8F%8A%E5%86%85%E6%A0%B8%E4%B8%8B%E8%BD%BD%E4%B8%8E%E7%BC%96%E8%AF%91/]待完善[/url]
libgl1-mesa-dev 待完善 [url=https://jiangtaoquite.github.io/2016/07/24/Ubuntu%E4%B8%8BAndroid%E6%BA%90%E7%A0%81%E4%BB%A5%E5%8F%8A%E5%86%85%E6%A0%B8%E4%B8%8B%E8%BD%BD%E4%B8%8E%E7%BC%96%E8%AF%91/]待完善[/url]
libxml2-utils 待完善 [url=https://jiangtaoquite.github.io/2016/07/24/Ubuntu%E4%B8%8BAndroid%E6%BA%90%E7%A0%81%E4%BB%A5%E5%8F%8A%E5%86%85%E6%A0%B8%E4%B8%8B%E8%BD%BD%E4%B8%8E%E7%BC%96%E8%AF%91/]待完善[/url]
xsltproc 待完善 [url=https://jiangtaoquite.github.io/2016/07/24/Ubuntu%E4%B8%8BAndroid%E6%BA%90%E7%A0%81%E4%BB%A5%E5%8F%8A%E5%86%85%E6%A0%B8%E4%B8%8B%E8%BD%BD%E4%B8%8E%E7%BC%96%E8%AF%91/]待完善[/url]
unzip 待完善 [url=https://jiangtaoquite.github.io/2016/07/24/Ubuntu%E4%B8%8BAndroid%E6%BA%90%E7%A0%81%E4%BB%A5%E5%8F%8A%E5%86%85%E6%A0%B8%E4%B8%8B%E8%BD%BD%E4%B8%8E%E7%BC%96%E8%AF%91/]待完善[/url]
[b]下载[/b] 因为网络以及墙的原因,我们使用清华大学镜像,步骤如下: 下载repo工具
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
[b]下载源码[/b] wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包 tar xf aosp-latest.tar cd AOSP   # 解压得到的 AOSP 工程目录 # 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录 repo sync # 正常同步一遍即可得到完整目录 # 或 repo sync -l 仅checkout代码 [b]ps:总共25G,慢慢下吧![/b] 编译 进入AOSP根目录 初始化编译环境 . build/envsetup.sh 选择编译目标,选择1,所有选项的意思,后面更新 lunch 开始编译,这里使用了4个并发数: make -j4 使用打包工具mmm,完成命令后会在根目录下生成android.irp,用android studio打开一个现有项目,打开android.irp即可 mmm development/tools/idegen/ 运行当前版本的模拟器 将emulator源码目录加入PATH中 export PATH=&PATH:~/bin/AOSP/out/host/linux-x86/bin 设置源码编译输出目录 export ANDROID_PRODUCT_OUT=~/bin/AOSP/out/target/product/generic 运行emulator emulator [b]下载Android内核源代码[/b] 进入kernel目录,下载内核 git clone https://aosp.tuna.tsinghua.edu.cn/android/kernel/goldfish.git 进入goldfish目录,选择分支 cd goldfish git branch -a git checkout remotes/origin/android-goldfish-2.6.29 [b]编译Android内核源代码[/b] 将交叉编译工具目录添加到PATH环境变量中 export PATH=$PATH:~/bin/AOSP/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin 打开goldfish下Makefile修改配置文件,找到ARCH,CROSS_COMPILE,将其修改如下 ARCH      ?=arm CROSS_COMPILE  ?=/home/user/bin/AOSP/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/ arm-linux-androidkernel- note:一定要设为绝对路径。 生成配置文件以及编译 make goldfish_defconfig make 运行当前内核版本的模拟器 运行当前模拟器 emulator -kernel ./kernel/goldfish/arch/arm/boot/zImage 查看内核版本 adb shell cd proc cat version [b]BUG[/b] JDK内存溢出 FAILED: /bin/bash out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/dex-dir/classes.dex.rsp Out of memory error (version 1.2-rc4 'Carnac' (298900 f95d7bdecfceb327f9d201a1348397ed8a843843 by android-jack-team@google.com)). GC overhead limit exceeded. Try increasing heap size with java option '-Xmx<size>'. Warning: This may have produced partial or corrupted output. ninja: build stopped: subcommand failed. make: *** [ninja_wrapper] 错误 1 [b]A:[/b] export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g" ./prebuilts/sdk/tools/jack-admin kill-server ./prebuilts/sdk/tools/jack-admin start-server 以上就是对Android源码的下载,和编译,后续继续更新相关文章,谢谢大家对本站的支持!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部