查看: 1329|回复: 0
打印 上一主题 下一主题

android体系结构

[复制链接]
跳转到指定楼层
沙发
发表于 2015-3-29 10:33:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

android体系结构介绍:如图:


l  应用程序(application)

l  应用程序框架(Application Framework)

l  各种库和android运行环境

l  操作层OS

?  应用程序(application):android的应用程序通常涉及用户界面和交互;

?  应用程序框架(application Framework):

1.        一组view(UI组件):这些UI组件包括List、textbox、button;

2.        Content Provider:提供一种机制,通过这个机制应用程序可是实现数据库共享和互访;

3.        Resourse Manager:负责管理非代码的访问,如图片、xml以及国际化资源文件;

4.        Notification Manager:让程序将警示信息显示在状态栏上;

5.        Activity Manager:管理着应用程序的生命周期,提供了应用程序页面的退出机制,一个应用程序由多个页面你组成,而每个页面的单位就是Activity,android应用程序是由多个activity的交互构成;

?  库(Libraries)和运行环境(Run Time):

1.        系统C库:一个从BSD 继承来的标准C系统函数库(LibC),他是专门基于嵌入式Linux的设备定制的;

2.        媒体库:基于packet Video OpenCORE,该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件;

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

4.        Lib WebCore:一个最新的web浏览器引擎,    用来支持android浏览器和一个可嵌入的web试图;

5.        SGL:底层的2D图引擎;

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

7.        FreeType:位图(bitmap)和vector字体显示;

8.        Sqlite:关系型数据库;

每个android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例,Dalvik被设计成一个设备,可以同时高效的运行多个虚拟机设备。Dalvik虚拟机执行的(.dex)Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经过由Java 编译器,然后通过sdk的“dx”工具转化成dex格式,有虚拟机执行。

Android应用程序介绍:

一般android应用程序包括以下四个部分:

l  Activity

l  Broadcast Intent Receiver

l  Service

l  Content Provider

1.        Activity介绍:

Activity一般代表手机屏幕的一屏,相当于浏览器的一个页面。当打开一个屏幕时,之前的那一个屏幕会被置为暂停状态,并且压入历史堆栈中,用户可以通过回退操作返回到以前打开过的屏幕。

开发时需要选择行的移除没有必要保留的屏幕,因为打开后的屏幕会保存在堆栈中

Android的生命周期:即“产生、运行、销毁”

Intent和Intent Filter介绍:一个Intent就是一次对将要执行的操作的抽象描述,通过Intent可以在多个Activity之间进行跳转,Intent两个最重要的部分是动作(action)和动作对应的数据,典型的动作类型有,MAIN、view、pick、edit等,而动作对应的数据则以URI的形式表示;例如有两个activity分别为A和B,要从A跳转到B可以这样写

                   Intent intent = new Intent(A.this, B.class);

                   startActivity(intent);

与Intent有关联的类叫做Intent Filters,如果Intent是一个请求,一个Intent Filters描述改组件所能相应Activity请求的能力。

2.        Broadcast Intent Receiver介绍:

可以使用BroadcastReceiver来让应用对外一个外部的事件作出响应。BroadcastReceiver通过NotificationManager来通知用户这些事情发生了,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实现了一组标准的接口,能够让其他应用保存或读取此Content Provider的各种数据类型。所以一个程序可以通过实现以个Content Provider的抽象接口将自己的数据暴露在外面,实现常见的接口有:

Query(URI,String[],String,String[],String):通过关键字查询;

Insert(Uri,ContentValues):将一组数据插入到指定的地方 ;

Update(Uri,ContentValues,String,String[]):更新数据;

               Delete(Uri, String, Stringp[]) :删除数据


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表