Google Android应用开发03 Android SDK介绍

3 AndroidSDK介绍

本章目标:

1. 掌握AndroidSDK组成。

2. 掌握Android常用的Tools

3. 熟悉Android核心开发包和可选开发包。

3.1AndroidSDK目录结构

AndroidSDK目录结构

3.2AndroidSDK Sample

Lunar Lander月球登陆

是一个在Android模拟器上玩的游戏。这个游戏一个2-D的游戏在Android上工作是多么的简单。控制非常的简单,而且游戏不是非常的复杂。总之,对游戏开发来说是一个良好的开始。

月球登陆执行一个简单控制方案(上,下,左,右)。


NotePad写字板

允许你打开,创建并且编辑小的笔记。写字板不是一个全功能的字符编辑器,所以不要期待是和WindowsMobileword的竞争对手。但是,作为一个演示工具,使用非常少的代码就能实现这个效果已经非常的棒了。


SkeletonApp框架应用

是一个基本的程序展示了几个不同的应用程序的功能。如字体,按钮,图形和表格。如果你想自己运行SkeletonApp,真的不应当把它排除在外,参考SkeleteApp,它会提供不少关于如何执行特定的条款。


Snake贪食蛇

这是一个小的SNAFU风格游戏,比月球登陆复杂。

3.3AndroidSDK Tools

AndroidSDK包括各种各样的定制工具,可以帮助你在Android平台上开发移动应用程序。其中最重要的工具是Android模拟器和EclipseAndroid开发工具插件,但SDK也包含了各种在模拟器上用于调试,打包和安装的工具


Android模拟器(AndroidEmulator ) 
AndroidEmulator是一款功能非常齐全的模拟器,电话本、通话等功能都可进行模拟。甚至其内置的浏览器和GoogleMaps都可以联网。用户可以使用键盘输入,单击模拟器按键输入,甚至还可以使用鼠标单击、拖动屏幕进行操作。


1)模拟器和真机的不同之处

  • 不支持呼叫和接听实际来电,但可以通过控制台模拟电话呼叫(呼入和呼出)

  • 不支持USB连接。

  • 不支持相机/视频捕捉。

  • 不支持音频输入(捕捉),但支持输出(重放)

  • 不支持扩展耳机。

  • 不能确定连接状态。

  • 不能确定电池电量水平和交流充电状态。

  • 不能确定SD卡的插入/弹出。

  • 不支持蓝牙。


2) 参数大全

Android模拟器emulator.exe文件包含了很多参数,平时在EclipseIDE中,模拟器运行被自动调用的,如果仅仅使用Androidemulator或采用NetBean这样的开放环境又如何设置呢?我们总结了一下模拟器的所有参数及使用方法,具体如下所示。 


AndroidEmulator usage: emulator [options] [-qemu args]
  options:
    -system <dir>      read system images from <dir>
    -datadir<dir>      write user data into<dir>
    -kernel <file>     emulated kernel
指定内核文件
   -ramdisk <file>     ramdisk image(default <system>/ramdisk.img)
创建内存磁盘
   -image <file>       systemimage (default <system>/system.img)
   -initdata <file>    initial user image(default <system>/userdata.img)
    -data<file>        workinguser image (default <datadir>/userdata-qemu.img)

   -wipe-data         reset the user data image (copy it from initdata) 清除所有用户数据
   -nocache           disable the cache partition
禁止分区缓存
   -sdcard <file>      SD card image(default <system>/sdcard.img)
使用SD卡映像
   -skindir <dir>      search skins in<dir> (default <system>/skins)
搜索外观皮肤路径
   -skin <skin>       select a given skin
选择Android模拟器皮肤ID
   -noskin            
不使用任何模拟器外观,这样有助于提高模拟器速度,内存小的用户可以尝试
   -netspeed <speed>  
设置网络速度如GPRSEDGE3G更多详细的内容下面有介绍
   -netdelay <delay>   network latency emulation
网络延时设置
   -netfast           disable network shaping (full speed, no latency)
网络全速工作
   -trace <name>       enablecode profiling (press F9 to start)
跟踪调试
   -debug-kernel       send kerneloutput to the console
内核调试
   -console           enable console shell on current terminal
启用控制台Shell在当前中端
   -nojni             disable JNI checks in the Dalvik runtime
禁用JNI检查
   -logcat <tags>      enable logcatoutput with given tags
设置log输出标签
   -noaudio           disable android audio support
