Android系统架构和SDK目录结构


本文转载至http://blog.csdn.net/zhangqiang_0/article/details/77987927

疯狂Android讲义学习笔记:

     Android系统的底层建立在Linux系统之上,该平台由操作系统、中间件、用户界面和应用软件4层组成,它采用一种被称为软件叠层(Software Stack)的方式进行构建。这种软件叠层结构使得层与层之间相互分离,明确各层的分工。这种分工保证了层与层之间的低耦合,当下层的层内或层下发生改变时,上层应用程序无需任何改变。
Android5.x平台架构及特性

Android系统主要由5部分组成:
  • 应用程序层:
    • Android系统包含的一系列的核心应用程序。
  • 应用程序框架:
    • Android应用框架提供了大量API,除了可作为应用程序开发的基础之外,也是软件复用的重要手段,任何一个应用程序都可发布它的功能模块----只要发布时遵守了框架的约定,那么其他应用程序就可使用这个功能模块。
  • 函数库:
    • Android包含一套被不同组件所使用的C/C++库的集合。一般来说,Android应用开发者不能直接调用这套C/C++库集,但它可以通过上面的应用程序框架来调用这些库。例如:
      1. 系统C库
      2. 媒体库
      3. Surface Manager:管理对显示子系统的访问,并可以对多个应用程序的2D和3D图层提供无缝缝合。
      4. LibWebCore:一个全新的Web浏览器引擎
      5. SGL:底层的2D图形引擎。
      6. 3D libraries:基于OpenGL ES API实现的3D系统,这套3D库即可使用硬件3D加速(如果硬件系统支持),也可使用高度优化的软件3D加速。
      7. FreeType:位图和向量字体显示。
      8. SQLite:供所用应用程序使用的功能强大的轻量级关系数据库。
  • Android运行时:
    • Android运行时由两部分组成(Android核心库集和ART)。其中核心库集提供了Java语言核心库所能使用的绝大部分功能,而虚拟机则负责运行Android应用程序。
    • Android5.0以前的Android运行时由Dalvik虚拟机和Android核心库集组成,但由于Dalvik虚拟机采用了一种被称为JIT(just-in-time)的解释器进行动态编译并执行,因此导致Android APP运行时缓慢;而ART模式则是在用户安装APP是进行预编译(Ahead-of-time,简称AOT),将原来在程序运行时的编译动作提前到应用安装时,这样使得程序在运行时可以减少动态编译的开销,从而提升Android App的运行效率。
    • 反过来,由于ART需要在安装APP时进行AOT处理,因此ART需要占用更多的存储空间,应用安装和系统启动时间会延长不少。
    •  除此之外,ART还支持ARM、x86和MIPS架构,并且能完全兼容64位系统
  • Linux内核
    • Android系统建立在Linux2.6之上。Linux内核提供了安全性、内存管理、进程管理、网络协议栈和驱动模型等核心系统服务。除此之外,Linux内核也是系统硬件和软件叠层之间的抽象层。

SDK文件结构:

     SDK根目录下:
    • add-ons:
      • 该目录下存放附加库,比如GoogleMaps,当然你如果安装了OphoneSDK,这里也会有一些类库在里面。
      • 又说:该目录下存放第三方公司为Anddroid平台开发的附加功能系统。
      • 又说:保存Google API。比如GoogleMaps.
    • build-tools:各个版本的与编译相关的重要工具,比如aapt、aidl、逆向调试工具dexdump和编译脚本dx。
    • docs:
      • 离线开发者文档Android SDK API参考文档。
    • emulator:
      • 模拟器
    • extras:
      • 拓展开发包,这里面包括向下兼容开发包以及Intel硬件加速程序等。
      • 扩展开发包 如高版本的API在低版本中的开发使用。
    • license:
      • 执照,许可
    • ndk-bundle:
      • 束,捆  包袱
    • patcher:
      • 补丁包
    • platforms:
      • 该目录下存放不同版本的Android系统。
      • platforms是每个平台的SDK真正的文件,里面会根据API Level划分SDK版本,这里就以Android2.3来说,进入后有一个android-10的文件夹,android-10进入后是Android2.3 SDK的主要文件,其中data保存着一些系统资源,images是模拟器映像文件,skins则是Android模拟器的皮肤,templates是工程创建的默认模板,android.jar则是该版本的主要framework文件。
    • platforms-tools:
      • 各版本SDK通用工具。比如adb.exe、sqlite3.exe。
    • samples:
      • 各版本API使用样例。Android SDK自带的默认示例工程。
      • Android SDK自带的默认示例工程,里面的apidemos强烈推荐初学者运行学习,对于SQLite数据库操作可以查看NotePad这个例子,对于游戏开发Snake、LunarLander都是不错的例子,对于Android主题开发Home则是android m5时代的主题设计原理。
    • skins:
    • sources:
      • 系统源码目录,文件夹里可以包含多份源码,根据API Level划分为不同的文件夹。
      • 各版本SDK源码。
    • system-images:
      • 系统镜像文件
      • 模拟器影映像文件。从android-14开始将模拟器映像文件整理在这里(原来放在platforms下)
    • temp:
      • 临时文件夹,一般在SDK更新安装时用到。
    • tools:
      • 该目录下存放大量Android开发、调试的工具。如:emulator.exe monitor.bat android.bat(.bat批处理,内部是shell脚本)

    • AVD Manager.exe:
      • 该程序是AVD(Android虚拟设备)管理器。通过该工具可以管理AVD。
      • Android手机模拟配置工具,用于配置模拟器。只有先配置AVD才可运行模拟器。
    • SDK Manager.exe:
      • 该程序是Android SDK(Software Development Kit)。
      • SDK管理器,用于SDK更新、下载、删除。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值