概述?Android 系统是基于 Linux 内核的手机操作系统平台,要深入系统的学习Android, 不仅仅是有 Java 和Android 应用开发,必须要具备 Linux , C/C++ 高级编程才能深入的涉及 Android Framework 和Android 内核开发。 Applications ? Android 装配一个核心应用程序集合,包括电子邮件客户端、 SMS 程序、日历、地图、浏览器、联系人和其他设置。所有应用程序都是用 Java 编程语言写的,它们的源代码是开放的,代码存放的位置在 android_root/packages/apps 。更加丰富的应用程序有待我们去开发! Application Framework ? Android 应用框架的核心代码在 android_root/frameworks/base 目录下, 是用 java 和 c/c++ 语言编写的可重用类和组件,它提供一系列的服务和系统,包括视图、内容提供器、资源管理器、通知管理器、活动管理器等。*视图( View )——丰富的、可扩展的视图集合,包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器*内容提供者( Content Providers )——使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据*资源管理器( Resource Manager )——提供访问非代码资源,如本地化字符串、图形和布局文件*通知管理器( Notification Manager )——使得程序可以在状态栏中显示自定义的提示信息*活动管理器( Activity Manager )——管理应用程序生命周期,提供通用的导航回退功能 Libraries ? Android 包含一个 C/C++ 库的集合,供 Android 系统的各个组件使用。这些功能通过 Android 的应用程序框架( application framework )暴露给开发者。下面列出一些核心库: *系统 C库——标准 C系统库( libc )的 BSD 衍生,调整为基于嵌入式 Linux 设备*媒体库——基于 PacketVideo 的 OpenCORE 。这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括 MPEG4 、 、 MP3 、 AAC 、 AMR 、 JPG 、 PNG *界面管理——管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层* LibWebCore ——新式的 Web 浏览器引擎,驱动 Android 浏览器和内嵌的 web 视图* SGL ——基本的 2D 图形引擎* 3D 库——基于 OpenGL ES APIs 的实现。库使用硬件 3D 加速或包含高度优化的 3D 软件光栅* FreeType ——位图和矢量字体渲染* SQLite ——所有应用程序都可以使用的强大而轻量级的关系数据库引擎 Android 的运行环境( Android Runtime ),这个也应该属于这个框架里面的, android 的虚拟机叫做 Dalvik ,运行环境就是由这个虚拟机和基础的 java 类库组成。 Linux Kernel ? Android 基于 Linux 提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。 Linux Kernel 也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。小结?总结一下,我们可以把 android 分为四个层次,从底层往上依次为: linux 内核、 C/C++ 库、 java 框架和 java 应用程序。简单的从上到下, android 应用程序需要有 java 框架支持,比如它要发送短信,就需要 java 框架, java 框架其实就是将 C/C++ 库包装成为了一个 JNI(Java Native Interface) ,而实现具体的功能是 C/C++ 库,最后驱动硬件完成功能,这也就是 linux 内核部分。从 Android 的架构可以知道, android 设备的开发主要是 Linux 内核层的驱动开发、 framework 层的系统级开发和 applications 层的应用程序开发。虽然 android 的 framework 开发比较少,但是对其了解后更有利于整体开发的进行,当然很多设备厂商还是非常需要这些的。
Android基础知识和开发 来自淘豆网m.daumloan.com转载请标明出处.