Ubuntu 10.10从零开始建立android 2.2 froyo开发环境 之四

来源:互联网 发布:淘宝上代销怎么挣钱 编辑:程序博客网 时间:2024/05/16 08:29

为了建立android的开发环境,刚安装了一个Ubuntu 10.10 32-bit,记录下建立android 2.2开发环境的过程和解决的问题。

准备下载环境

参照官方网站准备下载环境

 

  1. $ sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind 

准备JDK和Eclipse

froyo最新版的build已经不需要JDK1.5了,直接下载一个linux 32-bit的JDK1.6就行。不太喜欢Ubuntu支持JDK/Eclipse带来的新问题,因此直接下载jdk-6u22-linux-i586.bin并在/opt目录运行安装,为了简单,我把安装后的目录换名jdk1.6。

Eclipse一定要下载Java EE版本,因为ADT插件的build需要。我下载的是3.5.2的Eclipse包eclipse-jee-galileo-SR2-linux-gtk.tar.gz。同样展开在/opt目录,方法就不赘述了。

修改/etc/environment并重新登录:

 

  1. $ sudo ln -s /opt/eclipse/eclipse /usr/bin/eclipse 
  2. $ sudo vi /etc/environment 
  3. PATH="/opt/jdk1.6/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" 
  4. JAVA_HOME=/opt/jdk1.6 
  5. JAVA_BIN=/opt/jdk1.6/bin 
  6. CLASSPATH=/opt/jdk1.6/lib/dt.jar:/opt/jdk1.6/lib/tools.jar 
  7. ECLIPSE_HOME=/opt/eclipse 

下载Android源码

按照官方网页http://source.android.com/source/download.html指导下载Android源码,也不赘述。

 

  1. $ sudo curl http://android.git.kernel.org/repo >/bin/repo 
  2. $ sudo chmod a+x /bin/repo 

我是在/work文件系统中建立android下载目录的,注意这里最好有10GB以上剩余空间。 

  1. $ sudo mkdir /work/android 
  2. $ sudo chown carl /work/android 
  3. $ cd /work/android 
  4. $ repo init -u git://android.git.kernel.org/platform/manifest.git
  5. $ repo sync 

编译Android SDK

Android 2.2源码直接支持JDK1.6和64-bit Linux,反而32-bit Linux还需要手工修改一些文件。错误如下

Only 64-bit build environments are supported beyond froyo/2.2.

修改方法具体请参阅

http://limssb.blog.163.com/blog/static/14730437201093092640133/

