**Android** 基础(一)

来源:互联网 发布:淘宝详情代码生成器 编辑:程序博客网 时间:2024/06/16 08:59

>Android系统简介


  • android 分层
    1. 应用程序层
    2. 应用程序框架层
    3. 系统运行库
    4. linux核心层。
  • 设计规则

    1. 每个程序都运行在了自己的进程空间中,需要时启动,不需要时终止。
    2. 每个程序都有自己的运行库ART,各应用程序之间的代码是相互隔离的。
    3. 每个程序被分配唯一的ID,任何应用程序的代码与其他应用程序的代码是相互隔离的。
  • Android应用程序的四大组件

    1. activity活动,用于与用户进行交互的可视化界面,凡是在应用程序中看到的东西都是放在activity中。每一个activity子类集成父类Activity。
    2. Service服务,无需可视化界面,需要在后台长期运行的应用程序,背景音乐播放器,和后台数据处理任务等,继承自父类Service。
    3. Broadcast Receiver广播接收器,接受和处理广播消息的组件。没有影虎界面,在相应其接收到的信息时可以启动一个activity,继承自父类BroadcastReceiver。
    4. Content Provider内容提供者,可以将指定的一组数据让其他程序使用。数据可能存储在文件系统或者SQLlife中。继承自父类ContentProvider。
    5. 补充Intent,负责对应一次操作中的动作、动作涉及的数据、附加数据进行描述。Android根据此描述找到对应的组件,将intent传递给调用的组件。
  • Android应用程序框架层

    1. 使用java语言编写。
    2. 使用java native interface调用core lib层的本地方法
    3. 实现了一系列服务:活动管理器,窗口管理器、内容提供器、视图系统、通告管理器、包管理器、电话管理器、资源管理器、位置管理器、xmpp服务。
  • 系统运行库

    1. 系统C库: 从BSD集成的标准C系统函数库
    2. 媒体库:基于OpenMax库,支持多种音频视频图像文件
    3. Serface Manager:显示子系统管理,提供了2D&3D图层的无缝融合
    4. LibWebCore:最新的web浏览器引擎。
    5. SGL:底层的2D图形引擎
    6. 3Dlibraries:基于OpenGL3D软件加速
    7. FreeType:文图和矢量图字体显示
    8. SQLLite:数据库引擎。
    9. Dalvik:虚拟机,在程序执行时,编译成dex的字节码后交给dalvik虚拟机执行
    10. ART:虚拟机,Dalvik的替代品。在应用成许安装时,吧程序代码转换成及其语言,避让程序成为真正的本地应用。
      • 采用了AOT预编译技术。函数调用去虚拟化,调用接口和虚函数时,需要寻找真正的函数,浪费大量的时间。去虚拟化后可以迅速调用。消除异常检查。
      • 更高效的垃圾回收机制GC。GC调用有三种情况:GC_EXPLICIT(应用程序通过system.gc主动调用)GC_FOR_ALLOC(内存分配不足时) GC_CONCURRENT(给java层分配内存后,计算一份陪的大小达到阈值时,对象大小超过384KB)GC_MALLOC(内存分配失败)GC_EXTERANL_ALLOC(外部内存分配失败)
  • Linux内核
    安全性、内存管理、进程管理、网络协议栈、驱动模型。

0 0
原创粉丝点击