您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 疯狂Android讲义-学习笔记
《疯狂Android讲义》学习笔记1内容简介本书全面地介绍了Android应用开发的相关知识,内容覆盖了Android用户界面编程、Android四大组件、Android资源访问、图形/图像处理、事件处理机制、Android输入/输出处理、音频/视频多媒体应用开发、OpenGL与3D应用开发、网络通信编程、Android平台的WebService、传感器应用开发、GPS应用开发、GoogleMap服务等。本书适合于有一定Java编程基础的读者。适合已熟练掌握Java编程语法并具有一定图形界面编程经验的读者。否则,建议先认真阅读《疯狂Java讲义》。本书介绍的平台是Android2.3平台。第1章Android应用与开发环境1.Android系统底层建立在Linux系统之上。该系统有OS、中间件、用户界面和应用软件四层组成。2.Android系统主要由5部分组成:(1)应用程序层(2)应用程序框架(API)(3)函数库(4)Android运行时:Android核心库集+Dalvik虚拟机每个Android应用程序都运行在单独的一个Dalvik虚拟机内。(5)Linux内核3.ADTbundleforwindows开发环境构建(1)JAVASDK(JDK)的安装(2)下载ADT-BundleforWindows(3)安装ADT-Bundle直接把下载下来的的adt-bundle-windows-xxx-xxx.zip,解压到你需要安装的位置。(4)安装AndroidSDK打开解压出来的文件夹里面的SDKManager.exe,勾选上你目标安卓版本,最好是全部勾上,然后点击InstallPackage按提示next,accept允许等待安装(这是一个慢长的过程)。(5)配置AndroidAVD(虚拟模拟器)打开Eclipse(eclipse/eclipse.exe),然后Windows-AndroidVirtualDeviceManger打开AVD管理器。点击New按钮创建你一新的AVD,填写参数,点击OK就行了。配置的这个AVD是会做为安卓应用的默认调试摸拟器,也可以配置多个。(6)创建一个HelloWorld项目通过File-New-AndroidApplicationProject,然后输入HelloWorld(项目名字),next,finish。(7)从运行HelloWorld直接点击RunDebug(快捷键F11)就可以在你配置的模拟器里运行了。4.DDMS(DalvikDebugMonitorService)(1)在eclipse中启动DDMS:在eclipse界面的右上角,点击,选择other,双击DDMS。Window-OpenPerspective-DDMS,点击启动。(2)Dalvik调试监控服务作用:提供截屏,查看线程和堆的信息,logcat,进程,广播状态信息,模拟来电呼叫和短信,虚拟地理坐标等等。《疯狂Android讲义》学习笔记2(3)DDMS在IDE与设备或模拟器之间的起着中间人的角色。DDMS启动时会与ADB之间建立一个devicemonitoringservice用于监控设备。当设备断开或链接时,这个service就会通知DDMS。当一个设备链接上时,DDSM和ADB之间又会建立VMmonitoringservice用于监控设备上的虚拟机。通过ADBDeamon与设备上的虚拟机的debugger建立链接,这样DDMS就开始与虚拟机对话了。(4)DDMS监听第一个终端应用进程的端口为8600,第二个终端应用进程将分配8601,如果有更多终端应用进程将按照这个顺序依次类推。DDMS通过8700端口(”baseport”)接收所有终端的指令。(5)DDMS面板各部分组成的功能简介①左上角Devices:可以查看到所有与DDMS连接的模拟器详细信息,以及每个模拟器正在运行的APP进程,每个进程最右边相对应的是与调试器链接的端口。②左下角LogCat:主要输出模拟器的一些信息③右上角:◆Threads:线程视图列出了此进程的所有线程。◇ID:虚拟机分配的唯一的线程ID,在Dalvik里,它们是从3开始的奇数。◇Stauts:线程状态,◇running:正在执行程序代码◇sleeping:执行了Thread.sleep()◇monitor:等待接受一个监听锁。◇wait:Object.wait()◇native:正在执行native代码◇vmwait:等待虚拟机◇zombie:线程在垂死的进程◇init:线程在初始化(我们不可能看到)◇starting:线程正在启动(我们不可能看到)◇utime:执行用户代码的累计时间◇stime:执行系统代码的累计时间◇name:线程的名字◆Heap:展示一些堆的状态,在垃圾回收其间更新。当选定一个虚拟机时,VMHeap视图不能显示数据,可以点击右边面包上的带有绿色的”Showheapupdates”按钮,然后在点击”CauseGC“实施垃圾回收更新堆的状态。◆AllocationTracker:跟踪每个选中的虚拟机的内存分配情况。点击”StartTracking”后点击”GetAllocations“即可看到。◆FileExporler文件浏览器:通过DeviceFileExplorer就打开FileExplorer。这里可以浏览文件,上传上载删除文件。◆EmulatorControl可以实现对模拟器的控制,比如:接听电话,根据选项模拟各种不同网络情况,模拟接受SMS消息和发送虚拟地址坐标用于测试GPS功能等。◇TelephonyStatus:通过选项模拟语音质量以及信号连接模式。◇TelephonyActions:模拟电话接听和发送SMS到测试终端。◇LocationControl:模拟地理坐标或者模拟动态的路线坐标变化并显示预设的地理标识,可以通过以下3种方式:·Manual:手动为终端发送二维经纬坐标。·GPX:通过GPX文件导入序列动态变化地理坐标,从而模拟行进中GPS变化数值。《疯狂Android讲义》学习笔记3·KML:通过KML文件导入独特的地理标识,并以动态形式根据变化的地理坐标显示在测试终端。④其他◆V:输出所有的信息D:输出Debug信息I:输出info信息W:输出警告信息E:输出错误的信息:能删除当前LogCat输出的信息◆ScreenCapture通过DeviceScreenCapture就可以截图。◆ExploringProcesses通过DeviceShowprocessstatus,这里信息是通过shell命令”ps-x”输出的。◆ExamineRadioState通过DeviceDumpradio,检测广播状态。◆StopaVirtualMachine通过ActionsHaltVM,停止一个虚拟机。5.ADB(AndroidDebugBridge)功能(1)查看当前运行的模拟器(Emulator)(2)模拟器文件与电脑文件的相互复制(3)启动模拟器的shell窗口,执行一些常用的Linux命令(4)安装、卸载APK应用6.Android项目打包成APK文件(1)生成keystore在C:\ProgramFiles\Java\jdk1.6.0_10\bin目录下,输入keytool-genkey-aliasandroid.keystore-keyalgRSA-validity100000-keystoreandroid.keystore参数意义:-validity主要是证书的有效期,写100000天;空格,退格键都算密码。执行后会在C:\ProgramFiles\Java\jdk1.6.0_10\bin目录下生成android.keystore文件。(2)EclipseAndroid生成apk文件选择要打包的项目,右键点击–Androidtools–ExportSignedApplicationPackage…接下来的步骤就是不断的next,完成以下工作,最终生成的apk文件。◆选择打包的项目◆选择生成的EclipseAndroid.keystore文件并输入密码◆选择aliaskey并输入密码◆选择生成androidapk文件的目录及文件名7.Android应用程序结构《疯狂Android讲义》学习笔记4目录或文件名称说明HelloWorld项目名src源文件文件夹com.android.helloworld.activity包名称HelloWorldActivityActivity类gen保存自己动生成的R资源文件夹gen-com.android.helloworld.activity包名称gen-com.android.helloworld.activity-R.java系统自动生成的资源索引类Android2.3.3-android.jarAndroidSDKJar文件assets保存原始资源的文件夹,在程序运行过程中可以通过相关的API获得res全部资源文件夹,内容与R.java对应drawable保存图片等资源文件夹drawable-icon.png图标文件layout界面布局文件夹layout-main.xml界面布局文件values简单值配置文件夹,存放XML格式文件values-strings.xml字符串配置文件AndroidMainfest.xmlAndroid配置清单文件,用于控制Android应用的名称、图标、访问权限等整体属性default.xml属性文件8.UI组件上的几个通用属性:Android:id控件唯一标识,可通过findViewByID(“id”)获取指定界面组件Android:layout_width指定界面组件的宽度=fill_parent:与其父容器等高度(宽度)=wrap_content:组件高度(宽度)取决于其内容Android:layout_height指定界面组件的高度9.Android让XML文档专门负责用户UI设置,Java程序专门负责业务实现。我们可以近似把main.xml文件当成一个HTML页面,他们都通过标记语言定义用户界面。区别在于HTML页面使用HTML标签,main.xml文件使用Android标签。《疯狂Android讲义》学习笔记510.R.java文件(1)R.java文件的两条规则:◆每类资源对应R类的一个内部类:例如:所有界面布局资源对应于layout内部类;所有字符串资源对应于与内部string内部类;所有标识资源对应于id内部类。◆每个具体的资源项对应于内部类的一个publicstaticfinalint类型的Field(2)在Java代码中使用R.Java文件中的资源:◆R.资源文件类型.资源文件名称即R.内部类名.int类型的Field如:R.string.app_name(3)在XML文件中使用资源:◆@资源对应的内部类的类名/资源项的名称如:@string/app_name◆@+id/标识符代号如:android:id=”@+id/ok”此时程序中引用该id组件可以有两种方法实现:Java代码:调用Activity的findViewVyID()方法XML文件:通过资源引用,即@id标识符代号(4)除了访问用户自己定义的资源文件,还可以访问系统中的资源文件。大部分的资源文件被定义在android包下的R类中。访问系统中的资源文件格式为:android.R.资源文件类型.资源文件名称。(5)扩展说明◆资源文件与清单文件AndroidManifest.xmlA.application元素中的android:icon属性会通过@drawable/icon的方式引用drawable资源文件夹中定义的icon.png图片作为Android桌面的启动图标;android:label会通过@string/app_name的方式来引用values资源文件夹中XML文件中name属性值是app
本文标题:疯狂Android讲义-学习笔记
链接地址:https://www.777doc.com/doc-6365546 .html