CDS集成Android SDK

  1. 下载ADT插件包
  2. 下载ADT插件源码包
  3. 构建ADT源码环境
  4. 下载Android SDK包
  5. Cskydroid源码编译生成SDK



一、下载ADT插件包
    我们基于的android版本为android-4.0.3_r1,根据下面表格信息得知ADT版本为14.0.0

Android平台与SDK Tools版本、ADT版本的对应关系

Platform SDK   Tools API ADT 系统代号
Android1.1 系统中直接包含SDK Tools 2                ADT-0.8.0.0 BASE
Android1.5(r1-r3/r4) R3/R6或更高 3 ADT-0.9.1 CUPCAKE
Android1.6(r1/r2/r3) R3/R4/R6或更高 4 ADT-0.9.3 DOUNT
Android2.0 R3或更高 5 ADT-0.9.4 ECLAIR
Android2.0.1 R4或更高 6 ADT-0.9.4 ECLAIR_0_1
Android2.1(r1/r2/r3) R4/R6/R12或更高 7 ADT-0.9.5 ECLAIR_MR1
Android2.2(r1-2/r3) (R6/R12)或更高 8 ADT-0.9.6.0 FROYO
Android2.2(r3) R12或更高 8 ADT-12.0.0 FROYO
Android2.3 R8或更高 9 ADT-8.0.1 GINGERBREAD
Android2.3.3(r1/r2) (R9/R12)或更高 10 ADT- 9.0.1 GINGERBREAD_MR1
Android2.3.4 R11或更高 10 ADT-11.0.0 GINGERBREAD_MR1
Android3.0(r1/r2) (R10/R12)或更高 11 ADT-9.0.0 HONEYCOMB
Android3.1(r1-r2/r3) (R11/R12)或更高 12 ADT-11.0.0 HONEYCOMB_MR1
Android3.2 R12或更高 13 ADT-12.0.0 HONEYCOMB_MR2
Android4.0(0.1-0.2) R14或更高 14 ADT-14.0.0 ICE_CREAM_SANDWICH
Android4.0.3(r1/r2) R14或更高 15 ADT-14.0.0 ICE_CREAM_SANDWICH_MR1
Android4.0.3(4.0.4) R17或更高上(支持模拟硬件图形加速) 15 ADT-17.0.0 ICE_CREAM_SANDWICH_MR1
Android4.1(1.0-1.2) R20或更高 16 ADT-20.0.0 JELLY_BEAN
Android4.2 R20或更高 17 ADT-20.0.0 JELLY_BEAN_MR1
Android4.2.2 R21或更高 17 ADT-21.0.0 JELLY_BEAN_MR1

Android ADT-X.X.X.zip官方下载地址: http://dl.google.com/android/ADT-X.X.X.zip
因此在下面地址获得ADT- 14.0.0的插件。
http://dl.google.com/android/ADT-14.0.0.zip

Eclipse安装本地ADT方法:
Help-->Install New Software-->Add-->Archive(选择下载的zip文件)-->OK。



二、下载ADT插件源码包
         源码可以在官方的git服务器上下载。
        1、首先安装git,Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。  
              下载地址(可选择最新版本下载):

http://code.google.com/p/msysgit ... taller+official+git
       2、运行git
            安装完成后,打开git bash
$mkdir source                              
          :新建一个目录
$cd source         
$git clone http://android.googlesource.com/platform/manifest.git        
         : Android分支列表信息文件,用来查看用,可不下载
$git clone http://android.googlesource.com/platform/sdk.git               
         : ADT插件的源码在这个里面
$cd sdk
$git branch -a                                                           
         :查看分支
$git checkout -b cskytools_r14 remotes/origin/tools_r14   
         :新建本地分支并切换到分支,tools_r14由2楼主对应关系表格所得
$cd ..
$mkdir prebuilts
$cd prebuilts/                                                            
          :按照服务器上分布方式,新建一个目录,prebuilts中包含插件libs文件夹中使用的jar文件,(r14版本没有prebuilts下的jar文件,只有源码,在platform/sdk中)。
