探索Android开发:体系结构、启动过程与特色详解
需积分: 4 64 浏览量
更新于2024-09-27
收藏 4.76MB PDF 举报
在《Android开发杂谈》一书中,作者广州网易的闻波(@wenbob)深入探讨了Android系统的各个方面,包括系统架构、初始化过程以及程序优化和混淆Hacking技巧。本文将围绕以下几个关键知识点展开详述:
1. **系统组成与特点**
- Android系统由五个主要层次构成:Application(应用层)、Framework(框架层)、Nativelibraries(native库层)、AndroidJNI(Java Native Interface)以及Userspacedrivers(用户空间驱动程序)。
- Application层包含预装的Android内置程序,如Home、Contracts、Phone等,以及Google的闭源程序如GoogleClient;Vendor程序则是各个手机制造商自定义的应用和服务,如HTCDream和OMS。
2. **系统启动过程**
- 系统启动分为几个阶段:首先是引导过程,涉及InitialProgramLoader和SecondProgramLoader,它们负责加载Linux内核。
- Linuxkernel的初始化过程开始于init进程,这是一个关键的服务,它启动其他必要的服务和系统组件。
- 分区镜像文件如hboot.img(启动加载器)和radio.img(射频通信程序)也在启动时扮演重要角色,如GSM和CDMA模块的管理。
3. **Android体系结构**
- Android采用五层架构,其中Java层的AndroidCoreCode是核心组件,Vendorextensions是制造商添加的自定义扩展;Nativelibraries包含了各种功能函数库,如C/C++库、音视频处理、SQLite等。
- AndroidJNI允许Java与Native代码交互,DalvikVM是Android的轻量级虚拟机,特别适合移动设备,通过fork方式执行应用程序Zygote,提高了启动速度。
4. **HAL与驱动程序**
- HAL(Hardware Abstraction Layer)是Android中一个重要的设计,许多驱动程序在用户态运行,依赖于内核提供的硬件抽象接口,如CameraService、SurfaceFlinger和AudioFlinger。
- Bionic是Android的精简版C/C++运行库,出于商业考量,避免被LGPL许可证约束,同时避免使用开源库uCLib。
5. **浏览器特性**
- Android内置的是Webkit的移植版本,虽非Chrome,但提供了HTML5功能,如本地存储,不支持文件上传。内置的Googlegears没有源代码,2.x版本进一步增强了HTML5支持。
6. ** DalvikVM的优势**
- DalvikVM的轻量化设计,仅约500KB大小,适合移动设备的性能需求,且通过Zygote机制提高应用启动速度。
通过学习这些知识点,Android开发者可以更好地理解Android系统的运作机制,进行高效的应用开发和优化,同时对系统级别的技术有更深的认识。同时,对于驱动程序和权限管理的理解,也有助于避免不必要的权限冲突和提高程序的安全性。
2019-03-22 上传
2011-07-04 上传
2007-08-23 上传
2020-09-03 上传
2021-11-30 上传
2019-03-30 上传
VoidHope
- 粉丝: 134
- 资源: 11
最新资源
- Flex 3 Cookbook简体中文.pdf
- <程序员的SQL金典>
- 嵌入式linux开发手册
- SD卡接口规范的完整翻译
- Oracle10g_DBA..
- JCreator配置JSP环境方法
- MYSQL DBA 必读 understanding mysql internals
- 理解 ASP3.5.NET 基础结构.pdf
- 嵌入式系统原理,设计与应用
- AT89S51+单片机实验及实践教程
- ClearCase 客户端使用指南.pdf
- C++ GUI Programming with Qt 4, Second Edition
- 正则表达式常用正则表达式收集
- 家庭理财系统的可行性研究
- IT服务管理 基于ITIL的全球最佳实践
- jdbc api数据库编程实作教材