写点什么

android 五大应用开发框架

用户头像
Android架构
关注
发布于: 14 小时前

1、Linux Kernel


Android 基于 Linux 2.6 提供核心系统服


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


务,例如:安全、内存管理、进程管理、网络 堆栈、驱动模型。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)–管理应用程序生命周期,提供通用的导航回退功能

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
android 五大应用开发框架