禁用音频支持
   -useaudio          enable android audio support (default)
启用音频支持
   -mic <file>        WAV file for audio input
使用wav文件模拟mic麦克输入
   -flash-keys         flashkey presses on the device skin
   -raw-keys          disable Unicode keyboard reverse-mapping
   -radio <device>     redirect radio modeminterface to character device
   -oldradio          enable old VM-based simulated radio
    -onion<image>      use overlay image overscreen
    -onion-alpha <%age> specifyonion skin translucency (default 50)
   -http-proxy <proxy> make TCP connections through aHTTP/HTTPS proxy
代理服务器设置
   -verbose           enable verbose output
    -verbose-keys      enable verbose key presses
   -verbose-proxy      enable proxy debugmessages
    -version           display emulater version number

   -qemu              pass arguments to qemu
    -qemu -h           display qemu help
    -help              print this help

   Defaultnetwork latency is 'none'

  <proxy>can be one of the following:

   http://<server>:<port>
   http://<username>:<password>@<server>:<port>

  the'http://' prefix can be omitted. If '-http-proxy <proxy>' isnot used,
  the 'http_proxy' environment variable islooked up and any value matching
  the <proxy>format will be used automatically


3) 快捷键 

Android模拟器同样存在很多快捷键,当模拟器运行时,可以使用下面的快捷键来操作Androidemulator,这样比用键盘和鼠标操作更高效:

   D:\unsetup\android-sdk-windows-1.1_r1\tools>emulator.exe-help-keys


  Whenrunning the emulator, use the following keypresses:


    HOME                  Home button 主界面键

    F2,PAGEUP              Menu(Soft-Left) button 左软键

    Shift-F2,PAGEDOWN      Star (Soft-Right) button 右软键

    ESCAPE                 Backbutton 后退键

    F3                    Call/Dial button 拨号/呼叫键

    F4                    Hangup/EndCall button 结束通话

    F7                    Power button 电源键

    F5                    Search button 搜索键

    KEYPAD_PLUS,Ctrl-F5    Volume up button 增大音量键 

    KEYPAD_MINUS,Ctrl-F6   Volume down button 减小音量键

    Ctrl-KEYPAD_5,Ctrl-F3  Camera button 相机键

    KEYPAD_7,Ctrl-F11      switch to previous layout 返回键

    KEYPAD_9,Ctrl-F12      switch to next layout 后一个界面

    F8                    toggle cell network on/off 禁止/启用所有网络

    F9                    toggle code profiling 开始跟踪

    Alt-ENTER              toggle fullscreenmode 打开/关闭全屏模式

    F6                    toggle trackball mode 打开/关闭轨迹球

    DELETE                 showtrackball 显示轨迹球

    KEYPAD_5               DPad center导航中建/OK

    KEYPAD_4               DPad left左键

    KEYPAD_6               DPad right右键

    KEYPAD_8               DPad upshang 上键

    KEYPAD_2               DPad down下键

    KEYPAD_MULTIPLY        increase onion alpha

    KEYPAD_DIVIDE          decrease onion alpha


4)模拟器使用注意事项

使用emulator测试开发程序时,可能会遇到系统关于C盘空间不足之类的提示,这是由于Android模拟器每次运行时会临时生成几个.tmp后缀的临时文件,一段时间后,其可能占用几G的磁盘空间。所以需要手工定期清理一下C:\Documentsand Settings\Andministrator\LocalSettings\Temp\AndroidEmulator文件夹下的内容。


层级观察器 (HierarchyViewer New! ) 
层级观察器工具允许你调试和优化你的用户界面。它用可视的方法把你的视图(view)的布局层次展现出来,此外还给当前界面提供了一个具有像素栅格(grid)的放大镜观察器,这样你就可以正确地布局了。


Draw9-patch New! 
Draw9-patch工具允许你使用所见即所得(WYSIWYG)的编辑器轻松地创建NinePatch图形。它也可以预览经过拉伸的图像,高亮显示内容区域。