$git clone http://android.googlesource.com/platform/prebuilts/tools.git  
           :tools从r17才开始建立的文件夹目录
$git clone http://android.googlesource.com/platform/prebuilts/misc.git
           :misc从r20才开始建立的文件夹目
$cd ..
$mkdir tools
$cd tools
           :按照服务器上分布方式,新建一个目录,tools中包含插件libs文件夹中使用的jar文件的源码。
$git clone http://android.googlesource.com/platform/tools/base.git
           :base从r22才开始的目录,原来的存放在platform/sdk中

$git clone http://android.googlesource.com/platform/tools/swt.git
           :swt从r22才开始的目录,原来的存放在platform/sdk中。



三、构建ADT源码环境
       ADT源码位于sdk\eclipse\plugins目录下面,可以参考下载的ADT-14.0.0的插件结构,查看一共有多少个插件,然后导入到workspace
      在将源码插件所依赖的库文件的源码导入到workspace,其中ADT-14.0.0版本的库文件源码位于sdk目录,新版本的库文件源码位于tools\base目录下。
      
ADT-14.0.0的插件源码目录结构图如下:


ADT-14.0.0中与体系结构相关的就在插件adt中依赖的sdklib.jar文件,其源码如图中SdkLib工程。需修改的位置有:
/SdkLib/src/com/android/sdklib/internal/avd/AvdInfo.java
/SdkLib/src/com/android/sdklib/internal/avd/AvdManager.java
/SdkLib/src/com/android/sdklib/internal/repository/SystemImagePackage.java
/SdkLib/src/com/android/sdklib/repository/sdk-repository-5.xsd
/SdkLib/src/com/android/sdklib/ISystemImage.java
/SdkLib/src/com/android/sdklib/SdkConstants.java
/SdkLib/src/com/android/sdklib/SystemImage.java

\adt\src\com\android\ide\eclipse\adt\internal\welcome\AdtStartup.java  (自动选择SDK的路径)
修改完毕后将SdkLib工程Export生成jar文件替换插件adt中libs目录中的同名文件。

然后插件adt Export打包生成新的插件adt,替换原来的插件



四、下载Android SDK包
       Android SDK官网首页下载的是最新版本的。

http://developer.android.com/intl/zh-cn/sdk/index.html
     如需下载以前的版本需另想办法。
      首先从官网上下载最新的SDK包,查看目录结构,SDK包包含6个文件夹目录,分别是build-tools、extras、platforms、platforms-tools、system-images、tools。如图所示:
      下载以前的版方法有两个,一是使用SDK Manager.exe自动更新,二是手动下载。
        1、SDK Manager.exe自动更新
             SDK Manager.exe由最新的SDK包中提供,打开SDK Manager.exe,选择所需要的版本进行更新。
        2、手动下载
              主要下载SDK包中的6个文件。根据版本对应关系和SDK下载器的更新文件(查看SDK Manager.exe更新log得到) http://dl-ssl.google.com/android/repository/repository.xml、http://dl-ssl.google.com/android/repository/repository-8.xml、http://dl-ssl.google.com/android/repository/addon.xml分析得到,Android SDK4.0.3可由下列网址下载得到。

