Android应用开发之初级入门介绍_第1页
Android应用开发之初级入门介绍_第2页
Android应用开发之初级入门介绍_第3页
Android应用开发之初级入门介绍_第4页
Android应用开发之初级入门介绍_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Android应用开发——初级入门介绍纲要Android开发类型Android框架简述Android工具搭建Android开发环境简单Android案例演示目录结构分析Android应用的根本组件介绍Android的开发类型移植开发系统应用程序开发Android系统开发移植开发系统应用程序开发Android系统开发Android框架简述第四层:Java应用第三层:Java框架第二层:本地框架和Java运行环境第一层:Linux内核及驱动Android框架简述Android的软件结构的四个层次:操作系统层〔Linux,相关驱动〕库〔Libraries〕和运行环境〔RunTime〕应用程序框架〔ApplicationFramework〕应用程序〔Application〕Android框架简述操作系统层使用C语言编写,运行于内核空间。底层库和JAVA虚拟机使用C语言编写,运行于用户空间。JAVA框架和JAVA应用程序使用C语言编写,运行于用户空间。Android的第1层次由C语言实现,第2层次由C和/C++实现,第3、4层次主要由Java代码实现。第1层次和第2层次之间,从Linux操作系统的角度来来看,是内核空间与用户空间的分界线,第1层次运行于内核空间,第2、3、4层次运行于用户空间。第2层次和第3层次之间,是本地代码层和Java代码层的接口。第3层次和第4层次之间,是Android的系统API的接口,对于Android应用程序的开发,第3层次以下的内容是不可见的,仅考虑系统API即可。操作系统层〔Linux,相关驱动〕Linux操作系统和驱动:Android的核心系统效劳依赖于Linux内核,如平安性,内存管理,进程管理,网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的抽象层。库〔Libraries〕和运行环境〔RunTime〕Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过Android应用程序框架为开发者提供效劳。系统C库:一个从BSD继承来的标准C系统函数库,专门为基于嵌入式linux的设备定制的。媒体库:基于PacketVideoOpenCORE;该库支持多种常用的音频、视频格式回放和录制。SurfaceManager:对显示子系统的管理,图层功能。WebCore:一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。SGL:Skia的2D图形引擎3Dlibraries:基于OpenGL实现;该库可以使用硬件3D加速〔如果可用〕或者使用高度优化的3D软加速。FreeType:位图〔bitmap〕和矢量〔vector〕字体显示库〔Libraries〕和运行环境〔RunTime〕Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行〔.dex〕的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于存放器的,所有的类都经由JAVA编译器编译,然后通过SDK中的"dx"工具转化成.dex格式由虚拟机执行。Dalvik虚拟机依赖于linux内核的一些功能,比方线程机制和底层内存管理机制。应用程序框架〔ApplicationFramework〕开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块〔不过得遵循框架的平安性限制〕。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的效劳和系统,其中包括;丰富而又可扩展的视图〔Views〕,可以用来构建应用程序,它包括列表〔lists〕,网格〔grids〕,文本框〔textboxes〕,按钮〔buttons〕,甚至可嵌入的web浏览器。内容提供器〔ContentProviders〕:使得应用程序可以访问另一个应用程序的数据〔如联系人数据库〕,或者共享它们自己的数据资源管理器〔ResourceManager〕:提供非代码资源的访问,如本地字符串,图形,和布局文件〔layoutfiles〕。通知管理器〔NotificationManager〕:使得应用程序可以在状态栏中显示自定义的提示信息。活动管理器〔ActivityManager〕:用来管理应用程序生命周期并提供常用的导航回退功能。应用程序〔Application〕Android会同一系列核心应用程序包一起发布,这些应用程序包也就是预置的应用程序,主要包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。Android工具aapt〔AndroidAssetPackagingTool〕用于建立Zip兼容的包(zip,jar,apk),也可用于编译资源到二进制的assets。abd〔AndroidDebugBridge,Android调试桥〕使用Adb工具可以在模拟器或设备上安装应用程序的.apk文件,并从命令行访问模拟器或设备。也可以用它把Android模拟器或设备上的应用程序代码和一个标准的调试器连接在一起。$./out/host/linux-x86/bin/adbshell$./out/host/linux-x86/bin/adbinstallXXX.apk$./out/host/linux-x86/bin/adbpush{host_path}{target_path}$./out/host/linux-x86/bin/adbpull{target_path}{host_path}Android工具AIDL工具〔AndroidInterfaceDescriptionLanguage,Android接口描述语言〕可以生成进程间的接口的代码,诸如service可能使用的接口。AVDs〔AndroidVirtualDevices,Android虚拟设备〕用于配置仿真器的选项,使用实际的设备。DDMS〔DalvikDebugMonitorService,Dalvik调试监视器效劳〕这个工具集成了Dalvik,能够在模拟器或者设备上管理进程并协助调试。可以使用它杀死进程,选择某个特定的进程来调试,产生跟踪数据,观察堆〔heap〕和线程信息,截取模拟器或设备的屏幕画面,还有更多的功能。Android工具dxDx工具将.class字节码〔bytecode〕转换为Android字节码〔保存在.dex文件中〕。Draw9-patchDraw9-patch工具允许使用所见即所得〔WYSIWYG〕的编辑器轻松地创立NinePatch图形。Emulator〔模拟器〕它是在的计算机上运行的一个虚拟移动设备。可以使用模拟器来在一个实际的Android运行环境下设计,调试和测试的应用程序。HierarchyViewer〔层级观察器〕层级观察器工具允许调试和优化的用户界面。它用可视的方法把的视图〔view〕的布局层次展现出来,此外还给当前界面提供了一个具有像素栅格(grid)的放大镜观察器。Android工具mksdcard帮助创立磁盘映像〔diskimage〕,可以在模拟器环境下使用磁盘映像来模拟外部存储卡〔例如SD卡〕。MonkeyMonkey是在模拟器上或设备上运行的一个小程序,它能够产生为随机的用户事件流,例如点击(click),触摸(touch),挥手〔gestures〕,还有一系列的系统级事件。可以使用Monkey来给正在开发的程序做随机的,但可重复的压力测试。sqlite3sqlite3工具能够方便地访问SQLite数据文件。Traceview这个工具可以将的Android应用程序产生的跟踪日志〔tracelog〕转换为图形化的分析视图搭建Android开发环境主流IDE选择EclipseIntellijideaAndroidStudio环境选择Intellijidea+jdk+sdk简单Android案例演示简单开发一个Android应用程序演示目录结构分析工程结构目录res、src、AndroidManifest.xml这三个是必须的,其他可选目录结构分析res目录:存放Android工程的各种资源文件,比方layout存放界面布局文件,values目录下那么存放各种XML格式的资源文件,例如字符串资源文件:strings.xml:颜色资源文件:colors.xml:尺寸资源文件:dimens.xmUdrawable-ldpi、drawab丨e-mdpi、drawable-hdpi、drawable-xhdpi这4个子目录那么分别用于存放低分辨率、中分辨率、高分辨率、超高分辨率的4种图片文件。src目录只是一个普通的、保存Java源文件的目录。AndroidManifest.xml文件是Android工程的系统清单文件,它用于控制Android应用的名称、图标、访问权限等整体属性。除此之外Andriod应用的Activity、Service、ContentProvider、BroadcastRecevier这4大组件都需要在该文件中配置目录结构分析bin:目录录用于存放生成的目标文件,如Java的二进制文件、资源打包文件〔.ap_后缀〕、Dalvik虚拟机的可执行性文件〔.dex后缀〕等。gen:目录录用于保存自动生成的、位于Android工程包下的R.java文件。Android应用的根本组件介绍Android应用通常由一个或多个根本组件组成,最常用的组件就是Activity。还包括Service、BroadcastReceiver、ContentProvider等组件。View组件是所有U丨控件、容器控件的基类,View组件就是Android应用中用户实实在在看到的局部。但View组件需要放到容器组件中,或者使用Activity将它显示出来。如果需要通过某个Activity把指定View显示出来,调用Activity的setContentView()方法即可。如下代码://创立一个线性布局管理器LinearLayoutlayout=newLinearLayout(this);//设置该Activity显示layoutsetContentView(layout);上面的程序通过代码创立了一个LinearLayout对象〔它是ViewGroup的子类,ViewGroup又是View的子类〕,接着调用Activity的setContentView(layout)把这个布局管理器显示出来。setContentVujwO方法也可接受一个布局管理资源的ID作为参数,例如如下代码://设置该Activity显示main•xml文件定义的ViewsetContentView(R.layout.main);Android应用的根本组件介绍Activity组件Activity为Android应用提供了可视化用户界面,如果该Android应用需要多个用户界面,那么这个Android应用将会包含多个Activity,多个Activity组成Activity栈,当前活动的Activity位于栈顶。Android应用的根本组件介绍Service组件Service与Activity的地位是并列的,它也代表一个单独的Android组件。Service与Activity的区别在于:Service通常位于后台运行,它一般不需要与用户交互,因此Service组件没有图形用户界面。与Activity组件需要继承Activity基类相似,Service组件需要继承Service基类。一个Service组件被运行起来之后,它将拥有自己独立的生命周期,Service组件通常用于为其他组件提供后台效劳或监控其他组件的运行状态。Android应用的根本组件介绍BroadcastReceiver组件BroadcastReceiver是Android应用中另一个重要的组件,从代码实现角度来看,BroadcastReceiver非常类似于事件编程中的监听器。与普通事件监听器不同的是:普通事件监听器监听的事件源是程序中的对象:而BroadcastReceiver监听的事件源是Android应用中的其他组件。使用BroadcastReceiver组件接收广播消息比较简单,开发者只要实现自己的BroadcastReceiver子类,并重写onReceive(Contextcontext,Intentintent)方法即可,当其他组件通过sendBroadcast〇、sendStickyBroadcast()或sendOrderedBroadcast〇方法发送播送消息时,如该BroadcastReceiver也对该消息“感兴趣”〔通过IntentFiiter配置〕,BroadcastReceiver的onReceive(Contextcontext.Intentintent)方法将会被触发。开发者实现了自己的BroadcastReceiver之后,通常有两种方式来注册这个系统级的“事件监听器”。在Java代码中通过Context.registReceiver()方法注册BroadcastReceiver。在AndroidManifest.xm丨文件中使用<receiver/>元素完成注册。Android应用的根本组件介绍ContentProvider组件对于Android应用而言,它们必须相互独立,各自运行在自己的Dalvik虚拟机实例中,如果这些Android应用之间需要实现实时的数据交换。例如我们开发了一个发送短信的程序,当发送短信时需要从联系人管理应用中读取指定联系人的数据——这就需要多个应用程序之间进行数据交换。需要实现如下抽象方法。insert(Uri,ContentValues}:向ContentProvider插入数据。delete(Uri,ContentValues):删除ContentProvider中指定数据。update(Uri,ContentValues,String,String[]>:更新ContentProvider中指定数据。query(Uri,StringD,String,String[],String):从ContentProvider査询数据。通常与ContentProvider结合使用的是ContentResolver,一个应用程序使用ContentProvider暴露自己的数据,而另一个应用程序那么通过ContentResolver来访问数据。Android应用的根本组件介绍Intent和IntentFilter严格地说,Intent并不是Android应用的组件,但它对于Android应用的作用非常大一它是Android应用内不同组件之间通信的载体。当Android运行时需要连接不同的组件时,通常就需要借助于Intent来实现。Intent可以启动应用中另一个Activity,也可以启动一个Service组件,还可以发送一条播送消息来触发系统中的BroadcastReceiver。也就是说,Activity、Service、BroadcastReceiver三种组件之间的通信都以Intent作为载体,只是不同组件使用Intent的机制略有区别而己。>当需要启动一个Activity时,可调用Context的startActivity(Intentintent〉或startActivityForResult(lntentintent,intrequestCode)方法,这两个方法中的Intent参数封装了需要启动的目标Activity的信息。>当需要启动一个Service时,可调用Context的startServ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论