EclipseIDE Android 开发工具插件(AndroidDevelopment Tools Plugin forthe Eclipse IDE

ADT插件大大扩展了Eclipse集成环境功能,使得生成和调试你的Android应用程序既容易又迅速。


Dalvik 调试监视器服务(DalvikDebug Monitor Service (ddms)) 
这个工具集成了Dalvik(为Android平台定制的虚拟机(VM)),能够让你在模拟器或者设备上管理进程并协助调试。你可以使用它杀死进程,选择某个特定的进程来调试,产生跟踪数据,观察堆(heap)和线程信息,截取模拟器或设备的屏幕画面,还有更多的功能。


Android调试桥(AndroidDebug Bridge (adb) ) 
Adb
工具可以让你在模拟器或设备上安装应用程序的.apk文件,并从命令行访问模拟器或设备。你也可以用它把Android模拟器或设备上的应用程序代码和一个标准的调试器连接在一起。

SDKTools文件夹下包含着Android模拟器操作的重要命令ADBADB的全称为AndroidDebug Bridge,就是调试桥的作用,借助这个工具,我们可以管理设备或手机模拟器的状态 ,还可以进行以下的操作:

1)快速更新设备或手机模拟器中的代码,如应用或Android系统升级;
2)在设备上运行Shell命令;
3)管理设备或手机模拟器上的预定端口;

4)在设备或手机模拟器上复制或粘贴文件。

ADB的工作方式比较特殊采用监听SocketTCP5554等端口的方式让IDEQemu通信,默认情况下ADBdaemon相关的网络端口,所以当我们运行EclipseADB进程就会自动运行,在Eclipse中通过DDMS来调试Android程序;也可以通过手动方式调用,以下为一些常用的操作供参考。


1.版本信息

D:\unsetup\android-sdk-windows\tools>adbversion

AndroidDebug Bridge version 1.0.20


2.
安装应用到模拟器 
adb install [-l] [-r] <file>

其中file是需要安装的apk文件的决定路径。


3.卸载已经安装的应用

1)方法1

  adbuninstall [-k] <package>

其中package表示需要卸载的应用的包的名字,k表示是否保留应用的配置信息和cache数据。


2)手动删除。
adbshell
cd /data/app
rm app.apk


4.
进入设备或模拟器的Shell
adbshell
通过上面的命令,就可以进入设备或模拟器的Shell环境中,在这个Linux Shell中,可以执行各种Linux 的命令,另外如果只想执行一条Shell命令,可以采用以下的方式:
adbshell [command]
如:

D:\android-sdk-windows\tools>adbshell df

/dev:49564K total, 0K used, 49564K available (block size 4096)

/sqlite_stmt_journals:4096K total, 0K used, 4096K available (block size 4096)

/system:69120K total, 65508K used, 3612K available (block size 4096)

/data:76544K total, 63684K used, 12860K available (block size 4096)

/cache:69120K total, 1244K used, 67876K available (block size 4096)


5.转发端口

可以使用forward命令进行任意端口的转发—一个模拟器/设备实例的某一特定主机端口向另一不同端口的转发请求。下面演示了如何建立从主机端口7100到模拟器/设备端口8100的转发。

adbforward tcp:7100 tcp:8100

同样地,可以使用ADB来建立命名为抽象的UNIX域套接口,上述过程如下所示:

adbforward tcp:7100 local:logd


6.
复制文件

可以使用adbpull ,push 命令将文件复制到一个模拟器/设备实例的数据文件或是从数据文件中复制。install命令只将一个apk文件复制到一个特定的位置,与其不同的是,pullpush命令可让用户复制任意的目录和文件到一个模拟器/设备实例的任何位置。

从模拟器或者设备中复制文件或目录,使用如下命:

adbpull <remote> <local>

将文件或目录复制到模拟器或者设备,使用如下命令:

adbpush <local> <remote>

在这些命令中,<local><remote>分别指通向自己的发展机(本地)和模拟器/设备实例(远程)上的目标文件/目录的路径。

下面是一个例子::

adbpush foo.txt /sdcard/foo.txt


7.
搜索模拟器/设备的实例
取得当前运行的模拟器/设备的实例的列表及每个实例的状态,如:

D:\android-sdk-windows\tools>adbdevices

Listof devices attached

HT843GZ03305   device


8.
查看bug报告 

D:\android-sdk-windows\tools>adbbugreport

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

==dumpstate

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

------SYSTEM LOG ------

04-1216:59:46.521 D/ShowTrack(23968): MyOverlay::darw..mDefCaption=I'mHere.

04-1216:59:46.531 D/ShowTrack(23968): MyOverlay::darw..mDefCaption=I'mHere.

04-1216:59:46.531 D/ShowTrack(23968): MyOverlay::darw..mDefCaption=I'mHere.

04-1216:59:46.541 D/ShowTrack(23968): MyOverlay::darw..mDefCaption=I'mHere.

