在Ubuntu上下载、编译和安装Android源代码

工具的安装:

1.右键终端:shanl@ubuntu:~$ sudo apt-get install nautilus-open-terminal

2.安装vim :shanl@ubuntu:~$ sudo apt-get install vim

vim的设置:shanl@ubuntu:~$ gedit .vimrc

下面是我的配置:

set helplang=cn
set langmenu=zh_CN.UTF-8
set encoding=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
set nocompatible

syntax enable
syntax on

colorscheme desert 

set mouse=a
set selection=exclusive
set selectmode=mouse,key

set showmatch

set autoindent
set cindent
set tabstop=4
set number

set nobackup
set noswapfile

set hlsearch
set incsearch

set autochdir

set tags=/home/shanl/idh.code
cs add /home/shanl/idh.code/cscope.out /home/shanl/idh.code

syn match   cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2
syn match   cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1
hi cFunction        gui=NONE guifg=#B5A1FF

syn match       cMathOperator     display "[-+\*/%=]"
syn match       cLogicalOperator  display "=="
syn match       cBinaryOperator   display "\(&\||\|\^\|<<\|>>\)=\="
syn match       cBinaryOperator   display "\~"
syn match       cBinaryOperatorError display "\~="
syn match       cLogicalOperator  display "&&\|||"
syn match       cLogicalOperatorError display "\(&&\|||\)="

hi cMathOperator            guifg=#3EFFE2
hi cPointerOperator         guifg=#3EFFE2
hi cLogicalOperator         guifg=#3EFFE2
hi cBinaryOperator          guifg=#3EFFE2
hi cBinaryOperatorError     guifg=#3EFFE2
hi cLogicalOperator         guifg=#3EFFE2
hi cLogicalOperatorError    guifg=#3EFFE2

syn keyword cType       My_Type_1 My_Type_2 My_Type_3

set cscopequickfix=s-,c-,d-,i-,t-,e-

nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR>


环境的搭建:

1.安装Git工具:shanl@ubuntu:~$ sudo apt-get install git-core gnupg

2.安装Java SDK:

shanl@ubuntu:~$ sudo add-apt-repository ppa:ferramroberto/java

shanl@ubuntu:~$ sudo apt-get install sun-java6-jre sun-java6-plugin

有可能会出现一些错误,解决:

sudo gedit /etc/apt/sources.list添加:deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse

再执行sudo apt-get update即可

shanl@ubuntu:~$ sudo apt-get install sun-java6-jdk

64bit ubuntu我使用的包:jdk1.6.0_37_64bit.tar放在Env目录下:

解压:获取jdk的路径:/home/shanl/Env/jdk1.6.0_37

在.bashrc中设置环境变量:

export JAVA_HOME=/home/shanl/Env/jdk1.6.0_37
export ANDROID_JAVA_HOME=$JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH

使用java -version进行测试。

shanl@ubuntu:~$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01, mixed mode)
3.安装其他包:shanl@ubuntu:~$ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl

4.安装调试工具:shanl@ubuntu:~$ sudo apt-get install valgrind

Android源码下载:

一、下载repo工具

1.shanl@ubuntu:~$ wget https://dl-ssl.google.com/dl/googlesource/git-repo/repo

2.shanl@ubuntu:~$ chmod 777 repo
3.shanl@ubuntu:~$ sudo cp repo /bin/

二、Android源码下载:目前我手头上面有一份。具体下载方法可以参考网上各位大神。

三、编译:

make

编译错误解决:

错误1

/bin/bash: prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: 没有那个文件或目录
/bin/bash: prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: 没有那个文件或目录
find: `frameworks/base/frameworks/base/docs/html': 没有那个文件或目录
find: `out/target/common/docs/gen': 没有那个文件或目录
find: `frameworks/base/frameworks/base/docs/html': 没有那个文件或目录
find: `out/target/common/docs/gen': 没有那个文件或目录
find: `frameworks/base/frameworks/base/docs/html': 没有那个文件或目录
find: `out/target/common/docs/gen': 没有那个文件或目录
find: `frameworks/base/frameworks/base/docs/html': 没有那个文件或目录
find: `out/target/common/docs/gen': 没有那个文件或目录
find: `frameworks/base/frameworks/base/docs/html': 没有那个文件或目录
find: `out/target/common/docs/gen': 没有那个文件或目录
host C: acp <= build/tools/acp/acp.c
In file included from /usr/include/stdlib.h:25,
                 from build/tools/acp/acp.c:11:
/usr/include/features.h:324: 致命错误: bits/predefs.h:没有那个文件或目录
编译中断。
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] 错误 1
这是由于我使用的是64bit的Linux,里面的编译器是32bit的。需要安装库:

sudo apt-get install ia32-libs
sudo apt-get install lsb-core

sudo apt-get install libc6-dev-i386

编译器版本:

sudo apt-get install gcc-4.4

sudo apt-get install g++-4.4
gcc:
sudo mv gcc gcc.bak

sudo ln -s gcc-4.4 gcc
g++:

/usr/bin$ sudo mv g++ g++.bak

/usr/bin$sudo ln -s g++-4.4 g++

错误2:

echo out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/pseudolocalize.o out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/CopyFile.o | xargs ar crsP  out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/libhost.a
host Executable: acp (out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp)
g++: selected multilib '32' not installed
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp] 错误 1
安装库:

sudo apt-get install g++-multilib

sudo apt-get install libc6-dev ia32-libs lib32ncurses5-dev x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z-dev libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils

sudo apt-get install g++-4.4-multilib

四、编译SDK:

make sdk

五、安装编译好的镜像到模拟器上:

回到根目录:vi .bashrc加入:

export PATH=/home/shanl/Android/android-2.3.5_r1/out/host/linux-x86/bin:$PATH
export ANDROID_PRODUCT_OUT=/home/shanl/Android/android-2.3.5_r1/out/target/product/generic

注意:/home/shanl/Android/android-2.3.5_r1/out/host/linux-x86/bin目录里面有模拟器命令emulator

/home/shanl/Android/android-2.3.5_r1/out/target/product/generic :镜像的存放目录

执行emulator即可启动模拟器:


也可以指定镜像:

emulator -kernel ./prebuilt/android-arm/kernel/kernel-qemu -sysdir ./out/target/product/generic -system system.img -data userdata.img -ramdisk ramdisk.img








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值