网址 压缩包内文件与SDK目录映射关系
http://dl-ssl.google.com/android/repository/tools_r14-windows.zip .\tools
http://dl-ssl.google.com/android/repository/sysimg_armv7a-15_r01.zip .\system-images\android-15\armeabi-v7a
http://dl-ssl.google.com/android/repository/android-15_r03.zip .\platforms\android-15
(*1)http://dl-ssl.google.com/android/repository/platform-tools_r14-windows.zip .\platform-tools
(*2)http://dl-ssl.google.com/android/repository/platform-tools_r14-windows.zip .\build-tools\android-4.0.3
extras在Android SDK4.0.3没信息 可使用最新版的extras
(*3)http://dl-ssl.google.com/android/repository/google_apis-15_r02.zip .\add-ons\addon-google_apis-google-15
              
    *1、*2文件内容共用一个压缩包,内容可按最新版本的结构分布( 测试时不要build-tools目录,压缩包解压全部放置在platform-tools目录也没发生错误
  platform-tools build-tools
2013-8-9 11:03:46 上传
下载附件 (82.4 KB)
*3是根据SDK Manager.exe自动更新时会生成的新的目录结构而建立的,出现的位置在图下图(如不加这个则只显示一行)。

=========================================
从下面直接下载会不完整
http://dl.google.com/android/android-sdk_r14-windows.zip


五、Cskydroid源码编译生成SDK
首先,ARM编译生成SDK的方法是(Linux版本):
输入以下命令编译:
$ . ./build/envsetup.sh
$ lunch_sdk-eng
$ make sdk
编译完成之后会生成在以下目录:
out/host/platform/sdk/android-sdk_eng.username_platform-x86/
因此,要编译csky的SDK工具(Linux版本),命令为:
$ export TARGET_ARCH=csky
$ export TARGET_ARCH_VARIANT=ck800

$ . ./build/envsetup.sh

$ lunch sdk_csky-eng

$ make sdk


=============================
完全的window SDK工具只能在linux系统上编译——因为大多数的framework设计不在windows上支持。
首先安装相关依赖库:

$ sudo apt-get install mingw32 tofrodos

mingw32
是交叉编译器,tofrodos是一个unix2dos命令。
然后执行以下命令(ARM):

$ . ./build/envsetup.sh

$ lunch sdk-eng

$ make win_sdk

编译结果位置:

out/host/windows/sdk/android-sdk_eng.username_windows/

因此,要编译csky的SDK工具(Win版本),命令为:
$ export TARGET_ARCH=csky
$ export TARGET_ARCH_VARIANT=ck800

$ . ./build/envsetup.sh

$ lunch sdk_csky-eng

$ make
win_sdk


====================================
注意:
编译好CSKY的SDK后要修改一个文件
/out/target/product/generic_csky/root/init.rc

"write /proc/cpu/alignment 4"
改成

"write /proc/cpu/alignment 2"

=======================================

在编译Window版本的ARM-SDK时
1)
可能遇到的问题是缺少libpthread,如果遇到的话解开pthreads-w32-2-8-0-release.exe(见附件),把Pre-built.2/lib中的libpthreadGC2.a改名为libpthread.a复制到/usr/i586-mingw32*/lib目录,Pre-built.2/include中的pthread.h复制到/usr/i586-mingw32*/include目录即可解决。
2)确实libdl,解开dlfcn-win32-static-r11.tar.bz2(见附件),把lib中点libdl.a复制到
/usr/i586-mingw32*/lib目录,把nclude中的dlfcn.h复制到/usr/i586-mingw32*/include目录即可解决。(附件
3)修改/external/llvm/llvm-host-build.mk文件

在第一行LOCAL_LDLIBS := -lpthread -ldl 下添加(由于编译时报错,缺少库)
ifeq ($(HOST_OS),windows)
           LOCAL_LDLIBS += -lpsapi -limagehlp
endif

4)修改/external/qemu/qemu-commin.h文件

在第205行int ffs(int i)下一行添加(由于编译时报错,缺少ffs)
#define ffs(i) __builtin_ffs(i)

5)修改/
external/qemu/vl-android.c文件

在第3870行附件,改回官方源码
使用 serial_hds_add_at(0, "android-kmsg");
取消 serial_hds_add_at(0, "stdio");
原来的修改作用是:防止adb的shell起不来


6)-lpthread -ldl需要的库文件:http://doc.openturns.org/openturns-0.13.2/doc/html/WindowsPortGuide/output/OpenTURNS_WindowsPortGuidesu1.html


7)for libdl.a: http://doc.openturns.org/openturns-0.13.2/doc/html/WindowsPortGuide/output/OpenTURNS_WindowsPortGuidesu1.html 

你可能感兴趣的:(编程人生路,Android)