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-datareset the user data image (copy it from initdata) 清除所有用户数据
-nocachedisable 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
网络延时设置
-netfastdisable network shaping (full speed, no latency)
网络全速工作
-trace <name> enablecode profiling (press F9 to start)
跟踪调试
-debug-kernel send kerneloutput to the console
内核调试
-consoleenable console shell on current terminal
启用控制台Shell在当前中端
-nojnidisable JNI checks in the Dalvik runtime
禁用JNI检查
-logcat <tags> enable logcatoutput with given tags
设置log输出标签
-noaudiodisable android audio support
禁用音频支持
-useaudioenable android audio support (default)
启用音频支持
-mic <file>WAV file for audio input
使用wav文件模拟mic麦克输入
-flash-keys flashkey presses on the device skin
-raw-keysdisable Unicode keyboard reverse-mapping
-radio <device> redirect radio modeminterface to character device
-oldradioenable 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
代理服务器设置
-verboseenable verbose output
-verbose-keysenable verbose key presses
-verbose-proxy enable proxy debugmessages
-versiondisplay emulater version number

-qemupass arguments to qemu
-qemu -hdisplay qemu help
-helpprint 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文件夹下的内容。


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


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


EclipseIDE Android开发工具插件(AndroidDevelopment Tools Pluginforthe 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环境中,在这个LinuxShell中,可以执行各种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中核心包有哪些,及其作用?


更多相关文章

  1. 如何用命令(cmd)创建开启AVD
  2. Android入门扫盲之一
  3. 【Android】adb shell 命令探索
  4. 在android虚拟机中安装删除应用程序
  5. Android: 如何创建AVD以及选择合适target类型
  6. android 3.0中加快启动模拟器
  7. AnDroidDraw.apk的安装
  8. Android系统底层架构【译】
  9. android 3.0中加快启动模拟器

随机推荐

  1. Android(安卓)完全退出
  2. Android(安卓)Studio中Gradle编译配置
  3. android 利用ksoap2方式连接webservice
  4. android直接从图片中对二维码编码解码
  5. Android屏蔽home键的代码,咋摁也不响应的
  6. 升级android sdk到5.0,创建项目错误解决方
  7. Android如何获取asset目录下所有文件的路
  8. Android(安卓)Dialog顶部显示+横向全屏+
  9. Android(安卓)2.3文档学习
  10. android 利用Gson生成json数据