04-1216:59:47.391 I/ActivityManager(   55): Starting activity:Intent { comp={com.iceskysl.iTracks/com.iceskysl.iTracks.iTracks}}

04-1216:59:47.641 D/iTracks (23968): renderListView.

04-1216:59:47.671 D/ShowTrack(23968): MyOverlay::darw..mDefCaption=I'mHere.

04-1216:59:47.681 D/ShowTrack(23968): MyOverlay::darw..mDefCaption=I'mHere.


9.
记录无线通讯日志
一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:

D:\android-sdk-windows\tools>adb shell

#logcat -b radio

logcat-b radio

D/HTC_RIL(   30): (t=1239390296)<< 0

D/HTC_RIL(   30): (t=1239390296)>> AT@HTCPDPFD=0

D/HTC_RIL(   30): (t=1239390296)<< 0

D/HTC_RIL(   30): (t=1239390296)>> AT+CSQ

D/HTC_RIL(   30): (t=1239390296)<< +CSQ: 29,99

D/HTC_RIL(   30): 0

D/HTC_RIL(   30): (t=1239390296)>> AT+CREG?

D/HTC_RIL(   30): (t=1239390296)<< +CREG: 2,3

D/HTC_RIL(   30): 0


10.
获取设备的ID和序列号
adbget-product

D:\android-sdk-windows\tools>adbget-serialno

HT843GZ03305


11.通过远程Shell端运行AQLite3连接数据库

通过ADB远程Shell端,可以通过Android的软AQLite3 命令程序来管理数据库。SQLite3 工具包含了许多使用命令,例如,.dump显示表的内容,.schema可以显示出已经存在的表空间的SQLCREATE结果集。SQLite3还允许远程执行sql命令。


通过SQLite3 , 按照前面的方法登录模拟器的远程Shell端,然后启动工具就可以使用SQLite3 命令。当SQLite3启动以后,还可以指定想查看的数据库的完整路径。模拟器/设备实例会在文件夹中保存SQLite3数据库/data/data/<package_name>/databases /


示例如下:

$adb  shell

#sqlite3/data/data/com.example.google.rss.rssexample/databases/rssitems.db

SQLiteversion 3.3.12

Enter".help" for instructions

....enter commands, then quit...


sqlite>.exit

当启动SQLite3的时候,就可以通过Shell端发送SQLite3,命令了。用exit<Ctrl+D>组合键退出ADB远程Shell端。 


12.ADB命令列表

下列表格列出了adb支持的所有命令,并对它们的意义和使用方法做了说明.

Category

Command

Description

Comments

Options

-d

仅仅通过USB接口来管理abd

如果不只是用USB接口来管理则返回错误

-e

仅仅通过模拟器实例来管理adb

如果不是仅仅通过模拟器实例管理则返回错误

-s<serialNumber>

通过模拟器/设备的允许命令号码来发送命令来管理adb(如“emulator-5556″)

如果没有指定号码,则会报错

General

devices

查看所有连接模拟器/设备的设施的清单

查看Queryingfor Emulator/Device Instances 获取更多相关信息

help

查看adb所支持的所有命令


version

查看adb的版本序列号


Debug

logcat[<option>] [<filter-specs>]

将日志数据输出到屏幕上


bugreport

查看bug的报告,如dumpsys,dumpstate ,logcat信息


jdwp

查看指定设施的可用的JDWP信息

可以用forwardjdwp:<pid>端口映射信息来连接指定的JDWP进程,例如:
adbforward tcp:8000 jdwp:472
jdb -attach localhost:8000

Data

install<path-to-apk>

安装Android为(可以模拟器/设施的数据文件.apk指定完整的路径)


pull<remote> <local>

将指定的文件从模拟器/设施拷贝到计算机上


push<local> <remote>

将指定的文件从计算机上拷贝到模拟器/设备中


Portsand Networking

forward<local> <remote>

用本地指定的端口通过Socket方法远程连接模拟器/设施

端口需要描述下列信息:

tcp:<portnum>

local:<UNIXdomain socket name>

dev:<characterdevice name>

jdwp:<pid>

ppp<tty> [parm]…

通过USB运行ppp

<tty>— the tty for PPP stream. For exampledev:/dev/omap_csmi_ttyl.

[parm]…&mdash zero or more PPP/PPPD options, such as defaultroute,local , notty , etc.

需要提醒的不能自动启动PDP连接


Scripting

get-serialno

