android

发布时间:   来源:文档文库   
字号:
常见术语
1.apk扩展名
apkAndroid包的扩展名,一个Android包包含了与某个Android应用程序相关的所有文件,apk文件将
AndroidManifest.xml文件、应用程序代码(dex文件、资源文件和其他文件组成一个压缩包,一个项目只能打包压缩成一个apk文件。
2..dex扩展名
Android的程序被编译成.dex(DalvikExecutable格式文件,然后再进行打包生成可被直接安装的apk文件。
3.应用程序(APP
一个或多个Activity、服务、监听和Intent接收器的集合,一个应用程序有一个文件清单,并且打包成一个apk文件。
3.Action
Intent发送器意图的描述,一个活动是一个指派给Intent的字符串值。活动字符串可以由Android定义,也可以由第三方开发者定义。例如,在网页URL中使用的android.intent.action.VIEW或者在用户应用程序中使用的com.example.rumbler.SHAKE_PHONE来使电话震动。
4.ADBAndroidDebugBridge
SDK自带的一个基于命令行的调试程序。它提供了设备浏览工具、设备上的拷贝工具和为调试转寄端口的功能。更多信息请参考附录三(AndroidADB工具使用)。
5.内容源
内容源是建立在类ContentProvider之上的用于处理指定格式的内容请求字符串,并返回指定格式的数据的类。关于内容源的使用信息请参考本书第7章内容。
6.DalvikAndroid
虚拟机的名字,Dalvik虚拟机是一个只能解释执行dex文件的虚拟机,dex文件针对存储性能和内存管理进行了优化。
Dalvik虚拟机是基于寄存器的虚拟机,并且能够运行经过Dalvik自带的dx工具转换过的Java类。虚拟机运行在兼容Posix的操作系统上,依赖于底层的功能(如线程和低级内存管理Dalvik的核心类库有意做得与Java标准版非常类似,但它明显更适合小型移动设备。
7.DDMS
调试监视服务(DalvikDebugMonitorServiceDalvikSDK自带的一个可视的调试工具。它提供了屏幕捕捉、日志存储和进程检测能力。
8.Drawable
编译过的可视化资源,可以用来做背景、标题或屏幕的其他部分。它被编译在android.graphics.drawable子类中。
9.意图(Intent
意图是一个Intent类,它包含很多描述调用者意图做什么的字段。调用者发送意图到Android意图处理器,意图处理器会遍历所有应用程序的意图过滤器来查找与该意图最匹配的Activity。意图字段包括渴望的动作、种类、数据、数据的MIME类型、一个处理类和其他约束。
10.意图过滤器(intent-filter
Activity和意图接收器(Receiver在它们的文件清单中包含一个或多个过滤器,用来描述什么类型的意图或者信息是它们能处理或想接收的。一个意图过滤器列出了一系列要求,例如,意图或信息必须满足的数据类型、被请求的动作和URI的格式。对于ActivityAndroid搜索意图和Activity过滤器匹配程度最高的Activity;对于消息,Android会将消息转发给所有匹配意图过滤器的接收器。
11.Intent接收器(Receiver
一个监听是由Context.broadcastIntent(发出的信息广播的类,详细信息请参考本书第9章。
12.布局资源
一个描述Activity屏幕布局的XML文件。
13.文件清单
应用程序中的一个XML文件,用于描述包中多个ActivityIntent过滤器、服务和其他内容。可以打开AndroidManifest.xml查看其包含的内容。
14.Nine-patch/9-patch/Ninepatchimage
一种可变尺寸的位图资源,可用作设备上的背景或其他图片。
15.资源

用户提供的XML、位图或其他文件,构建程序时会导入进来,稍后会被代码加载,Android支持多种类型的资源,请参考Resources中的详细描述,程序定义的资源文件应当保存在res/子目录下。
16.服务(Service
运行在后台执行多种固定任务的类,如播放音乐或检测网络活动。
17.主题(Theme
一系列定义多种默认显示设置的参数(文字大小、背景颜色等AndroidR.style中提供了几个标准的主题("Theme_"开头
18.URIs
Android使用URI字符串请求数据(如通信录列表和动作(如在浏览器中打开网页URI字符串可以具有不同的格式。所有请求数据的URI必须以content://开头。有效的动作URI字符串会被设备上的适当的程序处理,例如,以http://开头的URI字符串会被浏览器处理。
Android模拟器
AndroidEmulator是一款功能非常齐全的模拟器,电话本、通话等功能都可进行模拟。甚至其内置的浏览器和GoogleMaps都可以联网。用户可以使用键盘输入,单击模拟器按键输入,甚至还可以使用鼠标单击、拖动屏幕进行操作。1.模拟器和真机的不同之处
*不支持呼叫和接听实际来电,但可以通过控制台模拟电话呼叫(呼入和呼出*不支持USB连接。
*不支持相机/视频捕捉。
*不支持音频输入(捕捉,但支持输出(重放*不支持扩展耳机。*不能确定连接状态。
*不能确定电池电量水平和交流充电状态。*不能确定SD卡的插入/弹出。*不支持蓝牙。
2.参数大全
Android模拟器emulator.exe文件包含了很多参数,平时在EclipseIDE中,模拟器运行被自动调用的,如果仅仅使用Androidemulator或采用NetBean这样的开放环境又如何设置呢?我们总结了一下模拟器的所有参数及使用方法,具体如下所示。



AndroidEmulatorusage:emulator[options][-qemuargs]options:
-systemreadsystemimagesfrom-datadirwriteuserdatainto-kernelemulatedkernel指定内核文件
-ramdiskramdiskimage(default/ramdisk.img创建内存磁
-imagesystemimage(default/system.img
-initdatainitialuserimage(default/userdata.img-dataworkinguserimage(default/userdata-qemu.img
-wipe-dataresettheuserdataimage(copyitfrominitdata清除所有用户数据
-nocachedisablethecachepartition禁止分区缓存
-sdcardSDcardimage(default/sdcard.img使用SD卡映
-skindirsearchskinsin(default/skins搜索外观皮肤路径
-skinselectagivenskin选择Android模拟器皮肤ID
-noskindon'tuseanyemulatorskin不使用任何模拟器外观,这样有助于提高模拟器速度,内存小的用户可以尝试
-netspeedmaximumnetworkdownload/uploadspeeds设置网络速度如GPRSEDGE3G更多详细的内容下面有介绍
-netdelaynetworklatencyemulation网络延时设置
-netfastdisablenetworkshaping(fullspeed,nolatency网络全速工作
-traceenablecodeprofiling(pressF9tostart跟踪调试-debug-kernelsendkerneloutputtotheconsole内核调试-consoleenableconsoleshelloncurrentterminal启用控制台Shell在当前中端
-nojnidisableJNIchecksintheDalvikruntime禁用JNI检查-logcatenablelogcatoutputwithgiventags设置log输出标签-noaudiodisableandroidaudiosupport禁用音频支持
-useaudioenableandroidaudiosupport(default启用音频支持-micWAVfileforaudioinput使用wav文件模拟mic麦克输入-flash-keysflashkeypressesonthedeviceskin
-raw-keysdisableUnicodekeyboardreverse-mapping
-radioredirectradiomodeminterfacetocharacterdevice-oldradioenableoldVM-basedsimulatedradio-onionuseoverlayimageoverscreen
-onion-alpha<%age>specifyonionskintranslucency(default50
-http-proxymakeTCPconnectionsthroughaHTTP/HTTPSproxy代理服务器设置
-verboseenableverboseoutput
-verbose-keysenableverbosekeypresses-verbose-proxyenableproxydebugmessages
-versiondisplayemulaterversionnumber-qemupassargumentstoqemu-qemu-hdisplayqemuhelp-helpprintthishelpDefaultnetworklatencyis'none'canbeoneofthefollowing:
http://:
http://:@:
the'http://'prefixcanbeomitted.If'-http-proxy'isnotused,the'http_proxy'environmentvariableislookedupandanyvaluematchingtheformatwillbeusedautomatically

3.快捷键
Android模拟器同样存在很多快捷键,当模拟器运行时,可以使用下面的快捷键来操作Androidemulator,这样比用键盘和鼠标操作更高效,不妨试一下:
D:\unsetup\android-sdk-windows-1.1_r1\tools>emulator.exe-help-keys
Whenrunningtheemulator,usethefollowingkeypresses:
HOMEHomebutton主界面键
F2,PAGEUPMenu(Soft-Leftbutton左软键Shift-F2,PAGEDOWNStar(Soft-Rightbutton右软键ESCAPEBackbutton后退键
F3Call/Dialbutton拨号/呼叫键F4Hangup/EndCallbutton结束通话F7Powerbutton电源键F5Searchbutton搜索键
KEYPAD_PLUS,Ctrl-F5Volumeupbutton增大音量键KEYPAD_MINUS,Ctrl-F6Volumedownbutton减小音量键Ctrl-KEYPAD_5,Ctrl-F3Camerabutton相机键
KEYPAD_7,Ctrl-F11switchtopreviouslayout返回键KEYPAD_9,Ctrl-F12switchtonextlayout后一个界面
F8togglecellnetworkon/off禁止/启用所有网络F9togglecodeprofiling开始跟踪
Alt-ENTERtogglefullscreenmode打开/关闭全屏模式F6toggletrackballmode打开/关闭轨迹球DELETEshowtrackball显示轨迹球KEYPAD_5DPadcenter导航中建/OKKEYPAD_4DPadleft左键KEYPAD_6DPadright右键KEYPAD_8DPadupshang上键KEYPAD_2DPaddown下键
KEYPAD_MULTIPLYincreaseonionalphaKEYPAD_DIVIDEdecreaseonionalpha
4.模拟器使用注意事项
平时使用emulator测试开发程序时,可能会遇到系统关于C盘空间不足之类的提示,这是由于Android模拟器每次运行时会临时生成几个.tmp后缀的临时文件,一段时间后,其可能占用几G的磁盘空间。所以需要手工定期清理一下C:\DocumentsandSettings\sh\LocalSettings\Temp\AndroidEmulator文件夹下的内容。
AndroidADB工具使用
SDKTools文件夹下包含着Android模拟器操作的重要命令ADBADB的全称为AndroidDebugBridge,就是调试桥的作用,借助这个工具,我们可以管理设备或手机模拟器的状态,还可以进行以下的操作:
1)快速更新设备或手机模拟器中的代码,如应用或Android系统升级;2)在设备上运行Shell命令;
3)管理设备或手机模拟器上的预定端口;4)在设备或手机模拟器上复制或粘贴文件。
ADB的工作方式比较特殊采用监听SocketTCP5554等端口的方式让IDEQemu通信,默认情况下ADBdaemon相关的网络端口,所以当我们运行EclipseADB进程就会自动运行,在Eclipse中通过DDMS来调试Android程序;也可以通过手动方式调用,以下为一些常用的操作供参考。


1.版本信息
D:\unsetup\android-sdk-windows-1.0_r1\tools>adbversionAndroidDebugBridgeversion1.0.20
2.安装应用到模拟器
adbinstall[-l][-r]
其中file是需要安装的apk文件的决定路径。
3.卸载已经安装的应用1)方法1
adbuninstall[-k]
其中package表示需要卸载的应用的包的名字,k表示是否保留应用的配置信息和cache数据。
2)手动删除。adbshellcd/data/apprmapp.apk
4.进入设备或模拟器的Shelladbshell
通过上面的命令,就可以进入设备或模拟器的Shell环境中,在这个LinuxShell中,可以执行各种Linux的命令,另外如果只想执行一条Shell命令,可以采用以下的方式:adbshell[command]如:
D:\unsetup\android-sdk-windows-1.0_r1\tools>adbshelldf
/dev:49564Ktotal,0Kused,49564Kavailable(blocksize4096
/sqlite_stmt_journals:4096Ktotal,0Kused,4096Kavailable(blocksize4096/system:69120Ktotal,65508Kused,3612Kavailable(blocksize4096/data:76544Ktotal,63684Kused,12860Kavailable(blocksize4096/cache:69120Ktotal,1244Kused,67876Kavailable(blocksize4096
5.转发端口
可以使用forward命令进行任意端口的转发一个模拟器/设备实例的某一特定主机端口向另一不同端口的转发请求。下面演示了如何建立从主机端口7100到模拟器/设备端口8100的转发。adbforwardtcp:7100tcp:8100
同样地,可以使用ADB来建立命名为抽象的UNIX域套接口,上述过程如下所示:adbforwardtcp:7100local:logd
6.复制文件
可以使用adbpull,push命令将文件复制到一个模拟器/设备实例的数据文件或是从数据文件中复制。install命令只将一个apk文件复制到一个特定的位置,与其不同的是,pullpush命令可让用户复制任意的目录和文件到一个模拟器/设备实例的任何位置。从模拟器或者设备中复制文件或目录,使用如下命:adbpull
将文件或目录复制到模拟器或者设备,使用如下命令:adbpush
在这些命令中,分别指通向自己的发展机(本地)和模拟器/设备实例(远程)上的目标文件/目录的路径。下面是一个例子::
adbpushfoo.txt/sdcard/foo.txt
7.搜索模拟器/设备的实例
取得当前运行的模拟器/设备的实例的列表及每个实例的状态,如:D:\unsetup\android-sdk-windows-1.0_r1\tools>adbdevicesListofdevicesattachedHT843GZ03305device
8.查看bug报告
D:\unsetup\android-sdk-windows-1.0_r1\tools>adbbugreport==========================================================dumpstate
========================================================------SYSTEMLOG------
04-1216:59:46.521D/ShowTrack(23968:MyOverlay::darw..mDefCaption=I'mHere.04-1216:59:46.531D/ShowTrack(23968:MyOverlay::darw..mDefCaption=I'mHere.04-1216:59:46.531D/ShowTrack(23968:MyOverlay::darw..mDefCaption=I'mHere.

04-1216:59:46.541D/ShowTrack(23968:MyOverlay::darw..mDefCaption=I'mHere.04-1216:59:47.391I/ActivityManager(55:Startingactivity:Intent{comp={com.iceskysl.iTracks/com.iceskysl.iTracks.iTracks}}04-1216:59:47.641D/iTracks(23968:renderListView.
04-1216:59:47.671D/ShowTrack(23968:MyOverlay::darw..mDefCaption=I'mHere.04-1216:59:47.681D/ShowTrack(23968:MyOverlay::darw..mDefCaption=I'mHere.
9.记录无线通讯日志
一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:
D:\unsetup\android-sdk-windows-1.0_r1\tools>adbshell#logcat-bradiologcat-bradio
D/HTC_RIL(30:(t=1239390296<<0
D/HTC_RIL(30:(t=1239390296>>AT@HTCPDPFD=0D/HTC_RIL(30:(t=1239390296<<0
D/HTC_RIL(30:(t=1239390296>>AT+CSQ
D/HTC_RIL(30:(t=1239390296<<+CSQ:29,99D/HTC_RIL(30:0
D/HTC_RIL(30:(t=1239390296>>AT+CREG?D/HTC_RIL(30:(t=1239390296<<+CREG:2,3D/HTC_RIL(30:0
10.获取设备的ID和序列号adbget-product
D:\unsetup\android-sdk-windows-1.0_r1\tools>adbget-serialnoHT843GZ03305
11.通过远程Shell端运行AQLite3连接数据库
通过ADB远程Shell端,可以通过Android的软AQLite3命令程序来管理数据库。SQLite3工具包含了许多使用命令,例如,.dump显示表的内容,.schema可以显示出已经存在的表空间的SQLCREATE结果集。SQLite3还允许远程执行sql命令。
通过SQLite3,按照前面的方法登录模拟器的远程Shell端,然后启动工具就可以使用SQLite3令。当SQLite3启动以后,还可以指定想查看的数据库的完整路径。模拟器/设备实例会在文件夹中保SQLite3数据库/data/data//databases/
示例如下:
$adbshell
#sqlite3/data/data/com.example.google.rss.rssexample/databases/rssitems.dbSQLiteversion3.3.12
Enter".help"forinstructions....entercommands,thenquit...
sqlite>.exit
当启动SQLite3的时候,就可以通过Shell端发送SQLite3,命令了。用exit组合键退出ADB远程Shell端。
12.ADB命令列表
下列表格列出了adb支持的所有命令,并对它们的意义和使用方法做了说明.Category
Command
Description
Comments如果不只是用USB接口来管理则返回错误
-d仅仅通过USB接口来管理abd
Options
-e
仅仅通过模拟器实例来管理adb
如果不是仅仅通过模拟器实例管理则返回错误
-s通过模拟器/设备的允许命令号码来发送命如果没有指定号码,则令来管理adb(―emulator-5556″会报错

devices
查看Queryingfor
查看所有连接模拟器/设备的设施的清单Emulator/Device
Instances获取更多相关信息查看adb所支持的所有命令

General
help
version查看adb的版本序列号
logcat
[
《android.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式