android中怎么实现分层开发

发布网友 发布时间:2022-04-21 20:49

我来回答

2个回答

热心网友 时间:2023-12-16 16:06

ndroid开发笔记2----Android定义和分层介绍
(2010-11-25 14:38:45)
转载▼
分类: Android
一. 开放手机联盟
开放手机联盟,Open Handset Alliance:是美国Google公司与2007 年11 月5 日宣布组建的一个全球性的联盟组织。这一联盟将会支持Google发布的Android手机操作系统或者应用软件,共同开发名为Android的开放源代码的移动系统。

二. Android含义
Android是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。Android SDK提供了在Android平台上使用Java语言进行Android应用开发必须的工具和API接口。

三. Android系统构架

Android分为4层,从高到底分别是应用层、应用框架层、系统运行库层和Linux内核层:
1.应用层
应用是用Java语言编写的运行在虚拟机上的程序。Google最开始时就在Android系统中*了一些核心应用,比如E-mail 客户端、SMS 短消息程序、日历、地图、浏览器、联系人管理程序,等等。

2.应用程序框架层
应用程序框架层是编写常用核心应用所使用的API框架,开发者可以在开发自己特色的应用程序中重复利用这些组件和服务。目前所有的应用程序都是由这些组件和服务构成。
(1) 丰富而又可扩展的视图(View):可以用来构建应用程序,它包括列表(List)、网格(Grid)、文本框(Text Box)、按钮(Button),以及可嵌入的Web浏览器。
(2) 内容提供器(Content Providers):它可以让一个应用访问另一个应用的数据(如联系人数据库), 或共享它们自己的数据。
(3) 资源管理器(Resource Manager):提供非代码资源的访问,如本地字符串、图形和布局文件(Layout file)。
(4) 通知管理器(Notification Manager):应用可以在状态栏中显示自定义的提示信息。
(5) 活动管理器(Activity Manager):用来管理应用程序生命周期并提供常用的导航退回功能。
(6) 窗口管理器(Window Manager):管理所有的窗口程序。
(7) 包管理器(Package Manager):Android 系统内的程序管理。

3.系统运行库(C/C++库以及Android 运行库)层
程序库:
Android 包含一些C/C++库,这些库能被Android 系统中不同的组件使用。它们通过Android 应用程序框架为开发者提供服务。以下是一些核心库:
** 系统C库- 一个从BSD 继承来的标准C 系统函数库(libc),它是专门为基于embedded linux的设备定制的。
** 媒体库- 基于PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, H.2, MP3, AAC, AMR, JPG, PNG 。
** SurfaceManager - 对显示子系统的管理,并且为多个应用程序提供了2D和3D 图层的无缝融合。
** LibWebCore - 一个最新的web 浏览器引擎用,支持Android 浏览器和一个可嵌入的web 视图。
** SGL - 底层的2D图形引擎
** 3D libraries - 基于OpenGL ES 1.0 APIs 实现;该库可以使用硬件3D 加速(如果可用)或者使用高度优化的3D 软加速。
** FreeType -位图(bitmap)和矢量(vector)字体显示。
** SQLite - 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。

运行库:
Android 包括了一个核心库,该核心库提供了JAVA 编程语言核心库的大多数功能。

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

4. Linux内核层
Android系统平台是基于优化了的Linux内核,是其系统平台的核心。它提供诸如内存管理、进程管理、设备驱动等服务,同时也是作为硬件与软件栈之间的抽象层,用来做相互沟通的工作.

四. 进程间通信
Android 采用OpenBinder

热心网友 时间:2023-12-16 16:06

怎么个分层法追问就是像java的分层一样,不过现在好像有点了解了。是不是这样:把处理同一样的业务放到同一个包去。比如dialog包放自定义好的dialog;provider包用来放继承ContentProvider类的类;adapter包用来存放自定义的Adapter类,如自定义ImageAdapter;entity包也就放entity类等等这样。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com