查看adb实例的序列号

查看Queryingfor Emulator/Device Instances 可以获得更多信息

get-state

查看模拟器/设施的当前状态

wait-for-device

如果设备不联机就不让执行,也就是实例状态是device

可以提前把命令转载在adb的命令器中,在命令器中的命令在模拟器/设备连接之前是不会执行其他命令的,示例如下:

adbwait-for-device shell getprop

需要提醒的是,这些命令在所有的系统启动起来之前是不会启动adb的,所以在所有的系统启动起来之前也不能执行其他的命令,例如,运用install的时候就需要Android包,这些包需要系统完全启动,例如:

adbwait-for-device install <app>.apk

上面的命令只有连接上了模拟器/设备连接上了adb服务才会被执行,而在Android系统完全启动前执行就会有错误发生

Server

start-server

选择服务是否启动adb服务进程


kill-server

终止adb服务进程


Shell

shell

通过远程Shell命令来控制模拟器/设备实例

查看获取更多信息formore information

shell[<shellCommand>]

连接模拟器/设施执行Shell命令,执行完毕后退出远程Shelll



AndroidAsset PackagingTool (aapt) 
Aapt工具可以让你创建包含Android应用程序二进制文件和资源文件的.apk文件。


Android接口描述语言(AndroidInterface DescriptionLanguage (aidl)) 
可以让你生成进程间的接口的代码,诸如service可能使用的接口。


sqlite3 
这个工具能够让你方便地访问SQLite数据文件。这些数据文件是由Android应用程序创建并使用的。


Traceview 
这个工具可以将你的Android应用程序产生的跟踪日志(tracelog)转换为图形化的分析视图。

mksdcard 
帮助你创建磁盘映像(diskimage),你可以在模拟器环境下使用磁盘映像来模拟外部存储卡(例如SD卡)。


dx 
Dxgongju
.class字节码(bytecode)转换为Android字节码(保存在.dex文件中)。


UI/ApplicationExerciserMonkey 
Monkey是在模拟器上或设备上运行的一个小程序,它能够产生为随机的用户事件流,例如点击(click),触摸(touch),挥手(gestures),还有一系列的系统级事件。你可以使用Monkey来给你正在开发的程序做随机的,但可重复的压力测试。


activitycreator 
一个可以产生Antbuild 文件的脚本,你可以使用它编译你的android应用程序。如果你正在Eclipse上开发,并使用ADT插件,你不必使用这个脚本。


logcat

LogCatAndroid中一个命令行工具,可以用于得到程序的log信息。

利用LogCat查看日志信息


1.使用方法

LogCat使用方法如下所示:

LogCat[options] [filterspecs]

LogCat的选项包括:

  -s                  设置过滤器,如指定'*:s'.

  -f<filename>   输出到文件,默认情况是标准输出。

  -r[<kbytes>]   Rotate log every kbytes. (16 ifunspecified). Requires –f

  -n<count>      Sets max number of rotated logsto <count>, default 4

  -v<format>     设置log的打印格式, <format> 是下面的一种:

                        briefprocess tag thread raw time threadtime long


  -c                 清除所有log并退出。

  -d                 得到所有log并退出(不阻塞)

  -g                 得到环形缓冲区的大小并退出。

  -b<buffer>     请求不同的环形缓冲区('main'(默认),'radio', 'events')

  -B                 输出log到二进制中。


过滤器的格式是一个这样的串:

  <tag>[:priority]


其中<tag>表示logcomponenttag(或者使用*表示所有)priority如下所示:

  V   Verbose

  D   Debug

  I   Info

  W  Warn

  E   Error

  F   Fatal

  S   Silent



事实上LogCat的功能是由Android的类android.util.Log决定的,在程序中log的使用方法如下所示:

Log.v()--------------------VERBOSE

Log.d()--------------------DEBUG

Log.i()--------------------INFO

Log.w()--------------------WARN

Log.e()--------------------ERROR

以上log的级别依次升高,Debug信息应当只存在于开发中,INFOWARNERROR3log将出现在发布版本中。


对于Java类,可以声明一个字符串常量TAGLogCat可以根据它来区分不同的log,例如,在计算器(Calculator)的类中,定义如下所示:


