距离上一次写都已经十多天了,这几天病了一下,好好的五一在医院度过的 T.T ~
不过这些也是之前做的整理,现在发不上来也是再一次做一个复习和总结。现在继续补上。
本来不想写这些基础中的基础,但是想想这些内容虽然用不到,但需要做这样的了解和学习,也是概念性的居多,理解至上。不过还是不多说,就讲两个部分吧。
一。系统架构
这次的没有Xmind,不过还是有张图
这张图是在不懂的时候画的,自己做的翻译,有点尴尬,好多是错的,但是表述可以理解。
Application
- 很明显,这就是之后我们要做的,基于应用层的开发,图上的也是Google在系统中捆绑的核心应用,联系人,短信,浏览器等等。
- 是打开手机之后最直观面对我们的界面,现在是使用Java语言开发的运行在虚拟机上的程序。
Application Framework
- Android每个应用程序都有其组成部分,学了android的人肯定都知道四大组件,而本层次除了包含四大组件之外还有其他核心框架,他们也是Google提供的应用开发时使用的API框架。
- 做个简单的介绍:
- Activity Manager(活动管理器):四大组件之一,一个活动就是一个应用上的界面,每个活动都有他的生命周期,四大组件都会开一章叙述一下。
- Services(服务):活动有相对短的生命周期,有显示界面,同样属于四大组件之一的服务不同于活动,生命周期较长,没有显示界面,一旦其他组件将其调用并启动,就会一直在后台运行,音乐播放器就是一个很明显例子。
- Content Providers(内容提供者):依然是四大组件之一,应用与应用之间交互的方式,乙方使用内容提供者提供内容,另一方面可以访问这个内容提供者获取内容,但如果没有内容提供者,两个应用之间并不能直接获取内部数据。
- Window Manager(窗口管理器):一个Activity代表一个界面,而界面上是由一个个View组成,而window manager就是用于管理这些view而存在的,他内部的API也都是为界面控件服务的。
- Resource Manager(资源管理器):在进行应用开发时,我们大部分需要添加的文件,除了java类文件之外,还有res的资源文件,他内部的布局文件,图形,字符串等资源型文件都由资源管理器进行管理。
- Notification Manager(通知管理器):Notification是一种具有全局效果的通知,而Notification Manager即是管理通知的框架。
其他暂时不做介绍了。。。以后会更新的。
Android Runtime & Libraries
- 本层中即是类库与ART,包含C/C++的类库,被各个组件使用:
- Surface Manager:对显示子系统的管理,为多个应用程序提供了图层的无缝融合。
- Media Framwork:这是支持多种常用的音频,视频的放与录制,包括静态图像文件也同样支持。
- SQLite:Android内嵌的小型轻量级的关系型数据库引擎。
- OpenGLES:能够使用硬件进行加速。
- FreeType:bitmap与vector字体的显示库。
- WebKit:Android的浏览器引擎。
- SGL:底层2D图形引擎。
- SSL(Secure Sockets Layer安全套接层):作为网络连接时进行加密,是一种安全协议,听说过世界开源组织OpenSSL的应该对这个不陌生。
- Libc:一个标准的C系统函数库。
- Dalvik Virtual Machine:他是Google为Android开发的专用虚拟机。而说到Dalvik就不得不说.dex格式了,Android应用程序不同于Java工程,他有属于自己的体系格式,而dex格式将class包装为dex格式的文件,将class内部同类型的以更简洁的方式进行压缩封装。
- 本层中即是类库与ART,包含C/C++的类库,被各个组件使用:
Linux Kernel
- Android是基于Linux2.6内核开发的,Linux内核中有各种驱动,如显示驱动(Display Driver),内存驱动(Flash Memory Driver),音频驱动(Audio Driver),蓝牙驱动(Bluetooth Driver)等,驱动是用于交互硬件所用的,所以Linux内核层属于最底层,在做上层应用开发时,大多不需要熟悉这个层次。
这部分作为了解性知识,但能够在学习之初有一个稍微清晰的框架,对学习还是有帮助的。
二。SDK目录结构
目录结构图:
简介:
- add-ons:保存着一些附加库文件,类似GoogleMaps。
- build-tools:保存着与编译相关的重要工具,aapt(android application package tools)、aidl(Android interface definition language)、逆向调试工具dexdump和编译脚本dx等。
- docs:Google为开发者提供的SDKAPI参考文档的存放处。
- extras:扩展开发包,向下兼容,intel硬件加速程序等存放处。
platforms:SDK至今已经有了许多个版本,每个版本都能够单独提供开发所需要的所有文件:
这里包含data系统资源文件,images模拟器镜像文件,skins模拟器批复文件,templates工程模板文件,android.jar则是该版本的主要framework文件。
- platforms-tools保存着一些通用工具,如adb.exe
- sources Android保存着系统源码的目录,以API Level划分。
- system-images Android系统镜像文件。
- tools:包含了重要的工具,如ddms用于启动android调试工具,draw9patch则是绘制android平台可缩放png图片的工具,sqlite3可以在pc上操作SQLite数据库,emulator是AndroidSDK模拟器主程序,traceview作为android平台上重要的调试工具。
- SDK Manager是ADT根目录下的一个SDK管理程序,负责下载、更新、删除与sdk相关文件。
基础就做这两部分的介绍,今后如果还有需要做更多了解的基础部分也将继续补充,或者有错误的请指正,我会修改的。
未完待续。。。