首先介绍一下Android体系结构,如果有不对的地方望指正!
Android作为一个移动开发平台,其软件结构自下而上可以分为几次几个层次:
操作系统(os),中间件(MiddleWare),应用程序(Application),其中,MiddleWare包括了各种库(Libraries)和Android运行环境以及应用程序框架(Application Framework)
1.应用程序(Application)
Android本身提供了桌面(Home),联系人(Contact),电话(Phone)和浏览器(Browers)等核心应用,应用程序开发者可以利用应用程序框架层的API实现自己的程序。
2.应用程序框架(Application Framework)
下面介绍一下每个应用程序可能会使用到的应用框架的部分:
  • 一组Views(UI组件),这些UI组件包括列表(List),文本框(textbox),按钮(button)等,通过这些UI组件可以构建应用程序的视图部分;
  • Content Providers,其提供一种机制,通过这种机制,应用程序可以实现数据的互访和共享;
  • Resource Manger,它负责管理非代码的访问,如图片资源,设计布局的XML文件及国际化的字符串等;
  • Notification Manager,它能让程序将自己的警示信息显示在状态栏上,例如有短信的时候;
  • Activity Manager,它管理应用程序的生命周期,并且提供了应用页面退出机制在Android应用中每一个应用一般是由多个页面组成的,每一个页面的单位都是Activity,也就是说Android的应用程序是由多个Activity的交互构成的;
3.库(Libraries)和运行环境(RunTime)
这部分开始涉及底层,与应用程序的关系不是很密切。
Android中包含一些C/C++库,这些库可以被Android系统中不同的组件使用,通过Android应用程序框架为开发者提供服务,一下是一些核心库:
系统C库、媒体库、LibWebCore等。
Android包括了一个核心库,该库提供了java编程语言核心库的大多数功能。
4.操作系统(os)
每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik依赖于Linux内核的一些功能,例如,线程机制和底层内存管理机制。

其次是Android应用程序组成
一个Android程序有四个部分组成:Activity、Broadcast Intent Receiver、Service、Content Provider。并不是每一个程序都是由这四部分组成的,例如HelloWorld只涉及了Activity。在Android中有一个叫做AndroidManifest.xml,在这个文件中需要申明用到的上面四类组件名称,以及可能为每一个组件的功能和需求进行必要的描述。下面分别介绍一下这四个组件:
1、Activity
它是Android中最基本的模块之一,Activity一般代表手机屏幕的一屏。Activity相当于一个UI的容器,在Activity中可以添加一些View,并对这些View做一些事件处理,例如加一些Button,Check box等,按一下button可以实现Activity之间的跳转,和网页跳转不同的是Activity之间的跳转可能会有返回值。Android会把每一个应用程序的Activity都保存在堆栈中。
Intent就是一次对将要执行的操作的抽象描述,Intent最常用的作用是通过Intent可以实现多个Activity之间的跳转,Intent中重要的部分是Intent动作(Action)和动作对应的数据(Data),典型的动作有:MAIN(Activity的门户)、VIEW、PICK、EDIT等而动作对应的数据则以URI的形式进行标示,例如查看一个人的联系方式,需要创建一个VIEW动作的Intent,以及这个人的URI,下面代码是实现两个Activity之间的跳转(A跳转到B):
Intent in = new Intent(A.this,B.class);//指定Intent要启动的类startActivity(int);//启动一个新的ActivityA.this.finish();//关闭当前的Activity

与Intent有关的类叫做Intent Filters,一个Intent Filters用于描述一个Activity可以操作哪些Intent,一个Activity如果需要显示一个人的联系方式,需要声明一个Intent Filters,这个Intent Filters要知道如何处理VIEW动作和表示一个人的URI,Intent Filters一般在AndroidManifest.xml中定义。
2、Broadcast Intent Receiver
利用它可以让应用对一个外部事件做出响应。例如来电或是下载成功后,需要利用BroadcastReceiver进行处理,它通过Notification Manager来通知用户这些事发生了!BroadcastReceiver既可以在AndroidManifest.xml中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册;各种应用程序可以通过使用Context.sendBroadcast()将他们自己的intent broadcasts广播给其他应用程序。
3、Service
举个例子:打开一个新的应用程序原来的应用程序仍在进行,这就是通过Service进行控制的。通过startService(Intent service)可以启动一个Service,通过Context.bindService()可以绑定一个Service。
4、Content Provider
数据在Android中是私有的,Content Provider类实现了一组标准的方法接口,从而能够让其他应用程序保存和读取此Content Provider的各种数据。下面列举一些常见的接口:
query(Uri,String[],String,String[],String)通过关键字查询数据
insert(Uri,ContentValues)将一组数据插入到指定的地方
update(Uri,ContentValues,String,String[])更新数据
delete(Uri,String,String[])删除数据

最后介绍一下Android应用工程中文件组成
  • 源文件,源文件都在src目录中;
  • R.java文件,这个文件是Eclipse自动生成的,R文件对开发者来说是没用的,但是对Android系统非常有用,在该文件中Android对下边即将介绍的资源进行了全局索引,如果res文件夹中的内容发生了改变,R.java会重新编译,同步更新;
  • Android Library,这个事应用运行的Android库;
  • assets目录,放置多媒体等一些文件;
  • res目录,放置应用到的资源文件:drawable里面放置用到的图片资源;layout里面放置用到的布局文件,这些文件都是xml的;values里面放置字符串文件(strings.xml)、颜色文件(colors.xml)、数组文件(arrays.xml);
  • AndroidManifest.xml,该文件是配置文件,在该文件中必须声明应用的名称,Activity,Service以及receiver,content provider;

更多相关文章

  1. Android中Gallery的应用
  2. 2011.07.05(2)——— android PopupWindow
  3. android broadcast intent
  4. android中之断点续传
  5. Android(安卓)文件实现断点上传
  6. android读写文件
  7. android aidl通讯两个APP之间的应用
  8. Android学习——在Android中使用OpenCV的第一个程序
  9. android上传图片至服务器

随机推荐

  1. Android 中各种XML文件的作用
  2. Android中删除常用联系人(下)
  3. android利用广播和服务实现一个杀不死的
  4. Android中的strings文件中字符串的拼接
  5. [置顶] Android中万能适配器
  6. 如何让Android下的多行edittext焦点光标
  7. YAHFA hook的简单实例 ,hook自己的android
  8. Android中不常见的监听: 鼠标划过/双击/右
  9. Android(安卓)闹钟详解
  10. Android WebView 支持H5图片上传