publicclass Calculator extends Activity {

/*...... */

    privatestatic final String LOG_TAG = "Calculator";

    privatestatic final boolean DEBUG  = false;

    privatestatic final boolean LOG_ENABLED = DEBUG ? Config.LOGD :Config.LOGV;

/*...... */

   由此,所有在Calculator中使用的log,均以“Calculator”为开头。


3.4AndroidSDK核心包

AndroidSDK提供了编写应用程序的一些基本包。这些包通过分层方式组织,以下按照从底层到高层的顺序列出:


android.util:包含有许多底层的工具类,例如专用容器类,XML工具等等。


android.os:提供基本的操作系统服务、消息传递和进程间通讯。


android.graphics:核心图形绘制包。


android.textandroid.text.methodandroid.text.styleandroid.text.util:提供丰富的文本处理工具、富文本支持以及输入法等等。


android.database:包含数据库相关的底层API


android.content:提供大量的访问存储在设备上的数据的服务:安装在设备上的应用及相关资源,用于持续的动态数据的内容提供器(contentprovider)。


android.view:核心用户界面框架。


android.widget:提供构建view包的标准用户界面元素(列表、按钮、布局管理器等等)。


android.app:提供高层应用模型,通过活动实现。

3.5AndroidSDK可选API

Android适用于各种各样的手机,从最低端直到最高端的智能手机。核心的AndroidAPI在每部手机上都可使用,但任然有一些API接口有一些特别的适用范围,这就是所谓的“可选API”


这些API之所以是“可选的”,主要是因为一个手持设备并不一定要完全支持这类API,甚至于完全不支持。例如,一个手持设备可能没有GPSWi-FI的硬件。在这个条件下,这类功能的API任然存在,但不会以相同的方式来工作。例如LocationAPI任然在没有GPS的设备上存在,但极有可能完全没有安装功能提供者,意味着这类API就不能有效地使用。


Wi-Fi API

Wi-FiAPI为应用程序提供了一种与那些带有Wi-FI网络接口的底层无线堆栈相互交流的手段。几乎所有的请求设备信息都是可利用的,包括网络的连接速度、IP地址、当前状态等等,还有一些其他可用网络的信息。一些可用的交互操作包括扫描、添加、保存、结束和发起连接。

Wi-Fi APIandroid.net.wifi包中。


定位服务(Location-BasedServices

定位服务允许软件获取手机当前的位置信息。这包括从全球定位系统卫星上获取地理位置,但相关信息不限于此。例如,未来其他定位系统可能会运营,届时,对其相应的API接口也会加入到系统中。

定位服务的APIandroid.location包中。


多媒体APIMediaAPIs

多媒体API主要用于播放媒体文件。这同时包括对音频(如播放MP3或其他音乐文件以及游戏声音效果等)和视频(如播放从网上下载的视频)的支持,并支持"播放URI地址"Note:URI即是统一资源识别地址)模式-在网络上直接播放的流媒体。技术上来说,多媒体API并不是“可选的”,因为它总是要用到。但是不同的硬件环境上面可能有不同的编解码的硬件机制,因而它又是“可选的”。

多媒体APIandroid.media包中。


基于OpenGL3D图形(3DGraphics with OpenGL

Android的主要用户接口框架是一个典型的面向控件的类继承系统。但不要让表面的情况迷惑了你,因为在它下面是一种非常快的2D和3D组合的图形引擎,并且支持硬件加速。用来访问平台3D功能的API接口是OpenGLESAPI。和多媒体API一样,OpenGL也不是严格意义上的“可选”,因为这些API会总是存在并且实现那些固定的功能。但是,一些设备可能有硬件加速环节,使用它的时候就会影响你的应用程序的表现。

OpenGLAPIandroid.opengl 中可以看到。

3.6小结

本章主要介绍了AndroidSDK的相关内容,包括SDK结构,文档内容,通过本章学习需掌握AndroidSDK中各种工具的使用以及核心开发包的作用.

3.7练习

1. 列出AndroidSDK中的各种Tools,并描述其作用和用途?

2. 列出AndroidSDK中核心包有哪些,及其作用?


Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1 安装AndroidSDK与ADTplug-in 2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色常数的方法 3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——CharSequence数据类型与ResourceID应用 3.5 取得手机屏幕大小——DisplayMetrics取得画面宽高的方法 3.6 样式化的定型对象——Style样式的定义 3.7 简易的按钮事件——Button事件处理 3.8 手机页面的转换——setContentView的应用 3.9 调用另一个Activity——Intent对象的使用 3.10 不同Activity之间的数据传递——Bundle对象的实现 3.11 返回数据到前一个Activity——startActivityForResult方法 3.12 具有交互功能的对话框——AlertDialog窗口 3.13 置换文字颜色的机关——Button与TextView的交互 3.14 控制不同的文字字体——Typeface对象使用 3.15 如iPhone拖动相片特效——Gallery画廊 3.16 自制计算器——多按钮的整合应用 3.17 关于(About)程序信息——Menu功能菜单程序设计 3.18 程序加载中,请稍后——ProgressDialog与线程整合应用 3.19 全屏幕以按钮覆盖——动态产生按钮并最大化 3.20 今晚到哪儿打牙祭?——具选择功能的对话框 3.21 Android变脸——主题(Theme)实现 第4章 史上超豪华的手机控件 4.1 EditText与TextView共舞——setOnKeyListener事件 4.2 设计具有背景图的按钮——ImageButton的焦点及事件处理 4.3 给耶诞老人的信息——Toast对象的使用 4.4 我同意条款——CheckBox的isChecked属性 4.5 消费券采购列表——多选项CheckBox的应用 4.6 向左或向右——RadioGroup组与onCheckedChanged事件 4.7 专业相框设计——ImageView的堆栈应用 4.8 自定义下拉菜单模式——Spinner与setDropDownViewResource 4.9 动态添加/删除的Spinner菜单——ArrayList与Widget的依赖性 4.10 心爱小宝贝相片集——Gallery与衍生BaseAdapter容器 4.11 快速的搜索手机文件引擎——JavaI/O的应用 4.12 按钮也能随点击变换——ImageButton选择特效 4.13 具自动提示功能的菜单——AutoCompleteTextView与数组 4.14 数字及模拟小时钟设计——AnalogClock与DigitalClock的原理 4.15 动态输入日期与时间——DatePicker与TimePicker应用 4.16 猜猜红心A在那儿——ImageView点击事件与透明度处理 4.17 后台程序运行进度提示——ProgressBar与Handler的整合应用 4.18 动态文字排版——GridView与ArrayAdapter设计 4.19 在Activity里显示列表列表——ListView的布局 4.20 以动态列表配置选项——ListActivity与Menu整合技巧 4.21 查找程序根目录下所有文件——JavaI/O与ListActivity的结合.. 4.22 加载手机磁盘里的图文件——使用decodeFile方法 4.23 动态放大缩小ImageView里的图片——运用Matrix对象来缩放图文件 4.24 动态旋转图片——Bitmap与Matrix旋转ImageView 4.25 猜猜我在想什么——RadioButtonID 4.26 离开与关闭程序的弹出窗口——对话窗口上的ICON图标 第5章 交互式通信服务与手机控制 5.1 具有正则表达式的TextView——Linkify规则 5.2 ACTION!CALL!拨打电话——Intent.ACTION.CALL的使用 5.3 自制发送短信程序——SmsManager与PendingIntent对象 5.4 自制发送Email程序——Intent在Email上的使用 5.5 自制日历手机数据库——实现SQLiteOpenHelper 5.6 手机震动的节奏——Vibrator对象及周期运用 5.7 图文可视化提醒——Toast与LinearLayoutView 5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用 5.9 搜索手机通讯录自动完成——使用ContentResolver 5.10 取得联系人资料——Provider.Contact的使用 5.11 制作有图标的文件资源管理器——自定义Adapter对象 5.12 还原手机默认桌面——重写clearWallpaper方法 5.13 置换手机背景图——Gallery与setWallpaper整合实现 5.14 撷取手机现存桌面——getWallpaper与setImageDrawable 5.15 文件资源管理器再进化——JavaI/O修改文件名及删除 5.16 取得目前File与Cache的路径——getCacheDir与getFilesDir 5.17 打开/关闭WiFi服务——WifiManager状态判断 5.18 取得SIM卡内的信息——TelephonyManager的应用 5.19 调用拨号按钮——打电话CALL_BUTTON 5.20 DPAD按键处理——onKeyDown事件与Layout坐标交互 5.21 任务管理器正在运行的程序——RunningTaskInfo 5.22 动态更改屏幕方向——LANDSCAPE与PORTRAIT 5.23 系统设置更改事件——onConfigurationChanged信息处理 5.24 取得电信网络与手机相关信息——TelephonyManager与android.provider.Settings.System的应用 第6章 手机自动服务纪实 6.1 您有一条短信popup提醒——常驻BroadcastReceiver的应用 6.2 手机电池计量还剩多少——使用BroadcastReceiver捕捉Intent.ACTION_BATTERY_CHANGED 6.3 群发拜年短信给联系人——ACTION_PICK与Uri对象 6.4 开始与停止系统服务——Service与Runnable整合并用 6.5 通过短信发送email通知——BroadcastReceiver与Intent整合 6.6 手机拨接状态——PhoneStateListener之onCallStateChanged 6.7 有来电,发送邮件通知——PhoneStateListener与ACTION_SEND 6.8 存储卡剩余多少容量——Environment加StatFs 6.9 访问本机内存与存储卡——File的创建与删除 6.10 实现可定时响起的闹钟——PendingIntent与AlarmManager的运用 6.11 黑名单来电自动静音——PhoneStateListener与AudioManager 6.12 手机翻背面即静音震动——SensorListener及AudioManager整合应用 6.13 指定时间置换桌面背景——多AlarmManager事件处理 6.14 判断发送短信后的状态——BroadcastReceiver聆听PendingIntent 6.15 后台服务送出广播信息——sendBroadcast与BroadcastReceiver 6.16 开机程序设计——receiver与intent-filter协同作业 6.17 双向短信常驻服务——Service与receiver实例 第7章 娱乐多媒体 7.1 访问Drawable资源的宽高——ContextMenu与Bitmap的应用 7.2 绘制几何图形——使用android.graphics类 7.3 手机屏幕保护程序——FadeIn/FadeOut特效与运行线程 7.4 用手指移动画面里的照片——onTouchEvent事件判断 7.5 加载存储卡的Gallery相簿——FileArrayList 7.6 取得手机内置媒体里的图文件——ACTION_GET_CONTENT取回InputStream 7.7 相片导航向导与设置背景桌面——ImageSwitcher与Gallery 7.8 调整音量大小声——AudioManager控制音量 7.9 播放mp3资源文件——raw文件夹与MediaPlayer的使用 7.10 播放存储卡里的mp3音乐——MediaPlayer.setDataSource 7.11 自制录音/播放录音程序——MediaRecorder与AudioEncoder 7.12 通过收到短信开始秘密录音——MediaRecorder与BroadcastReceiver实例 7.13 内置影片播放器载入3gp电影——VideoViewWidget 7.14 自制3gp影片播放器——MediaPlayer与实现SurfaceView 7.15 相机预览及拍照临时文件——Camera及PictureCallback事件 第8章 当Android与Internet接轨 8.1 HTTPGET/POST传递参数——HTTP连接示范 8.2 在程序里浏览网页——WebView.loadUrl 8.3 嵌入HTML标记的程序——WebView.loadData 8.4 设计前往打开网页功能——Intent与Uri.parse 8.5 将网络图像网址放入Gallery中显示——URL.URLConnection.BaseAdapter 8.6 即时访问网络图文件展示——HttpURLConnection 8.7 手机气象局,实时卫星云图——HttpURLConnection与URLConnection和运行线程 8.8 通过网络播放MP3——Runnable存储FileOutputStream技巧 8.9 设置远程下载音乐为手机铃声——RingtoneManager与铃声存放路径 8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——利用SAXParser解析XML 8.14 远程下载安装Android程序——APKInstaller的应用 8.15 手机下载看3gp影片——Runnable混搭SurfaceView 8.16 访问网站LoginAPI——远程服务器验证程序运行权限 8.17 地震速报!——HttpURLConnection与Service侦测服务 第9章 Google服务与Android混搭 9.1 Google帐号验证Token——AuthSub 9.2 Google搜索——AutoCompleteTextView与GoogleSearchAPI 9.3 前端产生QRCode二维条形码——GoogleChartAPI 9.4 以经纬度查找目的地位置——GeoPoint与MapView的搭配运用 9.5 GPSGoogle地图——LocationListener与MapView实时更新 9.6 移动版GoogleMap——Geocoder反查Address对象 9.7 规划导航路径——DirectionsRoute 9.8 移动设备上的Picasa相册——GooglePicasaAPI 9.9 随身翻译机——GoogleTranslateAPI 第10章 创意Android程序设计 10.1 手机手电筒——PowerManager控制WakeLock并改变手机亮度 10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二维条形码生成器——Canvas与SurfaceHolder绘图 10.5 AndroidQRCode二维条形码扫描仪——BitmapFactory.decodeByteArray 10.6 上班族今天中午要吃什么——热量骰子地图 10.7 掷杯筊——把手机放在空中甩事件处理...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值