Android SDK开发环境搭建

           

    基于SDK进行Android应用的开发,首先需要进行基于SDK的开发环境的搭建。开发者安装Eclipse,然后下载相应的Android SDK下载工具包和ADT插件,按照http://developer.android.com上的安装步骤进行安装。不过,在Android 2.3中,对应的ADT 8.0.0的文件布局发生了变化,导致ADT 8.0.0无法兼容Foryo及以下Android版本。

    需要注意的是,在通过AVD管理器下载SDK时,由于默认采用了HTTPS的链接方式访问Android的官方仓库,在部分机器上可能会因安全原因拒绝链接。为了完成下载,需要在AVD管理器的设置选项中,选择“Force https://... sources to be fetched using http://”和“Ask before restarting ADB”。

    为了通过模拟器进行开发和调试,需要为目标设备在开发环境中创建相应的虚拟设备。

    在Android中,虚拟设备称做AVD(Android Virtual Device)。在早期的Android SDK中,开发者需要基于命令行的方式来创建AVD,在最新的Android SDK下载工具包中,已经提供了图形界面的方式,使开发者可以根据需要方便地创建AVD,查看AVD相关的信息。本质上这是通过“Android”工具来实现的。

    Android工具的命令行用法如下:
    android [global options] action [action options]
    可用的“action”包括:

    -list     //列出存在的目标平台和AVD
    -list avd     //列出存在的AVD
    -list target     //列出存在的目标平台
    -create avd     //创建新的AVD
    -move avd     //移动或者重命名AVD
    -delete avd     //删除存在的AVD
    -update avd     //更新存在的AVD到新的目标平台
    -create project     //创建新的Android工程
    -update project     //更新Android工程(必须有AndroidManifest.xml)
    -create test-project     //创建新的Android测试工程
    -update test-project     //更新Android测试工程(必须有AndroidManifest.xml)
    -update adb     //更新adb以支持USB设备
    -update sdk     //更新可用的SDK以进行SDK安装
    对于“create avd ”,其选项包括:
    -c – sdcard     //共享SD卡映像的路径或AVD的新SD卡的大小
    -t –target     //新建AVD的目标平台的ID
    -n –name     //新建AVD的名字
    -p –path     //新建AVD的路径
    -f –force     //强制创建AVD,如果已经存在同名AVD,则进行覆盖
    -s –skin     //指定AVD采用的皮肤

    在Linux环境下的目标平台和AVD列表示例:

    Available Android targets:
    id: 1 or "android-8"
        Name: Android 2.2
        Type: Platform
        API level: 8
        Revision: 2
        Skins: HVGA (default), QVGA, WQVGA400, WQVGA432, WVGA800, WVGA854
    id: 2 or "android-9"
         Name: Android 2.3
         Type: Platform
         API level: 9
         Revision: 1
         Skins: HVGA (default), QVGA, WQVGA400, WQVGA432, WVGA800, WVGA854
    id: 3 or "Google Inc.:Google APIs:9"
         Name: Google APIs
         Type: Add-On
         Vendor: Google Inc.
         Revision: 1
         Description: Android + Google APIs
         Based on Android 2.3 (API level 9)
         Libraries:
         * com.google.android.maps (maps.jar)
              API for Google Maps
         Skins: HVGA (default), QVGA, WQVGA400, WQVGA432, WVGA800, WVGA854
    id: 4 or "Google Inc.:Google APIs:8"
         Name: Google APIs
         Type: Add-On
         Vendor: Google Inc.
         Revision: 2
         Description: Android + Google APIs
         Based on Android 2.2 (API level 8)
         Libraries:
         * com.google.android.maps (maps.jar)
             API for Google Maps
         Skins: HVGA (default), QVGA, WQVGA400, WQVGA432, WVGA800, WVGA854
         Available Android Virtual Devices:
             Name: my_android
             Path: /root/.android/avd/my_android.avd
         Target: Android 2.2 (API level 8)
             Skin: HVGA
             Sdcard: 200M

    显示AVD设备列表的信息的操作方式为:
    #cd android-sdk-linux_86/tools
    #./android list

    基于AVD管理器的图形界面,开发者可以用比命令行更方便的方式来创建和维护AVD。创建Android虚拟设备my_android的命令行方法为:
        #cd android-sdk-linux_86/tools
        #./android create avd -n my_android -t 2    //创建基于Android 2.2的AVD

    除了“Android”工具外,在“android-sdk-linux_86/tools”下,Android还提供了ddms、emulator、layoutopt、traceview、dmtracedump、hierarchyviewer、zipalign、apkbuilder、draw9patch、hprof-conv、mksdcard、sqlite3等多种实用工具。

    另外在“android-sdk-linux_86/platforms/android-8/tools”下,Android还提供了aapt、aidl、dexdump、dx等工具。

    在Foryo以后,Android将部分早期放置在“android-sdk-linux_86/platforms/android-?/tools”下的工具放置到了android-sdk-linux_86/platform-tools中,这部分工具包括aapt、adb、aidl、dexdump、dx等。这似乎表明Google任务在Dalvik虚拟机的优化上已经比较成熟。不会再有大的变化。

    其中“emulator”提供了基于QEMU的模拟器,供开发者进行应用的开发、调试、测试。需要说明的是,由于Android的模拟器是基于QEMU的,模拟了真实的ARM环境,所以Android的编译与通常的嵌入式开发不同,没有所谓的“Home”端和“Target”端的概念。在默认情况下,编译输出文件均是基于ARM体系结构的(Android还提供了X86架构的模拟器编译),当然Android模拟器尚不能完全模拟真实的物理设备,如支持的ARM指令目前仅限于ARMv5指令集,而不支持主流Cortex A8所需的ARMv7指令集,在LCD的显示上,目前仅支持16bit,而不支持24bit,同样触控技术上,模拟器也不支持多点触控。在启动emulator时,需要指定相应的AVD。

    “hierarchyviewer”为开发者调试和优化UI界面提供了帮助,可以帮助开发者在像素级别调整UI布局。

    “layoutopt”可以帮助开发者分析UI的布局,有助于开发出更精细的UI。

    “draw9patch”通过WYSIWYG编辑器帮助开发者进行2D图形的浏览和维护。在Android开发者,主要用于制作可伸缩的*.9.png格式的图片上。

    “ddms”帮助开发者进行应用的调试,是开发者最常用的工具之一,也是Android最重要的工具之一。

    “adb”帮助开发者在模拟器或物理设备上安装APK文件、向SD卡上推拉文件或者连接GDB调试器。也是开发者最常用的工具之一。

    “aapt”用来创建APK文件。开发者一般不直接接触。

    “aidl”为Android的进程间通信创建接口代码,是Android多进程通信的重要基础。开发者一般不直接接触。进程通信的更多内容可以参考3.2节过程调用。

    “sqlite3”帮助开发者创建、查阅后缀为db的SQLite数据库文件。需要注意的是,默认情况下Android的SQLite数据库文件没有经过加密处理,这在涉及敏感信息时,是个比较大的风险,好在相应的加解密接口已经存在,设备厂商只需要在底层加入选定的加密算法即可。另外,为了更方面的查阅SQLite数据库文件,Linux下有个比较比较方面的工具即sqliteman。

    “traceview”为Android应用运行过程中产生的日志的图形界面。在Android中,将日志分为调试(Debug)、错误(Error)、信息(Info)、详情(Verbose)、警告(Warning)等5个等级,在实际的开发中,可以根据实际情况选用不同的等级,就个人经验而言,应慎用“Error”等级,纯调试用途应用“Debug”等级。使用“Debug”等级日志的另一个好处在于,在发布时可以很方便地关闭日志输出。

    “mksdcard”帮助开发者创建SD卡的硬盘映像。其文件系统为FAT32,在通过图形界面创建AVD时,也可以同时创建SD卡, mksdcard的命令行参数如下:
        usage: mksdcard [-l label] < size> < file>

    “dx”重写了Android的DEX字节码,这是Android性能的关键和设计精华。开发者一般不直接接触。

    “zipalign”为一个重要的APK优化工具,在Donut中引入。提供了优化后的应用和系统的交互效率,从而使整个系统的运行效率得到较大的提升。

    Android SDK的频繁升级,为广大的开发者造成了很多的困扰,为了更新基于旧Android SDK开发的工程,基于命令行方式的方法为:
        #android-update project    //工程必须有AndroidManifest.xml文件

    精品课程推荐:Android应用开发培训班(FSAD1002)

    课程目标
      1)使用Android SDK进行移动应用开发有全面深入的了解,掌握Android编程的基本模式;
      2)完成一个功能较全面的Android程序;
      3)理解Android编程的关键技术,能够自己进行更加深入的学习;
      4)初步具有Android编程的实力,能够在文档辅助下完成企业要求的应用开发。

   热点链接:

   1、嵌入式linux入门要学什么
   2、2013移动互联网发展趋势TOP10
   3、2012移动互联网热点事件终极大盘点
   4、2013华清远见嵌入式系统师资培训(寒假)
   5、嵌入式Linux开发学习

更多新闻>>