Android 源码下载和编译

来源:互联网 发布:耽美小说改变网络剧 编辑:程序博客网 时间:2024/04/30 13:07

最近因为公司项目需求需要下载Android源码,总结了一切前辈的经验及自己后面的实际操作。

我是在linux环境下的,可能需要取货root权限。

下载步骤如下:

安装GIT 和 JAVA

 USER-NAME@MACHINE-NAME:~$ sudo apt-get install git-core gnupg

 USER-NAME@MACHINE-NAME:~$ 
sudo add-apt-repository ppa:ferramroberto/java
      
USER-NAME@MACHINE-NAME:~$ 
sudo apt-get update
     USER-NAME@MACHINE-NAME:~$ 
sudo apt-get install sun-java6-jre sun-java6-plugin
      USER-NAME@MACHINE-NAME:~$ 
sudo apt-get install sun-java6-jdk
   

依赖的其他包
 
USER-NAME@MACHINE-NAME:~$ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl

调试工具
USER-NAME@MACHINE-NAME:~$ sudo apt-get install valgrind


下载repo (这这块折腾了好久,当初没记下,只能写个大概的,下次更新下)
USER-NAME@MACHINE-NAME:~$sudo apt-get install git-core curl
USER-NAME@MACHINE-NAME:~$mkdir ~/bin
  USER-NAME@MACHINE-NAME:~$ PATH=~/bin:$PATH
USER-NAME@MACHINE-NAME:~$ curl http://android.git.kernel.org/repo >~/bin/repo
USER-NAME@MACHINE-NAME:~$ chmod a+x ~/bin/repo

你要下载到的文件夹
USER-NAME@MACHINE-NAME:~$mkdir android
    USER-NAME@MACHINE-NAME:~$ cd
android

这个重要
 在公司同步要先将bin里的.repo文件的
        REPO_URL='git://android.git.kernel.org/tools/repo.git'
        改成
        REPO_URL='http://android.git.kernel.org/tools/repo.git'
       
        USER-NAME@MACHINE-NAME:~/Android$
repo init -u http://android.git.kernel.org/platform/manifest.git -b android-2.3.3_r1
USER-NAME@MACHINE-NAME:~/Android$ repo sync

编译

USER-NAME@MACHINE-NAME:~/Android$  make

但是会出现一些32位机器 不能编译的

转载的

{

修改build/core目录下的main.mk文件:

     ifeq ($(BUILD_OS),linux)

     build_arch := $(shell uname -m)

    

#Change the following line for building on a 32-bit system.

     #ifneq (64,$(findstring 64,$(build_arch)))

     ifneq (i686,$(findstring i686,$(build_arch)))

     $(warning ************************************************************)

     $(warning You are attempting to build on a 32-bit system.)

     $(warning Only 64-bit build environments are supported beyond froyo/2.2.)

     2)找到下列文件:

     /external/clearsilver/cgi/Android.mk

     /external/clearsilver/cs/Android.mk

     /external/clearsilver/java-jni/Android.mk

     /external/clearsilver/util/Android.mk

     修改LOCAL_CFLAGS和LOCAL_LDFLAGS变量:

     # This forces a 64-bit build for Java6

     # Change the following two lines for building on a 32-bit system.

     # LOCAL_CFLAGS += -m64

     # LOCAL_LDFLAGS += -m64

     LOCAL_CFLAGS += -m32

     LOCAL_LDFLAGS += -m32

}

编译SDK

USER-NAME@MACHINE-NAME:~/Android$ make sdk

运行模拟器

USER-NAME@MACHINE-NAME:~/Android$ export PATH=$PATH:~/Android/out/host/linux-x86/bin  
     USER-NAME@MACHINE-NAME:~/Android$ export ANDROID_PRODUCT_OUT=~/Android/out/target/product/generic
USER-NAME@MACHINE-NAME:~/Android$ emulator

如果运行的时候报这个命令找不到,则:
USER-NAME@MACHINE-NAME:~/Android$source build/envsetup.sh
USER-NAME@MACHINE-NAME:~/Android$lunch full-eng
USER-NAME@MACHINE-NAME:~/Android$ emulator


主要点:模块编译前,必须要把整个工程编译下。


此文为(我有一只猫)原创内容,特此声明