码迷,mamicode.com
首页 > 移动开发 > 详细

Android应用程序结构

时间:2015-08-18 22:45:15      阅读:379      评论:0      收藏:0      [点我收藏+]

标签:android应用   架构   

一、Android应用程序的架构

Android软件层次结构自上而下可以分为:

        应用程序(Application)

        应用程序框架(Appliciation Framework)

        各种库(Libraries)和Android运行环境(RunTime)

        操作系统层(OS)

二、应用程序

       Android的应用程序通常涉及用户界面和用户交互,这类程序是用户实实在在能感觉到的。Android的应用程序目前以JAVA语言进行编写。应用程序的开发者还可以使用应用程序框架层的API实现自己的程序,这也是Android开源的具体体现。

三、应用程序框架

        UI组件:包括列表,文本框,按钮。

        Content  Providers:通俗的理解Content  Provider就是提供了一种机制,通过这种机制,应用程序可以实现数据的互访和共享。

        Resource  Manager :负责管理非代码,如本地图片资源,涉及布局的XML文件及国际化的字符串等。

        Notification Manager :它能让程序将自己的警示信息显示在状态栏上。例如短信,来电提醒等。

        Activity Manager :它管理着应用程序的生命周期,并且提供了应用页面退出的机制。在Android应用中,每一个应用一般是由多个页面组成的,而每个页面的单位就是Activity,再通俗地讲,可以认为Android的应用是由多个Activity的交互构成的。

四、库和运行环境

       Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过Android应用程序框架为开发者提供服务。核心库:

        系统C库:专门为基于嵌入式linux的设备而定制的;

        媒体库:支持多种常用的音频,视频格式回放和录制,同时支持静态图像文件;

        Surface Manager :对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合;

        LibWebCore:一个最新的Web浏览器引擎,用来支持Android浏览器和一个可嵌入的Web视图;

        SGL :底层的2D图形引擎;

        3D  libraries:基于OpenGL ES 1.0 APIs实现,该库可以使用硬件3D加速,或者使用高度优化的3D软加速;

        FreeType :位图和矢量字体显示;

        SQLite :一个对于所有应用程序可用,功能强大的轻型关系型数据库引擎;

五、android应用程序的组成

       Android应用程序一般由以下四个部分组成:Activity,Broadcast Intent Recevier,Service,Content Provider。

       当然一个应用程序可以由上述的四个或者四个中的其中部分组成。

       在android项目里边有一个XML的描述文件,叫做AndroidManifest.xml。在这个文件中需要声明用到的上边4类组件名称,以及可能为每个组件的功能和需求进行必要的描述。

       通过Intent我们可以在多个Activity之间进行跳转。Intent中有两个最重要的部分是Intent的动作和动作对应的数据。典型的动作有MAIN,VIEW,PICK,EDIT等。而动作对应的数据则以URI的形式进行表示。与Intent有关系的一个类叫做Intent Filters。如果说Intent是一个有效的请求,一个Intent Filters则用于描述一个Activity能够操作哪些Intent。一个Activity如果要显示一个人的联系方式时,需要声明一个Intent Filters,这个Intent  Filters要知道怎样去处理VIEW动作和表示一个人的URI.Intent  Filters一般在AndroidManifest.xml中定义。

       可以使用BroadcastReceiver来让应用对一个外部的事件做出响应。BroadcastReceiver不能生成UI,即对于用户不是透明的,用户是看不到的。BroadcastReceiver通过NotificationManager来通知用户这些事情发生了。BroadcastReceiver即可以在AndroidManifest.xml中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册。只要注册了,当事件来临的时候,即使程序没有启动,系统也在变需要的时候启动程序,各种应用还可以通过使用Context.sendBroadcasr()将它们自己的intent broadcast广播给其他应用程序。

       Android数据在系统中是私有的,当然这些数据包括文件数据和数据库数据,以及一些其他类型的数据。Content Provider类实现了一组标准的方法接口,从而能够让其他的应用保存或者读取此Content Provider的各种数据类型。

六、android 应用工程文件的组成

        源文件:在src目录中

        R.java文件:这个文件由eclipse自动生成,开发者不需要修改里边的内容,里边内容的修改由eclipse自动处理,R文件对于应用开发者来说基本上没有什么用,但是对Android系统非常有,android对于资源进行了全局索引,当res文件夹中的内容发生变化时,R.java都会重新编译,同步更新。

        Android Library:这是应用程序运行的Android库

        Assets目录:存放多媒体等一些文件

        Res目录:放置应用用到的资源文件,在这个文件中发生变化时,R文件就会自动发生变化

        Drawable目录:主要放置应用到的图片资源

        Layout 目录:主要放置用到的布局文件,都是XML文件

        Values目录:主要存放字符串,颜色,数组,都是XML文件

        AndroidManifest.xml:相当于配置文件,在这个文件中必须声明应用的名称,应用所用到的Activity,Service以及Receiver等。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android应用程序结构

标签:android应用   架构   

原文地址:http://blog.csdn.net/u010963246/article/details/47760879

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!