1.最底层的硬件层是任何android设备的基石,包括显示屏、wi-fi、存储设备等。android设备的硬件配置会根据具体需求进行裁剪,以选择适合的硬件组件。
2.Linux内核层负责管理硬件,包括显示驱动、相机驱动、蓝牙驱动、共享内存驱动、USB驱动、键盘驱动、Wi-Fi驱动、音频驱动和电源管理。某些驱动直接对应实际硬件,而另一些则是软件抽象,如共享内存驱动和Binder驱动。Android基于Linux 2.6内核提供核心系统服务,如安全、内存管理、进程管理、网络堆栈和驱动模型。Linux内核作为硬件和软件之间的抽象层,隐藏具体硬件细节,为上层提供统一服务。Android使用Binder作为进程间通信机制,在Native层和Java层均有实现。
3.硬件抽象层由不同厂商实现,调用底层驱动。该层包含用户空间的C/C++库,遵循Apache协议,定义Android所需的Linux驱动接口,将Android与硬件彻底抽象出来。
4.Native库Libraries层通过C/C++实现,调用硬件抽象层的方法。Android系统组件通过Android应用程序框架向开发者暴露这些功能,包括SurfaceManager、Media Framework、SQLite、WebKit、Libc、OpenGL|ES、Audio Manager、FreeType和SSL等。OpenGL|ES在该层提供C/C++函数库,而在Framework层则提供Java函数库。
5.Android运行时环境包括核心类库和Dalvik虚拟机。核心类库提供大部分Java编程功能,相对于JavaSE进行了精简,可通过SDK中的帮助文档查询。Dalvik虚拟机基于寄存器,依赖于Linux内核提供的基本功能,如线程和内存管理。所有Android应用程序都是用Java开发,在Dalvik虚拟机上运行。
6.Application Framework提供了一组API,包括四大组件,并提供了一组在手机开机时驻留的服务,如监听电话和短信的广播接收者服务。这些服务在Linux启动时加载,每个服务占用一个Dalvik虚拟机。Android提供开放的开发平台,开发者可以利用设备硬件优势,访问位置信息,运行后台服务,设置闹钟,向状态栏添加通知等。开发者可以使用核心应用程序的框架API,应用程序的体系结构简化了组件重用,任何应用程序都能发布其功能供其他应用程序使用。该层还封装了Binder机制,用于进程间通信。
7.应用层由Java开发的应用程序组成。对用户而言,提供良好的用户体验和强大的用户亲和力;对开发者而言,提供快速而灵活的开发平台,使灵感快速转化为产品。
8.Android开发分为三种类型:
(1)移植开发:将应用从不同平台移植到Android,可能涉及从底层驱动到上层应用的整体移植,或在不同SDK版本上的应用移植。
(2)应用程序开发:
(3)Android系统开发:例如开发基于WebKit的浏览器,需要理解并修改其C/C++代码;开发手机电视,需要在Native层完成视频解码库,并在Framework层暴露API供开发者使用。
9.三种开发形式包括:
(1)SDK开发:在Windows、Linux、Mac下使用Java语言开发,涉及应用程序架构、GUI设计基础、各种视图的使用、2D/3D图形API和应用程序设计思想。
(2)NDK开发:在Windows、Linux下使用Java语言和JNI技术,涉及应用程序架构和Linux下的C编程。
(3)源码开发:在Linux中进行,完全基于源代码,涉及Linux操作系统知识、Linux内核知识、Linux驱动知识、Android底层库、Dalvik虚拟机、Android GUI系统、音频视频多媒体、电话部分和传感器部分的开发知识。
以上就是【Android 应用开发】对Android体系结构的理解--后续会补充的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号