《本地层框架部分》PPT课件.ppt

《本地层框架部分》PPT课件.ppt

ID:52090754

大小:2.44 MB

页数:64页

时间:2020-03-31

《本地层框架部分》PPT课件.ppt_第1页
《本地层框架部分》PPT课件.ppt_第2页
《本地层框架部分》PPT课件.ppt_第3页
《本地层框架部分》PPT课件.ppt_第4页
《本地层框架部分》PPT课件.ppt_第5页
资源描述:

《《本地层框架部分》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Android系统移植第四章本地层框架部分一、本地层框架部分结构二、本地框架层可执行程序三、Binder的ipc机制四、servicemanage可执行程序五、shell工具六、android属性和套接字机制Java应用程序Linux操作系统及驱动LinuxARMC第二层本地框架和java运行环境C/C++内核空间和用户接口平台API第三层java框架本地和Java接口4.1本地层框架部分结构Android的本地层框架构建与本地的基础层之上,从功能上说,本地层的基础部分偏重于提供基本linux的运行支持,而以C++为主

2、的本地框架部分主要提供与android系统本身功能性的模块。Android的本地层框架内容主要在framework/base/目录中。全局的、通用的android本地层框架主要包括以下几个方面Libutils:c++功能库,提供C++的扩展功能的支持。Libbinder:binder库,提供IPC(进程间通信)方面。Servicemanager:服务管理器守护进程,与binder库配合提供IPC机制。全局的守护进程:包括app_prodess、installd、keystore、netd、vold等。Android本地

3、层框架可以给更上层的java系统提供支持。Android系统的设置理念基本上是有java层完成功能性上的整合,因此在本底层框架中内容为主要机制性的内容。4.2本地框架层的工具库libutilsLibutils是android本底层的工具库,这个库的主要部分以c++实现,体提的API也是C++的。Android由C++开发的本地程序的比重很大,熟悉libutils中提供的功能对这些程序开发大有好处。Libutils库提供一些工具类,在实现上大部分是对下层的内容进行一些封装。Libutils头文件路劲是:framework

4、s/include/utilsLibutils源文件的路径是:framework/base/libs/utilsLibutils需要依赖android底层的c语言库liblog和libcutils,以及用于zip压缩的库libz,libutils编译的结果是动态库libutils.so和libutils.a。Libutills中的内容可以分为几个部分,基本定义和类型、数据结构面板方面、工具类调试类、引用计数和模板、线程,最后一部分是负责实现IPC(进程间通讯)的Binder机制。1错误类型和错误码Errors.h:定义

5、宏表示错误代码定义错误码的宏,这种错误码的数值将被整个android本底层框架使用,在开发者自己的构建的程序中,也应该使用这种错误代码。2大小端和字节序列Endian.h:定义表示大小端的宏3位操作 操作由bitset32结构体来完成,功能是对一个32位无符号数进行位操作。4文本输出TextOutput.h:定义文本输出的基类TextOutput BufferedTextOutput.h:类BufferedTextOutput,它是一个TextOutput的实现 文本输出主要用于支持C++中常用的<<操作符表示输出法,

6、将各种类型作为文本的输出,文本输出的内容在头文件TextOutput.h和BufferedTextOutput.h中定义,并在TextOutput.cpp和BufferedTextOutput.cpp中实现,static.cpp中也有相关的静态内容。4.2libutils-基本的定义和类型Libutills中提供了若干数据结构的容器,这些类的功能和C++标准模板类的功能类似。1C字符串动态数组C字符串动态数组由StringArray类来表示,其头文件是stringarrary.h,stringarray类所实现的是C语

7、言字符串的动态数组,其中的单个对象是以constchar*表示字符串,而不是char类型的字符。由于stringarray提供的类型支持并非android主要使用的字符串类型,因此这个类在android系统中的使用较少,这个类主要可以在特定操作的本地程序中使用。2字符串类由于c语言常用使用char*表示的8为字符串,而java使用的是16位字符串。因此libutills同时支持8位、16位、32位的字符串,以及他们之间的相互转换。字符文件的头文件是string8.h和string16.h,源文件是string8.cpp

8、和string16.cpp4.2libutils-数据结构和容器类1链表类链表程序中的常用功能,libutills中链表的功能在list.h中定义,并使用其中的inline的方式来实现。2向量类向量类是一个长度可变的序列。Libutills中和向量相关的内容较多,向量涉及几个头文件,VectorImpl.h提供相关向量实现的基类,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。