-----------------------------------Android 编程基础
从 Google 目前 release 的 Linux 系统来看,其没有虚拟内存文件系统,系统所用的是 yaffs2 文件系统,具体的映
像也都位于 SDK 安装目录下。通过 emulator -console 命令,我们可以在 host 中断下得到一个简单的可以控制
Android 的 shell ,这 个系 统包含 了一 个 Toolbox ,提 供 一 些基 本 的命 令 工具 , 集 中 在
/sbin,/system/sbin,/system/bin 中,但是很简陋,命令种类也很少。
目前 Android 的程序安装模式是靠 Eclipse 自动进行的,通过对底层的分析可知,大致步骤就是在/data/app
和 data/data 下存放 android 底层和普通内核没有什么大的区别,我们可以将其作为一个 Linux 来进行开发和
hacking。
Lib 和运行环境
lib
� C/C++库:被各种 Android 组件使用
� 通过应用程序框架开发者可以使用其功能
� 包括:
� 媒体库:MPEG4 H.264 MP3 JPG PNG .....
� WebKit/LibWebCore:Web 浏览引擎
� SQLite 关系数据库引擎
� 2D,3D 图形库、引擎
丰富的类库支持:2D 和 3D 图像库 OpenGL ES、数据库 SQLite、对象数据库 db4o 类库、媒体库、基于
Linux 底层系统 C 库等等,让应用开发更简单多样。Google 使用 Apache 的 Harmony 类库,Harmony 某些方
面速度快于 Sun 的 VM。Runtime 在 Dalvik Java VM 上,Dalvik 采用简练、高效的 byte code 格式运行,它
能够在低资耗和没有应用相互干扰的情况下并行执行多个应用。
运行时环境
� 核心库提供的 Java 功能
� Dalvik 虚拟机依赖于 Linux 内核,例如线程或底层内存管理
� 设备可以运行多个 Dalvik 虚拟机,每一个 Android 应用程序在它自己的 Dalvik VM 实例中运行
� VM 执行优化的 Dalvik 可执行文件(.dex)
� Dx-工具把编译过的 Java 文件转换为 dex 文件
12