中易网

谁能说说android框架结构?

答案:4  悬赏:10  
解决时间 2021-10-17 17:34
谁能说说android框架结构?
最佳答案
安卓一般使用多线程是,与单线程比较而言的,普通的Windows采用单线程程序结构,其工作原理是:主程序有一个消息循环,不断从消息队列中读入消息来决定下一步所要干的事情,一般是针对一个函数,只有等这个函数执行完之后,主程序才能接收另外的消息来执行。比如子函数功能是在读一个网络数据,或读一个文件,只有等读完这个数据或文件才能接收下一个消息。在执行这个子函数过程中你什么也不能干。但往往读网络数据和等待用户输入有很多时间处于等待状态,多线程利用这个特点将任务分成多个并发任务后,就可以解决这个问题。
全部回答
android应用开发框架是   Application   Framework.   其系统架构由5部分组成,分别是:Linux   Kernel、Android   Runtime、Libraries、Application   Framework、Applications。第二部分将详细介绍这5个部分。下面自底向上分析各层。 Android架构 1、Linux   K   ernel Android基于Linux   2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。Linux   Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。   如果你学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。也就是说各层各尽其职,各层提供固定的SAP(Service   Access   Point),专业点可以说是高内聚、低耦合。   如果你只是做应用开发,就不需要深入了解Linux   Kernel层。 2、Android   Runtime Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。   大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更大。dx   是一套工具,可以将   Java   .class   转换成   .dex   格式。一个dex文件通常会有多个.class。由于dex有时必须进行最佳化,会使文件大小增加1-4倍,以ODEX结尾。   Dalvik虚拟机依赖于Linux   内核提供基本功能,如线程和底层内存管理。 3、Libraries Android包含一个C/C++库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(application   framework)暴露给开发者。下面列出一些核心库:   系统C库--标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备   媒体库--基于PacketVideo的OpenCORE。这些库支持播放和录制许多流行的音频和格式,以及静态图像文件,包括MPEG4、   H.264、   MP3、   AAC、   AMR、JPG、   PNG   界面管理--管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层   LibWebCore--新式的Web浏览器引擎,驱动Android   浏览器和内嵌的web视图   SGL--基本的2D图形引擎   3D库--基于OpenGL   ES   1.0   APIs的实现。库使用硬件3D加速或包含高度优化的3D软件光栅   FreeType   --位图和矢量字体渲染   SQLite   --所有应用程序都可以使用的强大而轻量级的关系数据库引擎 4、Application   Framework 通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。   开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。   所有的应用程序其实是一组服务和系统,包括:   视图(View)--丰富的、可扩展的视图集合,可用于构建一个应用程序。包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器   内容提供者(Content   Providers)--使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据   资源管理器(Resource   Manager)--提供访问非代码资源,如本地化字符串、图形和布局文件   通知管理器(Notification   Manager)--使所有的应用程序能够在状态栏显示自定义警告   活动管理器(Activity   Manager)--管理应用程序生命周期,提供通用的导航回退功能 5、Applications Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。所有应用程序都是用Java编程语言写的。更加丰富的应用程序有待我们去开发!   从上面我们知道Android的架构是分层的,非常清晰,分工很明确。Android本身是一套软件堆迭(Software   Stack),或称为「软件迭层架构」,迭层主要分成三层:操作系统、中间件、应用程序。从上面我们也看到了开源的力量,一个个熟悉的开源软件在这里贡献了自己的一份力量。
Android   采用分层的架构,分为四层,从高层到底层分为应用程序层,应用程序框   架层,系统运行库层和Linux核心层   1,Android应用程序层   2,应用程序框架层   3,系统运行库层   4,Linux核心层   详细的请上网搜索android四层框架
应用程序层:   这个层主要指的就是用java语言编写的运行在虚拟机上的程序,Google在最开始时就   在android系统中捆绑了一些核心的应用(核心应用的编写必须使用应用层序框架层的api框架),例如你android手机中sms发送短消息的程序,通讯录等等。   应用程序框架层:   指的就是开发时所需要的api框架,开发人员是在遵守该框架的原则上,调用他们的,开发自己所需要的程序。   系统运行库层:   用于支持应用框架层的各个组件的。就是说当开发人员使用android应用框架层时,android系统会通过一些C/C++库来支持对我们使用的各个组件,使其能更好地为开发者服务。   linux核心层:   android的核心系统服务如安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于Linux2.6内核,Linux内核同时也作为硬件和软件栈之间的抽象层。   因此,你开发的程序是运行在应用程序层,开发中写代码调用的包,是基于应用框架层,而在应用框架中的各个组件是需要系统运行库的支持的,例如,你要登陆查看的信息就必须访问到SQLite数据库,SQLite就位于系统运行库,再有,你登入要输入信息,肯定需要键盘驱动的支持,而各种驱动是依赖Linux内核的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
2013年日经BP社与深圳市中瑞展览设计有限公司
香港户口的好处是什么
Za的隔离霜到底好不呢
想知道: 太原市 从小马到山西新生活健身器材
深圳蛇口区的散货代理报关费大约多少?
怎样做能让一个男人为自己动心?
辽宁省鞍山市台安县可以加盟肯德基吗
2011年沈阳会计初级职称报名,沈阳市财政局网
兰亭山水附近的游泳馆
我家宝宝是混合喂养的,现在三个月大,请问是否
阿明岩茶庄地址在什么地方,想过去办事,
河南省平顶山市叶县的县高通快递吗?通哪个?
投资公司吸纳个人资金合法吗
请问在眉山购二手车库要交多少税?
求一些名人故事(用来做议论文的素材)
推荐资讯
九个月的宝宝一天要吃几顿
三极管有多少种类呀
谁清楚油烟机钢化玻璃不锈钢哪种比较好?
麦格假体隆胸多少钱方法是什么
毛发移植价格是 多少
池州市贵池区阮桥乡有没有一个叫李俊,李霞和
阳江哪间网吧可以开临卡
左腿酸痛是怎么回事?
耳朵里长了疙瘩,一碰就疼? 谢谢!!
今天去哈尔滨银行庄河支行存钱,空间非常明亮
usb热得快价格多少
鄂州到汉口汽车时刻表及票价查询
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?