Android基础——1.系统架构&SDK目录

来源:互联网 发布:mac用什么办公软件 编辑:程序博客网 时间:2024/06/05 21:02

距离上一次写都已经十多天了,这几天病了一下,好好的五一在医院度过的 T.T ~
不过这些也是之前做的整理,现在发不上来也是再一次做一个复习和总结。现在继续补上。

本来不想写这些基础中的基础,但是想想这些内容虽然用不到,但需要做这样的了解和学习,也是概念性的居多,理解至上。不过还是不多说,就讲两个部分吧。

一。系统架构

这次的没有Xmind,不过还是有张图
Android的四层架构

这张图是在不懂的时候画的,自己做的翻译,有点尴尬,好多是错的,但是表述可以理解。

  1. Application

    1. 很明显,这就是之后我们要做的,基于应用层的开发,图上的也是Google在系统中捆绑的核心应用,联系人,短信,浏览器等等。
    2. 是打开手机之后最直观面对我们的界面,现在是使用Java语言开发的运行在虚拟机上的程序。
  2. Application Framework

    1. Android每个应用程序都有其组成部分,学了android的人肯定都知道四大组件,而本层次除了包含四大组件之外还有其他核心框架,他们也是Google提供的应用开发时使用的API框架。
    2. 做个简单的介绍:
      1. Activity Manager(活动管理器):四大组件之一,一个活动就是一个应用上的界面,每个活动都有他的生命周期,四大组件都会开一章叙述一下。
      2. Services(服务):活动有相对短的生命周期,有显示界面,同样属于四大组件之一的服务不同于活动,生命周期较长,没有显示界面,一旦其他组件将其调用并启动,就会一直在后台运行,音乐播放器就是一个很明显例子。
      3. Content Providers(内容提供者):依然是四大组件之一,应用与应用之间交互的方式,乙方使用内容提供者提供内容,另一方面可以访问这个内容提供者获取内容,但如果没有内容提供者,两个应用之间并不能直接获取内部数据。
      4. Window Manager(窗口管理器):一个Activity代表一个界面,而界面上是由一个个View组成,而window manager就是用于管理这些view而存在的,他内部的API也都是为界面控件服务的。
      5. Resource Manager(资源管理器):在进行应用开发时,我们大部分需要添加的文件,除了java类文件之外,还有res的资源文件,他内部的布局文件,图形,字符串等资源型文件都由资源管理器进行管理。
      6. Notification Manager(通知管理器):Notification是一种具有全局效果的通知,而Notification Manager即是管理通知的框架。
        其他暂时不做介绍了。。。以后会更新的。
  3. Android Runtime & Libraries

    1. 本层中即是类库与ART,包含C/C++的类库,被各个组件使用:
      1. Surface Manager:对显示子系统的管理,为多个应用程序提供了图层的无缝融合。
      2. Media Framwork:这是支持多种常用的音频,视频的放与录制,包括静态图像文件也同样支持。
      3. SQLite:Android内嵌的小型轻量级的关系型数据库引擎。
      4. OpenGLES:能够使用硬件进行加速。
      5. FreeType:bitmap与vector字体的显示库。
      6. WebKit:Android的浏览器引擎。
      7. SGL:底层2D图形引擎。
      8. SSL(Secure Sockets Layer安全套接层):作为网络连接时进行加密,是一种安全协议,听说过世界开源组织OpenSSL的应该对这个不陌生。
      9. Libc:一个标准的C系统函数库。
    2. Dalvik Virtual Machine:他是Google为Android开发的专用虚拟机。而说到Dalvik就不得不说.dex格式了,Android应用程序不同于Java工程,他有属于自己的体系格式,而dex格式将class包装为dex格式的文件,将class内部同类型的以更简洁的方式进行压缩封装。
  4. Linux Kernel

    1. Android是基于Linux2.6内核开发的,Linux内核中有各种驱动,如显示驱动(Display Driver),内存驱动(Flash Memory Driver),音频驱动(Audio Driver),蓝牙驱动(Bluetooth Driver)等,驱动是用于交互硬件所用的,所以Linux内核层属于最底层,在做上层应用开发时,大多不需要熟悉这个层次。

这部分作为了解性知识,但能够在学习之初有一个稍微清晰的框架,对学习还是有帮助的。

二。SDK目录结构

  1. 目录结构图:
    SDK目录结构

  2. 简介:

    1. add-ons:保存着一些附加库文件,类似GoogleMaps。
    2. build-tools:保存着与编译相关的重要工具,aapt(android application package tools)、aidl(Android interface definition language)、逆向调试工具dexdump和编译脚本dx等。
    3. docs:Google为开发者提供的SDKAPI参考文档的存放处。
    4. extras:扩展开发包,向下兼容,intel硬件加速程序等存放处。
    5. platforms:SDK至今已经有了许多个版本,每个版本都能够单独提供开发所需要的所有文件:

      android-23

      这里包含data系统资源文件,images模拟器镜像文件,skins模拟器批复文件,templates工程模板文件,android.jar则是该版本的主要framework文件。

    6. platforms-tools保存着一些通用工具,如adb.exe
    7. sources Android保存着系统源码的目录,以API Level划分。
    8. system-images Android系统镜像文件。
    9. tools:包含了重要的工具,如ddms用于启动android调试工具,draw9patch则是绘制android平台可缩放png图片的工具,sqlite3可以在pc上操作SQLite数据库,emulator是AndroidSDK模拟器主程序,traceview作为android平台上重要的调试工具。
    10. SDK Manager是ADT根目录下的一个SDK管理程序,负责下载、更新、删除与sdk相关文件。

基础就做这两部分的介绍,今后如果还有需要做更多了解的基础部分也将继续补充,或者有错误的请指正,我会修改的。

未完待续。。。

0 0