当前位置: 网学 > 编程文档 > Android > 正文

android 基础知识

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: myeducs.cn 发布时间: 13/03/17

【网学网提醒】:以下是网学会员为您推荐的android 基础知识,希望本篇文章对您学习有所帮助。


    1、Android模拟器介绍
    Android中提供了一个模拟器来模拟ARM核的移动设备。Android的模拟器是基于QEMU开发的,QEMU是一个有名的开源虚拟机项目(详见bellard.org/qemu/),它可以提供一个虚拟的ARM移动设备。Android模拟器被命名为goldfish,用来模拟包括下面一些功能的ARMSoC:
    *ARM926ej-SCPU
    *Thumbsupport
    *MMC
    *RTC
    *Keyboard
    *USBGadget
    *framebuffer
    *TTYdriver
    *NANDFLASH
    Android模拟器所对应的源代码主要在external/qemu目录下。如果你想将Android移植到其他设备上,熟悉它目前所针对的模拟器环境可以提供一些参考。
    对于应用程序的开发者,模拟器提供了很多开发和测试时的便利。无论在Windows下还是Linux下,Android模拟器都可以顺利运行,并且Google提供了Eclipse插件,可将模拟器集成到Eclipse的IDE环境。当然,你也可以从命令行启动Android模拟器。
    这款模拟器功能非常齐全,电话本、通话等功能都可正常使用(当然你没办法真的从这里打电话)。甚至其内置的浏览器和GoogleMaps都可以联网。用户可以使用键盘输入,鼠标点击模拟器按键输入,甚至还可以使用鼠标点击、拖动屏幕进行操纵。
    当然模拟器毕竟是模拟器,和真实的机子还是存在差别的,
    android模拟器和真机的不同之处:
    *不支持呼叫和接听实际来电;但可以通过控制台模拟电话呼叫(呼入和呼出)
    *不支持USB连接
    *不支持相机/视频捕捉
    *不支持音频输入(捕捉);但支持输出(重放)
    *不支持扩展耳机
    *不能确定连接状态
    *不能确定电池电量水平和交流充电状态
    *不能确定SD卡的插入/弹出
    *不支持蓝牙
    2、创建和启动Android模拟器
    要玩GPhone的模拟器,当然需要先去developer.android/sdk(如果打不开就用http://androidappdocs.appspot/sdk/index.html)上面下载Android的SDK,解压出来后在SDK的根目录下有一个tools文件夹,里面就是模拟器和一些非常有用的工具。(SDK详细的安装过程请参照blog.csdn.net/magicyu2/archive/2009/11/02/4755747.aspx)
    要正确的启动模拟,你必须先要创建一个AVD(AndroidVirtualDevice虚拟设备),你可以利用AVD创建基于不同版本的模拟器,下面就介绍如何创建AVD:
    (1)查看当前支持版本(在列出的版本中我们需要记住id值,这个值在第2步中使用):
    magicyu@magicyu-desktop:~$androidlisttarget
    你可以看到几个AvailableAndroidtargets,比如:Name:Android1.6,他们有各自的id号。
    (2)创建AVD:
    magicyu@magicyu-desktop:~$androidcreateavd-nmagicyu-t2
    -n后面接需要创建avd的名字,-t后面接需要创建虚拟器的类型,2即为步骤(1)中得到的类型id号。
    (3)查看是否
    创建成功(如果成功会显示刚才我们创建的avd信息):
    magicyu@magicyu-desktop:~$androidlistavd
    (4)启动模拟器:
    magicyu@magicyu-desktop:~$emulator@magicyu或者
    emulator-avdmagicyu
    其中@和-avd后接的是你创建过的avd名字
    (5)选择启动的皮肤
    magicyu@magicyu-desktop:~$emulator-avdmagicyu-skinQVGA
    skin后面接所要启动皮肤的类型,所有的类型可以在/platforms/android-1.*/skins目录下找到,*为所指的版本。如在1.6版本的SDK下有HVGA,QVGA,WVGA800,WVGA854几种。按Ctrl+F11,可以直接改变模拟器的横纵摆放。
    当然AVD也可以在Eclipse中创建和启动。关于Eclipse+ADT+SDK的安装请参见blog.csdn.net/magicyu2/archive/2009/11/02/4755747.aspx。
    运行Eclipse,Window->AndroidSDKandAVDManager,就能得到如下的界面,选择新建即可新建一个AVD。
    3、Android模拟器的一些工具
    (1)adb:
    ADB(AndroidDebugBridge)是Android提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机模拟器的状态还可以进行以下的操作:
    a、快速更新设备或手机模拟器中的代码,如应用或Android系统升级;
    b、在设备上运行shell命令;
    c、管理设备或手机模拟器上的预定端口;
    d、在设备或手机模拟器上复制或粘贴文件
    一些常用的操作:
    进入Shell:adbshell
    通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个LinuxShell中,你可以执行各种Linux的命令,另外如果只想执行一条shell命令,可以采用以下的方式:
    adbshell[command]
    如:adbshelldmesg会打印出内核的调试信息。
    (Android的linuxshell做了大量精简,很多linux常用指令都不支持)
    上传文件:adbpush
    下载文件:adbpull
    安装程序:adbinstall
    卸载软件:adbshellrm/data/app/
    补充一点,通过adb安装的软件(*.apk)都在”/data/app/”目录下,所以安装时不必制定路径,卸载只需要简单的执行”rm”就行。
    结束adb:adbkill-server
    显示android模拟器状态:
    adbdevices(端口信息)
    adbget-product(设备型号)
    adbget-serialno(序列号)
    等待正在运行的设备:adbwait-for-device
    端口转发:adbforwardadbforwardtcp:5555tcp:1234
    (将默认端口TCP5555转发到1234端口上)
    查看bug报告:adbbugreport
    adbshellsqlite3访问数据库SQLite3
    adbshelllogcat-bradio记录无线通讯日志:一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录
    应用程序配置文件:
    “AndroidManifest.xml”中
    “”
    决定是否应用程序是否显示在Panel上
    (2)am指令(在shell内使用am来加载android应用):
    am[start|instrument]
    amstart[-a]
    [-d]
    [-t]
    [-c[-c]…]
    [-e[
    -e...]
    [-n][-D][]
    aminstrument[-e]
    [-p]
    [-w]
    启动浏览器:
    amstart-aandroid.intent.action.VIEW-dgoogle/
    拨打电话:
    amstart-aandroid.intent.action.CALL-dtel:10086
    启动googlemap直接定位到北京:
    amstart-aandroid.intent.action.VIEWgeo:00?q=beijing
    (3)为模拟器加上SD卡:
    emulator-sdcarddcard.img
    下面我们再来说说如何创建”sdcard.img”文件:
    “tools”目录下还有另外一个很好用的工具mksdcard,一看名字就知道——makesdcard。对,就用它来创建一个“SD卡”。
    命令为:
    mksdcard1024MD:dcard.img
    OK这样一个容量为1G的SD卡就创建完毕了。
    使用SDCard:
    创建:mksdcard
    (bytes(default),K,M)
    连接到模拟器:emulator-sdcard
    传文件到SDCard:adbpush
    (4)Android模拟器打电话发短信
    GPhone的模拟器有个特有的号码:15555218135,这个就类似我们实体手机的SIM卡号码啦。要实现拨号,用手机?当然不行!
    更简单,三步:
    1.打开终端
    2.连接:telnetlocalhost5554(5554是你打开模拟器后上面显示的数字)
    3.命令:gsmcall15555218135
    look!是不是模拟器上显示来电了?接听/挂断和实体手机一样。
    发短信也一样简单,重复上面1,2两步,第三部命令改一下:
    smssend15555218135HellothisisaMessage.
    4、Android模拟器主要命令参数介绍
    emulator[-[]]…[-]
    下面的表总结了可用的参数
    Help
    -help打印模拟器参数列表。
    -help-all打印所有启动参数明细。
    -help-打印指定启动参数的信息。
    -help-debug-tags打印所有被-debug打开的列表。
    -help-disk-images打印正在使用的磁盘镜像信息。
    -help-environment打印模拟器环境变量信息。
    -help-keys打印当前的键盘映射。
    -help-keyset-file打印一个自定义的键盘映射文件的定义。
    DiskImages
    -cache使用指定网络缓存分区镜像。
    自定义,您可以指定一个当前工作目录的相对路径。如果没有指定缓存文件,模拟器会指定一个零时文件作为缓存文件。更多信息请参考-help-disk-images.
    -data使用作为用户数据磁盘镜像。
    自定义,您可以指定一个当前工作目录的相对路径。如果-data没有被使用,模拟器会在指定的目录下寻找名叫”userdata-qemu.img”的镜像文件。默认情况下,模拟器会寻找~/.android(onLinux/Mac)或者C:\DocumentsandSettings\\LocalSettings\ApplicationData\Android(onWindows)。
    如果您使用了-data,但是文件并不存在,模拟器将创建同名文件。
    更多信息请参见运行多个模拟器实例和-help-disk-images。
    -image使用作为系统镜像。
    自定义,您可以指定一个当前工作目录的相对路径。默认为/system.img。
    -initdata
    重写用户数据镜像时,(使用-
    wipe-data),复制此文件内容到新用户数据文件镜像中。默认方式下,模拟器拷贝/userdata.img。
    自定义,您可以指定一个当前工作目录的相对路径。参见-wipe-data。
    更多信息请参见-help-disk-images。
    -kernel使用作为模拟器内核。自定义,您可以指定一个当前工作目录的相对路径。
    -nocache启动模拟器时无缓存分区。参见-cache。
    -ramdisk使用作为虚拟内存镜像。默认为/ramdisk.img.自定义,您可以指定一个当前工作目录的相对路径。更多信息请参见-help-disk-images。
    -sdcard使用作为SD卡镜像。默认为/sdcard.img.自定义,您可以指定一个当前工作目录的相对路径。更多信息请参见-help-disk-images。
    -system在指定的下搜索系统、虚拟内存和用户数据镜像文件。为当前路径的相对目录。
    -wipe-data重至用户数据镜像文件。(thatisthefilespecifiedby-datadirand-dataorthedefaultfile).模拟器删除所有用户数据,然后复制右-inidata参数指定的数据到镜像文件,在启动之前。参见-initdata.更多信息请参见-help-disk-images。
    Debug
    -debug开启/关闭指定tag的调试信息。
    是一个被空格/逗号/纵列所分割的调试组建名称列表。更多信息参见-help-debug-tags。
    -debug-开启/关闭指定tag的调试信息。使用-help-debug-tags获得您可以指定为的调试组件列表。
    -debug-no-关闭指定tag的调试信息。
    -logcat打开指定tag的日志输出。如果环境变量ANDROID_LOG_TAGS被指定且不为空,她的值将成为日志输出的默认值。
    -shell创建一个拥有root权限的命令行窗口。即使模拟器的UI界面无法使用了,您依然可以使用命令行窗口。按Ctr-c键中断模拟器运行。
    -shell-serial打开具有root权限的脚本窗口。必须是一个QEMU类型的设备。参见’serial-dev’在bellard.org/qemu/qemu-doc.html#SEC10上关于设备类型的列表信息。这儿有一些例子:
    ·-shell-serialstdioisidenticalto-shell
    ·-shell-serialtcp::4444servernowait让您的shell可以通过4444端口通讯。
    ·-shell-serialfdpair:3:6让模拟器可以使用3(in)和6(out)磁碟机。
    ·-shell-serialfdpair:0:1usesthenormalstdinandstdoutfdsexceptthatQEMUwon’ttty-cookthedata.
    -show-kernel显示内核信息。
    -traceEnablecodeprofiling(pressF9tostart)writtentoaspecifiedfile.
    -verbose开启冗长输出。Equivalentto-debug-init.您可以定义ANDROID_VERBOSE环境变量作为冗长输出参数。定义你想用到的参数,用逗号分割。这样可以省略像-debug-这样的参数。下面是一个设置ANDROID_VERBOSE的例子,它带有-debug-init和-debug-modem参数:
    ANDROID_VERBOSE=initmodem更多信息参见.
    Media
    -audio使用指定的音频后端。
    -audio-in使用指定的音频输入后端
    。
    -audio-out使用指定的音频输出后端。
    -noaudio在当前虚拟机实例中关闭音频支持。
    -radio重新定向收音机接口到本地的字节设备。
    -useaudio打开模拟器实例的音频支持。默认为打开。
    Network
    -dns-server使用指定的DNS服务器。必须是以逗号分割,多于4个的服务器名或IP地址。
    -http-proxy配置TCP连接使用HTTP/HTTPS代理。
    必须符合以下格式::
    :@:前缀可以被忽略。如果-http-proxy未被指定,模拟器将寻找http_proxy环境变量,并且自动寻找所有符号格式要求的值。
    -netdelay设置网络延迟默认值为none。参见NetworkDelayEmulation中关于的值。
    -netfast快捷的-netspeedfull-netdelaynone
    -netspeed指定模拟器网络速度为.默认值为full。参见表格NetworkSpeedEmulation中的值。
    -port指定模拟器网络端口为.控制台端口号必须介于5554和5584之间,并且+1必须留作ADB使用。
    -report-console启动前向第三方同志此模拟器实例的网络端口。必须是以下几种格式
    tcp:[server][max=]
    unix:[server][max=]
    更多信息参见-help-report-console
    System
    -cpu-delay降低模拟器CPU的速度到。支持0到100的整数。注意与具体的时钟或其他的绝对频率无关。它只表现为一种抽象的,相对于当前模拟器运行状况的速度调节。
    -gps重定向NMEAGPS到字节设备。
    使用此参数通知模拟器模拟一个NMEA-compatibleGPS,连接到一个扩展的设备或socket端口。格式必须符合QEMU-specific所指定的设备格式。更多信息参见’serial-dev’和bellard.org/qemu/qemu-doc.html#SEC10.
    -nojni在Dalvik运行时关闭JNI检查
    -qemu传递参数到qemu。
    -qemu-h关闭qemu帮助。
    -radio重定向录音机模块到制定的字符设备。格式必须符合QEMU规定的序列设备。详情参见bellard.org/qemu/qemu-doc.html#SEC10.
    -timezone设定模拟器时区为,替换为系统时区。必须按照时区格式指定。比如:”America/Los_Angeles”,”Europe/Paris”
    -version显示模拟器版本号。
    UI
    -dpi-device修改模拟器的分辨率适配物理设备。默认值为165。参见-scale.
    -no-boot-anim关闭模拟器启动时的动画。禁用启动动画可以加快启动速度。
    -no-window关闭模拟器的绘制窗口。
    -scale调整模拟器窗口。是介于0.1到3的数字,它是调整屏幕的比例因子。您也可以指定一个DPI值,在添加dpi前缀的情况下。Auto参数告诉模拟器选择自己最合适的尺寸。
    -raw-keys关闭Unicode键盘reverse-mapping.
    -noskin不使用任何模拟器皮肤。
    -keyset用指定的键盘设置文件代替默认。指定宿主键盘和模拟器之间的键盘映射文件。更多信息参见-help-keyset。
    -onion用图片覆盖屏幕。不支持JPEG,只支持PNG
    -o
    nion-alpha指定onion皮肤透明值(百分比)默认为50.
    -onion-rotation指定onion皮肤旋转。必须是0123中的一个。
    -skin启动模拟器,搭配指定皮肤。
    -skindir在指定目录下搜索皮肤
    
  • 下一篇资讯: Android 基础T1
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号