为方便,下面转载如下

  1. project build/ 
  2. diff --git a/core/main.mk b/core/main.mk 
  3. index f761ba5..4ee4bf9 100644 
  4. --- a/core/main.mk 
  5. +++ b/core/main.mk 
  6. @@ -68,7 +68,7 @@ $(info Checking build tools versions...) 
  7.   
  8.  ifeq ($(BUILD_OS),linux) 
  9.  build_arch := $(shell uname -m) 
  10. -ifneq (64,$(findstring 64,$(build_arch))) 
  11. +ifneq (i686,$(findstring i686,$(build_arch))) 
  12.  $(warning ************************************************************) 
  13.  $(warning You are attempting to build on a 32-bit system.) 
  14.  $(warning Only 64-bit build environments are supported beyond froyo/2.2.) 
  15.  
  16. project external/clearsilver/ 
  17. diff --git a/cgi/Android.mk b/cgi/Android.mk 
  18. index 21c534b..37b8246 100644 
  19. --- a/cgi/Android.mk 
  20. +++ b/cgi/Android.mk 
  21. @@ -13,8 +13,8 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH)/.. 
  22.  LOCAL_CFLAGS := -fPIC 
  23.   
  24.  # This forces a 64-bit build for Java6 
  25. -LOCAL_CFLAGS += -m64 
  26. -LOCAL_LDFLAGS += -m64 
  27. +LOCAL_CFLAGS += -m32 
  28. +LOCAL_LDFLAGS += -m32 
  29.   
  30.  LOCAL_NO_DEFAULT_COMPILER_FLAGS :true 
  31.   
  32. diff --git a/cs/Android.mk b/cs/Android.mk 
  33. index 9f0e30a..275845d 100644 
  34. --- a/cs/Android.mk 
  35. +++ b/cs/Android.mk 
  36. @@ -9,8 +9,8 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH)/.. 
  37.  LOCAL_CFLAGS := -fPIC 
  38.   
  39.  # This forces a 64-bit build for Java6 
  40. -LOCAL_CFLAGS += -m64 
  41. -LOCAL_LDFLAGS += -m64 
  42. +LOCAL_CFLAGS += -m32 
  43. +LOCAL_LDFLAGS += -m32 
  44.   
  45.  LOCAL_NO_DEFAULT_COMPILER_FLAGS :true 
  46.   
  47. diff --git a/java-jni/Android.mk b/java-jni/Android.mk 
  48. index 21b4fd1..c1d38d2 100644 
  49. --- a/java-jni/Android.mk 
  50. +++ b/java-jni/Android.mk 
  51. @@ -34,8 +34,8 @@ LOCAL_C_INCLUDES := / 
  52.  LOCAL_CFLAGS += -fPIC 
  53.   
  54.  # This forces a 64-bit build for Java6 
  55. -LOCAL_CFLAGS += -m64 
  56. -LOCAL_LDFLAGS += -m64 
  57. +LOCAL_CFLAGS += -m32 
  58. +LOCAL_LDFLAGS += -m32 
  59.   
  60.  LOCAL_NO_DEFAULT_COMPILER_FLAGS :true 
  61.   
  62. diff --git a/util/Android.mk b/util/Android.mk 
  63. index 386f379..b694ef4 100644 
  64. --- a/util/Android.mk 
  65. +++ b/util/Android.mk 
  66. @@ -18,8 +18,8 @@ LOCAL_C_INCLUDES := $(LOCAL_PATH)/.. 
  67.  LOCAL_CFLAGS := -fPIC 
  68.   
  69.  # This forces a 64-bit build for Java6 
  70. -LOCAL_CFLAGS += -m64 
  71. -LOCAL_LDFLAGS += -m64 
  72. +LOCAL_CFLAGS += -m32 
  73. +LOCAL_LDFLAGS += -m32 
  74.   
  75.  LOCAL_NO_DEFAULT_COMPILER_FLAGS :true 

编译SDK并配置环境

如下就是编译SDK

  1. $ cd /work/android  
  2. $ make sdk  

编译完后会在out/host/linux-x86/sdk目录下生成一个zip文件,我的是android-sdk_eng.carl_linux-x86.zip。展开到/opt目录下并配置环境 

  1. $ sudo unzip -e /work/android/out/host/linux-x86/sdk/android-sdk_eng.carl_linux-x86.zip 
  2. $ sudo chown -R carl  android-sdk_eng.carl_linux-x86/ 
  3. $ sudo vi /etc/environment 
  4. PATH="/opt/android-sdk_eng.carl_linux-x86/tools:/opt/sdk/android-sdk_eng.carl_linux-x86/platform-tools:/opt/jdk1.6/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" 

 重新登录下。

编译ADT

我下载的android 2.2源码中有个问题,编译ADT插件的时候会出错,修改sdk/eclipse/scripts目录下的build_plugins.sh即可。原来的CONFIG_DIR目录会/work/android并列目录下生成out,产生权限问题。

 

  1. $ vi /work/android/sdk/eclipse/scripts/build_plugins.sh 
  2. ... 
  3. CONFIG_DIR="../../out/eclipse-configuration-$BUILD_VERSION" 
  4. ... 

如下可以编译Eclipse插件

 

  1. $ mkdir ~/adt 
  2. $ cd /work/android/sdk/eclipse/scripts 
  3. $ ./build_server.sh ~/adt 

在~/adt目录下生成了Eclipse插件包android-eclipse-v201011020546.zip。

安装Eclipse插件

Help->Install New Software选取Archive...参见下图安装Eclipse插件(添加链接)

 

https://dl-ssl.google.com/android/eclipse/

至此Android编译开发环境全部完成。