100 likes | 340 Views
Android 应用程序 开发基础. Android 应用程序框架. Android 应用程序框架. Android 工程主要包括两个区域,源码区和资源区 开发人员编写的代码主要放在 src 目录下,另外一个源码区是 gen 目录,这里的源码都是自动生成 ( 如资源类 R 主要存放资源 ID ) 资源文件主要放在 res 目录下,该目录下有三个子目录 drawable-hdpi 、 drawable-mdpi 、 drawable-ldpi ,开发时需要将同一文件按不同分辨率放入这三个文件夹中
E N D
Android应用程序框架 • Android工程主要包括两个区域,源码区和资源区 • 开发人员编写的代码主要放在 src 目录下,另外一个源码区是 gen 目录,这里的源码都是自动生成( 如资源类R主要存放资源ID ) • 资源文件主要放在res目录下,该目录下有三个子目录drawable-hdpi、drawable-mdpi、drawable-ldpi,开发时需要将同一文件按不同分辨率放入这三个文件夹中 • 除了drawable资源目录外,还有很多保存其他资源的目录,如layout(保存布局文件)、values(保存字符串、数组、颜色等资源)等
AndroidManifest.xml文件的结构 • AndroidMnifest.xml是整个Android应用程序的核心 一个Android应用程序可以没有Activity(也就是没有界面的程序),但必须有此文件,它是程序中的核心配置文件,而且必须在工程的根目录 • AndroidMnifest.xml主要工作 • 定义应用程序的Java包,这个包将作为应用程序的唯一标示 • 配置AndroidMnifest,xml可以让Android系统知道如何处理这些应用程序组件 • 确定哪一个Activity将作为第一个运行的Activity • 在默认情况下,Android系统会限制使用某些API,因此,需要在该文件中配置这些API的授权后才可以使用它们
AndroidManifest.xml文件的结构 • 授权与其他的应用程序组件进行交互 • 在AndroidManifest.xml文件中配置一些特殊类,这些类在应用程序运行时提供调试及其他信息。但这些类只在开发和测试时使用,当应用程序发布时这些配置将被删除 • 定义了Android应用程序所需要的最小API级别 (Android2.3 APILevel = 9) • 指定应用程序中引用的程序库
应用程序组件 • Android程序中没有入口函数(Main方法),取而代之的是一系列的应用程序组件,这些组件可以单独实例化,应用程序对外共享功能一般也是通过应用程序组件实现的 • Android支持的4种应用组件 • Activity(Android的窗体) • Activity是Android的核心类,类似于C/S模型中的窗体(form)或Web程序的页面,它提供了一个可视化的区域,在此区域中个可以放各种控件,如,按钮、图像、文本框 • Activity的初始化一般在onCreate() 方法中,通过setContentView()方法可以将View加载到Activity中,绑定后Activity会显示View上的控件
应用程序组件 • 一个带界面的Android程序由一个或多个Activity组成,至于这些Activity如何工作,则完全取决于应用程序的业务逻辑 • 每一个Activity都会有一个窗口。Activity窗口中的可视化组件由View及其子类组成,这些组件按照XML布局文件中指定的位置在窗口上进行摆放 • Service(服务) • 服务没有可视化接口,但可以在后台运行 • 服务类必须从android.app.Service继承 • 服务也可以和其他程序进行通讯。当与服务连接成功,就可以利用服务中共享出来的接口与服务进行通讯,如控制音乐播放的服务允许用户进行暂停、重放、停止音乐的播放
应用程序组件 • BroadcastReceiver (广播接收器) • 广播接收器组件唯一的功能就是接收广播动作,以及对广播动作做出响应 • 广播事件来源一般有两种:由系统发出的(时区的变化、电池电量的不足、接收短信等),以及由应用程序发出的(通知其他程序数据已经下载完毕,并且这些数据已经可以使用了) • 广播接收类都需继承android.content.Broadcast Receiver类,并且一个应用程序可以有多个广播接收器 • 广播接收器的特征 • 广播接收器和服务一样,都没有用户接口,但在广播接收器中可以启动一个Activity来响应广播动作
应用程序组件 • Content Provider(内容提供者) • 内容提供者可以为其他应用程序提供数据,是一个特殊的存储数据的类型。这些数据可以保存在文件系统中,例如,SQLite数据库或任何其他格式的文件 • 内容提供者类都需从android.content.ContentProvider类继承 • 在Content Provider类中中定义了一系列方法,通过这些方法可以使其它的应用程序获得内容提供者所提供的数据。但在应用程序中不能直接调用这些方法,需要通过android.content.ContentResolver类的方法来调用内容提供者类中提供的方法 • 在Android中很多内嵌的应用程序,如联系人、短信等都提供了Content Provider,其他应用程序通过这些Content Provider 可以对系统内部的数据实现、删、改操作
Android程序的UI设计 • UI布局设计是在Android程序的总体工作量中占了很大比重 • Android中UI布局设计的方法 • 手工配置XML布局文件 这一块并不复杂,我们只需要打开布局文件,按照一定的格式编辑布局文件即可 • ADT自带的可视化UI设计器 通过Graphical Layout 标签进入可视化设计界面,界面左侧列出了控件。右侧是可视化UI设计区,通过控件的右键菜单的相应菜单项可以设置控件的属性 • 使用第三方的UI设计器