![]() |
|
Android SDK开发环境搭建 |
|
基于SDK进行Android应用的开发,首先需要进行基于SDK的开发环境的搭建。开发者安装Eclipse,然后下载相应的Android SDK下载工具包和ADT插件,按照//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 //”和“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 在Linux环境下的目标平台和AVD列表示例: Available Android targets: 显示AVD设备列表的信息的操作方式为: 基于AVD管理器的图形界面,开发者可以用比命令行更方便的方式来创建和维护AVD。创建Android虚拟设备my_android的命令行方法为: 除了“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的命令行参数如下: “dx”重写了Android的DEX字节码,这是Android性能的关键和设计精华。开发者一般不直接接触。 “zipalign”为一个重要的APK优化工具,在Donut中引入。提供了优化后的应用和系统的交互效率,从而使整个系统的运行效率得到较大的提升。 Android SDK的频繁升级,为广大的开发者造成了很多的困扰,为了更新基于旧Android SDK开发的工程,基于命令行方式的方法为: 精品课程推荐:Android应用开发培训班(FSAD1002) 课程目标 热点链接:
1、嵌入式linux入门要学什么
|