【硕士论文】面向集成数字电视平台的嵌入式图形库的移植与优化.pdf_第1页
【硕士论文】面向集成数字电视平台的嵌入式图形库的移植与优化.pdf_第2页
【硕士论文】面向集成数字电视平台的嵌入式图形库的移植与优化.pdf_第3页
【硕士论文】面向集成数字电视平台的嵌入式图形库的移植与优化.pdf_第4页
【硕士论文】面向集成数字电视平台的嵌入式图形库的移植与优化.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

【硕士论文】面向集成数字电视平台的嵌入式图形库的移植与优化.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上海交通大学工程硕士学位论文 摘要 面向集成数字电视平台的嵌入式图形库的移植与优化 摘 要 数字电视是电视技术、通信技术、和计算机技术的跨学科综合产物,被称为中国 21 世 纪前景最广阔的产业之一。在数字电视系统中,数字电视中间件技术是关键技术之一。数 字电视中间件是位于应用程序和操作系统之间的一种系统软件。我们通过定义一组支持数 字电视应用功能的标准程序接口,使应用程序具有与底层硬件平台无关的特点,使众多节 目提供商在不考虑硬件环境的情况下开发数字电视的交互式应用,大大降低开发成本。 目前,数字电视受到越来越多的国内外厂家的关注,国外对数字电视中间件系统的研 究己经取得了一定的进展,而国内的研究才刚刚起步。因此,研究和开发具有自主知识产 权的数字电视中间件平台具有重要的理论意义和广泛的应用价值。 本文以“数字电视中间件设计”为背景,主要针对其中的 Java 支撑平台部分做了深入 的研究。本文首先简要介绍了 Java 平台在数字电视中间件模型中的地位和作用,其次,研 究了 Java 的体系结构,重点分析了 Java AWT 部分的实现机制,并以此为基础,提出了基 于 DirectFB 图形库的 AWT 实现方案。 论文详细的阐述了项目研究的全过程,依次包括课题的提出、分析、设计、编码、测 试以及最后的实现等。其中主要的研究内容及成果有: 1. 对当前国际上现有的中间件标准进行比较,着重深入分析了欧洲数字电视中间件标 准 DVB-MHP 的体系结构、构成特点、交互模型。 2. 深入研究了 Java 的体系结构,重点分析了 Java API 的组成结构以及 Java 虚拟机的 实现,这是本项目研究的基础内容。深入分析了 J2ME、CVM 的体系结构、程序接口包及 其各部分功能。 针对 Sun 公司提供的 J2ME 的个人基本简表(PBP)的层次结构, 提出更为实 用的类库裁剪方案。 3. 详细分析 Java GUI 程序设计中的重要部分-AWT。在对 Java AWT 的体系结构进行 分析的基础上,提出了基于 Direct FB 图形库的 AWT 实现方案。该方案采用 Frame Buffer 实现方式,既充分利用了底层图形库中的资源,同时还可以提高效率。 4. 最后通过研究数字电视中间件模型, 实现了将 CVM AWT 移植到 DirectFB 图形库之 上,并针对嵌入式平台的需要,对 CVM 进行适当的裁减。通过对 DirectFB 的研究与优化, 上海交通大学工程硕士学位论文 摘要 v - 为 DirectFB 在数字电视中间件的开发与移植提供了重要的参考价值。 关键字:关键字:数字电视中间件,AWT,DirectFB,CVM 上海交通大学工程硕士学位论文 摘要 PORTING AND OPTIMIZATION GRAPHICS LIBRARY FOR INTEGRATED DIGITAL PLATFORM ABSTRACT The Digital Television is a result of combinations of high technology, such as television technology, network technology, and computer technology. Its regarded as one of the brightest future industries in the 2lst century of China. Middleware is one of the most important techniques in Digital Television system. It is a kind of system software that resides between the application and the underlying operation system. It hides low-level platform details to software developers by providing a set of standard application interface for Digital Television which reduces development cost greatly. Digital Television gets more and more manufacturers attention. More achievement of the research on Digital Television middleware has been made in European countries and USA than in China. The research and development of our own Digital Television middleware have an important academic and applied significance. Based on the project “The Digital television middleware”, this thesis mainly focuses on the further research of Java platform among them. This thesis briefly introduces the position and function of Java platform in the model of the Digital television middleware. Also the system structure of Java has been studied. On the basis of analyzing the implementation mechanism of Java AWT, the thesis 上海交通大学工程硕士学位论文 摘要 vii - emphasizes on presenting a scheme porting AWT to DirectFB Graphic library. The thesis describes the complete process of project research including proposition, analysis, design, coding, test and implementation, etc. Main research contents and achievements are spread out as following: 1. By comparing of existing prevalent middleware standards, this thesis analyzes the architecture,constitution,interactive model of DVB-MHP deeply. 2. Further research focuses on the system structure of Java, especially on the components structure of Java API and implementation mechanism of Java VM which is basic content of the project. Its analyzed deeply for J2ME,CVM and its architecture, APIs and functions of Java VM. Based on the architecture of Sun J2ME Personal Basic Profile (PBP), higher efficiency tailoring of class libraries is provided. 3. The thesis analyzes the important part in the design of Java GUI AWT. According to the requirements of the project, an implementation mechanism of Java AWT which is based on an embedded graphic library DirectFB has been proposed on the basis of analyzing the system structure of AWT. The implementation way uses FrameBuffer technology which takes advantage of resources in low level graphic library and keeps high efficiency as well. 4. This thesis studies the model of Digital Television middleware, gives design and implementation of porting CVM to graphic library DirectFB and reduction of CVM to fit in our embedded system. By the research and optimization of CVM, the thesis could be a good reference for Digital Television middelware 整站优化 上海交通大学工程硕士学位论文 摘要 viii - development, porting and optimization. Key Words: Digital Telesvesion Middelware, AWT, DirectFB, CVM 上海交通大学工程硕士学位论文 绪论 1 - 1 绪论 1 绪论 1.1 前言前言 数字电视是当前 IT 产业的热点1,2,作为一项即将在全国范围内开播的信息 服务,它融合了计算机、多媒体、通信网络等众多技术。数字电视不仅要接收数 字化传输的音频和视频节目,还要接收大量的数据,同时数字电视还要实现交互 功能,这就要求数字电视具有一定的信息处理能力和网络通信能力。随着数字电 视商业运营的迅速发展,面对大量涌现的数据业务和交互业务,人们认识到制定 一个共同标准的重要性,因此数字电视中间件标准应运而生。 应用程序 中间件 包括嵌入式 JVM 嵌入式图形系统 嵌入式操作系统及驱动程序 硬件设备 图 1-1 数字电视体系结构 Figure 1-1. The architecture of digital television 数字电视中间件(Middleware)系统是指嵌入在电视接收端、基于接收设备驱 动层软件之上、隔离交互应用与系统资源的一层软件。图 1-1 描述了一个包含中 间件的数字电视系统的体系结构。中间件使得应用程序可独立于接收机硬件平 台,从而使不同硬件组成和设计架构的数字电视均能在同一电视系统中使用。同 时,不同的软件公司可以基于同一编程接口来开发应用程序,并运行在不同的数 字电视上。 因此, 中间件技术可以使电视运营商大大降低硬件和应用软件的成本, 并可增强市场推广力度和数字电视普及率。 数字电视中间件主要以应用程序接口(API)的形式存在,储存在 FLASH 内。传统的中间件开发是使用 C/C+语言,而进入 90 年代,随着面向对象程序 开发的流行,Java 语言渐渐成为中间件开发的主流语言。由于“Java 是一个应用 程序开发平台,它提供了可移植、可解释、高性能和面向对象的编程语言及运行 环境” ,使得 Java 语言在中间件领域已经成为编程语言的发展方向,得到广泛应 用,同时具有较高的开发效率。 上海交通大学工程硕士学位论文 绪论 2 - JVM 是编译后的 JAVA 程序和硬件系统之间的接口, 它不仅解释执行编译后 的 Java 指令,而且还进行安全检查。要使基于 Java 的数字电视中间件软件能在 数字电视平台运行,JVM 是必不可少的机制。 MPEGpJava AWTHAVI UI event Return channel Inter-xlet communication DSM-CCSI Tuning JMF Service selection Application management DVB UI Section filtering Corditioral access MPEGpJava AWTHAVI UI event Return channel Inter-xlet communication DSM-CCSI Tuning JMF Service selection Application management DVB UI Section filtering Corditioral access 图 1-2 MHP 软件栈架构 Figure 1-2. The architecture of MHP software stack 欧洲最早认识到了数字电视交互式业务的重要性, 对交互式数字电视技术的 研发也是在世界上最早进行的。 在 DVB 的倡导和资助下, 欧洲于 1998 年成立中 间件标准工作组致力于数字电视通用家庭平台的研究, 就是后来的 MHP 标准 (多 媒体家庭平台,Multimedia Home Platform) 。MHP 标准为中间件标准的制定提供 了一个范例,并已被一些国家关注和借鉴。美国 Cable Labs 已采用 MHP 应用程 序接口作为美国数字电视中间件标准 OCAP 规范的核心组成部分。MHP 标准中 包含了一系列功能,如内存管理、通信管理、图形系统管理、SI 数据装载、系 统资源管理以及与前端系统间的通信和控制等,图 1-2 中所示的 DVBMHP 就是 基于 Java 虚拟机的标准机顶盒及其中间件结构图。 MHP 标准提出, 在数字电视中间件系统中必须包含一个 Java 虚拟机(JVM), 用以解译执行 Java 程序。这就是说,交互式应用要使用 Java 语言进行编程,同 时也倡导使用 HTML。 MHP 标准定义了一套兼容 Java 的应用编程接口(API), 此 API 以 3 个类别(Profile)的形式定义,或者说 3 个层次,其中每个上层类别都包 含下层类别。第一个类别是增强电视类别,它是基于 Java 的,而且其中不包括 上海交通大学工程硕士学位论文 绪论 3 - 兼容 HTML;第二个类别称为带反向通道的交互电视,定义为两种可选格式:一 种是“纯 Java”方案,源自 Sun 的 Java TV 规范,这种方案定义为缺省类别,另 一种可选的格式是在缺省类别的基础上增添兼容 HTML;第三个类别称为 Internet 接人,在交互电视类别的基础上增加 IP 和兼容 HTML 。 由此可见,将 Java 虚拟机移植到数字电视平台上,是实现数字电视交互式 应用的必备条件之一。 1.2 数字电视的中间件技术标准数字电视的中间件技术标准 在数字电视领域的两大标准化组织,欧洲的 DVB 和美国的 ATSC 在制定数 字电视广播标准、数据广播和交互业务标准之后,都开始制定中间件标准。美国 提出的 DASE 标准,欧洲提出的多媒体家用平台 MHP 标准。 1.2.1 美国美国 ATSC 提出的提出的 DASE 标准标准 美国作为数字电视主要的标准发起者, 其提出的 DASE 标准主要包括四个组 成部分: 应用执行引擎(AEE) 应用执行引擎 AEE 直接在接受机的操作系统和函数库上实现,以平台无关 的方式解释或执行应用代码中的程序部分, 为内容解码器和呈现引擎提供插件平 台,作为底层软硬件平台的抽象,扮演 DASE 环境集成者的角色,同时负责管理 多个应用可能竞争的资源。 呈现引擎(Presentation Engine,PE) 呈现引擎 PE 的功能是:执行描述屏幕显示操作的代码;提供屏幕的空间布 局;提供屏幕上小部件或对象的时间同步;允许小部件或对象在屏幕上合成;在 屏幕上对已知的小部件或对象进行实例化。 内容解码器(Content Decoder, CD) 内容解码器 CD 在 DASE 接受机中可有多个 CD。其功能是解释一种媒体类 型的线性或流式内容。它不控制空间布局,也不进行任何合成。CD 可以依赖接 受机平台,也可下载平台无关的 CD。 应用程序接口(Application Program Interface, API) 上海交通大学工程硕士学位论文 绪论 4 - 面向系统服务的应用程序接口 (API) 是 DASE 为应用程序提供的接口标准, 应用通过它访问下层操作系统和接受机硬件提供的系统服务。 这是操作系统自由 库之上的抽象层,使用 API 必须通过应用执行引擎 AEE,所以 API 是各方关注 的核心。 1.2.2 欧洲欧洲 DVB 的多媒体家用平台的多媒体家用平台 MHP 标准标准 目前,最著名的、影响最大的数字电视中间件标准是由欧洲 DVB 组织提出 的多媒体家庭平台(MHP) 。欧洲 DVB 提出的 MHP 标准是基于 Java 虚拟机的 中间件标准,采用市场驱动的框架3。在标准制定初期的工作重点是广播基础设 施,在大量的数字广播传输取得成功之后,DVB 的工作重点转移到交互业务这 一层次,代表成果是数据广播标准和交互业务标准。由于看到广播、计算机和消 费电子在家庭中的聚合,DVB 又迈出了第三步,即建立多媒体家庭平台(MHP) 标准。 DVB 内部关于 MHP 定义了一套兼容 Java 的应用编程接口(API),以三个类 别(profile)的形式定义,或者说三个层次,其中每个上层类别都包含下层类别。 1) 增强电视类别(Enhanced TV profile) :它是基于 Java 的,而且其中不包 括 HTML 兼容。 2) 带反向通道的交互电视:定义为两种可选格式:一种是“纯 Java”方案, 源自 Sun 的 Personal Java 规范和/或 Java TV 规范,这种方案定义为缺省类别; 另一种可选的格式是在缺省类别的基础上增添兼容 HTML。 3) Internet 接入,在交互电视类别的基础上增加 IP 和兼容 HTML。 现在 DVB-MHP 标准已经成熟, 它已经实现了第一次应用: 德国在此标准被 世界更广泛采用之前率先采用了这种技术。 DVB-MHP 为零售横向市场走向繁荣提供了支持。 它还是为电视价值链的所 有参与者提供的强大技术平台, 通过技术的合理化, 为互用性带来了很多的好处。 在这种环境中,数字电视运营商、广播公司以及消费类电子产品制造商将有机会 致力于真正的服务增值和品牌管理。DVB-MHP 是支持差别化的基础。它能够促 进竞争,为电视观众带来最好的产品和服务。 从中间件理论的角度出发,数字电视中间件系统是与平台无关的,为此,中 上海交通大学工程硕士学位论文 绪论 5 - 间件系统设计框架会将与平台无关的部分分离开来,形成一种层次化结构。根据 数字电视的实际情况,MHP 的层次化结构可分为三层。 (1)资源层:是硬件抽象层。包括机顶盒的硬件(MPEG 解码、输入,输出设 备、CPU、内存、图形显示等)、驱动程序和操作系统等,通过调用这些资源实 现交互应用。MHP 标准并没有规定如何实现这些硬件、软件资源。 (2)系统软件层:包括 MHP 的 API(应用程序编程接口)、应用管理器(或称应 用一导航)和 Java 虚拟机。该层构成了一个抽象的资源层并将它提供给应用层。 该层管理、 控制 MHP 和它上层的应用, 支持基本传输协议和虚拟机的功能。 MHP 标准明确提出中间件系统中必须包含一个 Java 虚拟机, 用以解释执行 Java 程序, 也就是说,Java 虚拟机为交互应用在不同硬件和操作系统上运行提供了标准接 口,通过它将标准化的 API 和与特定制造商相关的软硬件平台分开.应用只是通 过 API 来接触平台。同样地,MHP 标准也没有给出实现这一层的方法,而把实 现细节的问题留给了机顶盒和中间件厂商。 (3)应用层:包括相互作用、共同运行的 Java 应用程序和库。这些应用只能 通过 MHP 的 API 访问资源层。由于基于 Java 规范,因此 DVB-MHP 的平台命 名为 DVB-J。 其中的许多组件都是直接从 DVB 规范中提取的,另一些组件(特别是针对 DVB-J 平台的组件) ,是专门为 MHP 定义的。图 1-3 详细地显示了内嵌在 MHP 中间件中的不同组件。 硬件 实时操作系统 驱动程序 Java虚拟机 传输协议 应用管理器 (导航器) Sun Java APIHAVI DAVIC APIs DVB APIs 广播应用和数据 硬件 实时操作系统 驱动程序 Java虚拟机 传输协议 应用管理器 (导航器) Sun Java APIHAVI DAVIC APIs DVB APIs 广播应用和数据 图 1-3 数字电视 Java 虚拟机 Figure 1-3. The JVM of digital television 上海交通大学工程硕士学位论文 绪论 6 - 1.2.3 MHP 存在的问题存在的问题 然而 MHP 存在如下的不足: 首先,MHP 标准是几种不同类型的程序包的混合体,包括 personal Java, DAVIC,DVB,HAVI 等程序包。其中 Personal Java 程序包是基于 PJava 的 SUN 公司定义的标准。DVB 是由 DVB-MHP 技术委员会提供的,主要是对 DAVIC 和 标准 Java 的一些补充,如 org.dvb.event,file 等,其中不少的程序 包设计不合理。 其次, HAVI 图形包也有缺陷, HAVI 使用 Java.AWT 作为基础, 利用了 AWT 上的轻量级组件,重建了一套与 AWT 一样的二维图形 widget 体系。而且 AWT 的基础图形库 Microwindows 性能较差,不能够完全的满足数字电视机顶盒的要 求,因此,许多的开发厂商采用一些性能更好的图形加速库代替 AWT 的 microwindows。 最后,相对于 DAVIC 程序包,JavaTv 程序包的作用不大,Java Tv 程序主要 包括 DAVIC 和 DVB 程序包。它没有一个明显的资源管理模式。 1.2.4 中国的数字电视标准中国的数字电视标准 今天,百姓家中的耐用消费电器产品,以其低廉的价格、高可靠性、操作简 便赢得了消费者的信赖。如何在保存传统使用功能的同时,以人为本的开发面向 网络的综合新型应用,为百姓营造一个更轻松、自然、个性化的服务环境已经成 为社会创新的热点,信息电器的兴起正代表着这一潮流。 3G 的融合趋势越来越明显,使数字电视处在 3G 的融合点上。机顶盒作为 收看数字电视的用户终端吸引着众多人的目光, 而业务的多样化决定了机顶盒软 件平台具有多功能、经济而且可靠的特性。建立新一代的交互电视服务,使数字 电视交互应用也能面向 Java 语言,使其可在各式各样不同机器、不同种操作平 台的网络环境中开发应用节目软件“一次编译,到处运行” 。 数字电视在当今的信息化社会中占有极其重要的位置, 我国政府高度重视数 字电视产业的发展,已将数字电视技术的研发列入国家“十五计划”中优先发展 的十大产业之一。 (1)我国已着手制定数字电视标准。数字电视是国家产业政策的重要组成部 上海交通大学工程硕士学位论文 绪论 7 - 分,产业界要全力以赴参与。 (2)国家广播电影电视总局把 2004 年确定为数字发展年,进一步推动包括广 播在内的广播影视快速发展。 通过开播付费影视频道和有线数字广播节目等业务 开发带动网络整合,促进网络改造和产业升级。 (3)随着数字有线电视的开播,必将带动机顶盒的发展。因此,针对条件接 收制定机卡完全分离的机顶盒标准对产业界来说至关重要。 信息产业部已成立了 条件接收机卡分离的标准组,该标准组应加紧工作,尽早制定出标准,以满足发 展需要 (4)中间件标准的确定对启动数字电视市场至关重要。我国的中间件标准应 是机顶盒制造商、中间件技术供应商、条件接收系统供应商、前端系统开发商和 应用开发商以及科研单位共同研究制定,制定符合中国国情的标准。 (5)发展数字电视节目是关键。广播界能否提供丰富多彩的节目吸引消费者 是数字电视顺利、迅速推向市场的关键。 (6)产业、特别是电视机制造企业要加大科研开发力度,为适应数字电视高 清电视节目的接收,开发多品种、多系列的产品满足不同消费层次的需求。 (7)几年来通过发展数字光盘产业、通信产业以及数字化产品的开发,我们 培养了一支掌握了数字技术的队伍,这是极其宝贵的,但是未来的发展对人才的 需求越来越多,我们需广泛地吸引人才。 MHP 的目的就是基于 Java 应用的, 为 STB 中的软件程序和中间设备以及播 送服务的方式提供相关标准,使这些设备和服务在整个电视工业中可以通用。我 国的数字电视业务的开展与国外的电视网络相比,历史还很短,我国的有线电视 网络运营商应该吸取国外的经验和教训,选择世界上真正先进的技术。作为数字 交互业务的基础平台,中间件的选择至关重要。 在我国,数字电视市场并没有大规模启动。虽然有几家数字电视厂家在开发 自己的中间件,但目前并没有成熟的商业产品,然而这为我国直接开发符合自己 标准的通用中间件提供了契机。我国的数字电视中间件标准主要参考 MHP,但 同时应充分考虑我国数字电视领域的技术水平和研发能力以及我国的经济和文 化现状,计算机界、广播电视界和通讯界应通力合作,制定一个简洁实用符合我 国国情的标准。 上海交通大学工程硕士学位论文 绪论 8 - 1.3 本文主要的工作本文主要的工作 本论文的研究内容共分为五个部分: 第 2 章主要介绍 J2ME 的构架及其应用,通过对 J2ME 的说明,为 STD2000 数字电视平台挑选合适的 JVM,根据 STD2000 平台的特点,选择 CVM 作为系 统开发的 JVM,并支持 DLL 和 JNI。 第 3 章是对 STD2000 硬件平台进行说明,结合 ST 公司的 OS21 操作系统的 特点,将 CVM 移植到 STD2000 平台上需要注意的事项,结合国内外同行的前 期工作,提出在 STD2000 平台上移植 CVM 的解决方案。 第 4 章首先介绍了主流的嵌入式图形库,由于 DirectFB 图形库具有体积小, 系统资源占用少等特点,因此本文选用 DirectFB 图形作为系统的图形库,系统 通过 JNI 方法来调用 DirectFB 的函数库。将 DirectFB 移植到 STD2000 系统上之 后,针对系统进行各种相关的测试,测试结果表明系统完全能够满足实时响应的 要求。 第 5 章结合前三章对系统的分析及设计,制定了 AWT 的移植与优化方法, 针对 DirectFB 图形库的特性,找出影响系统的主要性能瓶颈,针对这些瓶颈进 行优化,测试结果表明相关的优化能够明显的改善系统的性能,同时通过建立相 关的数学模型进行理论分析和说明。 第 6 章详述了基于 STD2000 平台的数字电视机顶盒的软硬件流程实现,并 针对数字电视的发展方向和技术进行了展望。 上海交通大学工程硕士学位论文 数字电视开发平台 9 - 2 J2ME 构架及其应用 2 J2ME 构架及其应用 2.1 Java 语言与体系结构语言与体系结构 Java 是 SUN 公司开发的面向家用电器处理的新型编程语言,该公司在其诞 生之初就将其定位为简单的、面向对象的、稳定的、安全的、高效的、与平台无 关的、解释型的、多线程的、多态的语言4,5。Java 的最大特点是具有跨平台性, 和极佳的安全性。 Java 虚拟机有着一个比较完整的规范定义,在这个规范之下,衍生出了适应 各种平台开发的 Java 虚拟机。 主要有 J2EE (Java2 platform, Enterprise Edition) 和 J2SE(Java2 platform,standard Edition),J2ME(Java2 Platform,Micro Edition),其 中 J2ME 主要针对消费类和嵌入式电子产品,主要包括 CDC (connected Device configuration)和 CLDC(Connected Limited Device Configuration)。 CLDC 针对具有 16 位或 32 位处理器以及不少于大约 128KB 的存储器的微型设备,其特点是该 种设备功耗小、内存很少,这也导致了这种虚拟机的类库必须非常小。J2ME CLDC 的先决条件是一个精简的 JVM, 称为 K 虚拟机(K Virtual Machine (KVM)。 而 CDC 的目标是高档的消费类电子产品和嵌入式设备,例如智能通信设备、智 能个人数字助理(PDA)以及交互式数字电视机顶盒等。典型地,这些设备运行在 一个 32 位的微处理器土,而目有大于 2MB 用于存储 Java 虚拟机和类库的存储 器,CDC 的虚拟机被称为 C 虚拟机(C Virtual Machine (CVM)。 2.1.1 Java 程序设计语言程序设计语言 Java平台可分为两部分, 即Java虚拟机(Java virtual machine, JVM)和Java API 类库,Java 平台示意图如图 2-1 所示。 上海交通大学工程硕士学位论文 数字电视开发平台 10 - Java 源 程 序 (.java) Java编译器.class文件 来 自 Internet 的.class文件 获得类文件 类装载器以及字节码校验 Java API应 用 程 序 接 口 Java解释器即时编译器 运行时系统 - Java虚拟机-Java平台 Java 源 程 序 (.java) Java编译器.class文件 来 自 Internet 的.class文件 获得类文件 类装载器以及字节码校验 Java API应 用 程 序 接 口 Java解释器即时编译器 运行时系统 - Java虚拟机-Java平台 图 2-1 Java 平台示意图 Figure 2-1. The platform of Java 在 Java 平台的结构中,JVM 处在核心的位置。它的下方是移植接口,移植 接口由两部分组成,其中依赖于平台的部分称为适配器,JVM 通过移植接口在 具体的平台和操作系统上实现。在 JVM 的上方是 Java 的基本类库和 API。只要 根据 JVM 规格描述将解释器移植到特定的计算机上,就能保证利用 Java API 编 写的应用程序(application)和小程序(Java applet)可以在该系统上运行,从而实现 了 Java 的平台无关性。规范描述的 Java 虚拟机体系结构的必须元素为: (1) 数据类型 像 Java 语言一样,JVM 操作在两种类型上:基本类型和应用类型。相应地, 有两种值, 可以储存在变量中, 作为参数传递, 被方法返回, 以及对其进行操作: 基本值和引用值。 (2) 堆栈区 Java 堆在虚拟机启动时创建。对象的堆存储器由自动存储器管理系统(通常 是垃圾回收器(GC) )回收;对象从不显式地回收。Java 虚拟机不假定特殊类型 的自动除存器管理系统,储存器管理技术可以根据实现者的系统要求选择。Java 堆可以是固定大小的,或者按照计算机的需求扩展,并且可以在一个大的堆变得 上海交通大学工程硕士学位论文 数字电视开发平台 11 - 不必要时收缩。Java 堆的存储器不需要是连续的。JVM 实现可以向程序员或者 用户提供对堆初始化大小的控制,以及,如果堆可以被动态扩展或者收缩,对堆 大小的最大值和最小值的控制。 (3) 字节码指令集 一个 JVM 指令由指定要进行的操作的一个字节的操作码后面跟零个或多个 提供该操作使用的参数或者数据的操作数组成。许多指令没有操作数,只有一个 操作码组成。JVM 指令集中的绝大多数指令对它们进行的操作的有关类型信息 编码。 (4) 寄存器 JVM 能够支持多个线程的同时执行。每个 Java 虚拟机线程有自己的 PC 寄 存器,在任何点,每个 JVM 线程执行一个的单个方法的代码,这个方法是那个 线程的当前方法,如果那个方法不是 native,则 PC 寄存器包含当前正在被执行 的 JVM 指令的地址。如果当前正在被线程执行的方法是 native,则 JVM 的 PC 寄存器的值没有定义。JVM 的 PC 寄存器占一个字宽,这个字宽保证可以持有一 个 returnAddress 或者该特定平台的一个自身的指针。 (5) 方法区 JVM 有一个所有线程间共享的方法区。方法区类似传统语言的编译后代码 的储存区或者 UNIX 进程中的“正文”段。它存储每个类结构,如常数池、域和 方法数据,以及方法和构造函数。方法区在 JVM 启动时创建。 2.1.2 Java 应用编程接口应用编程接口(API) 跟传统的 C 语言类似,Java 也提供许多的 API 可供上层的程序设计人员使 用, 这一层 API 将下层的运作细节包装起来使用, 使得上层的程序设计人员可以 很方便的调用来完成某些特定的功能。一个 Java 程序的构架图如图 2-2 所示。 上海交通大学工程硕士学位论文 数字电视开发平台 12 - Java 程序 Java API 操作系统 Java 虚拟机 Java 程序 Java API 操作系统 Java 虚拟机 图 2-2 Java 程序的执行构架 Figure 2-2 the implementation framework of Java Java API 是运行库的集合,它可以提供一套访问主机系统资源的标准方法。 为了访问主机上的本地资源,Java API 调用本地方法。通过这种方法,Java API class 文件作为底层主机提供了具有平台无关性、标准接口的 Java 程序。对 Java 程序而言,无论平台内部结构如何,Java API 都会有相同的表现和可预测行为。 正是由于在每个特定的主机平台上都明确地实现了 Java 虚拟机和 Java API,因 此,Java 程序自身就能够成为具有平台无关性的程序。 在本课题中涉及到的 Java API 中主要包括:Java Lang,Java Util,AWT。 ClassMathRuntimeVoid Class LoaderProcessSystemSecurity Manager BooleanStringThreadThrowable Char ByteFloatIntegerDouble Long NumberThread Group Object 图 2-3 Java Lang 类库的层次结构图 Figure 2-3. Level structure of the Java Lang Class Java Lang 这个包被称作 Java 语言基础类库, 提供了一些 Java 低级系统调用 类, 封装了一些用于实现基本的程序功能的方法。 这个包不需要显式的加载, JVM 上海交通大学工程硕士学位论文 数字电视开发平台 13 - 在编译程序会自动地加载。该类库相比其它类库还有另外一个方便之处,即其中 许多类都是以静态成员的方式来实现其方法的。图 2-3 为 Java.Lang 类库中部分 类的层次示意图,其中 Throwable 类是所有异常类和错误类的根类。 Java.Util 包是 Java 的 Utility 类库, 从构成上看, Utility 类库是一个由一些实 用工具类组成的集合,这些实用工具类不仅使用非常方便,而且在整个 Java 语 言中占有非常重要的地位,其中有些类还是 Java 语言所不可缺少的。其中包括 随机数生成器(Random)、日期和时间(date)、哈希表(Hashtable)、向量(Vector)、 锁定(Lock)和堆栈(Stack)等。 Java AWT 是 Java 基本类的核心,同时也是本课题所要研究的主要内容。在 Java 语句中,面板、滚动条、标签、文本框、按钮等用户界面构件一般都被称作 构件。AWT 是一个构件的世界,其中,大约有一半的类在 Java.AWT.Component 类的扩展 AWT 中。Component 类和它所支持的类是 AWT 的基础。 Component(构件)-菜单、按钮、标签、列表等构件的抽象基本类。 Container(容器)-扩展 Component 的抽象基本类。由 Container 演变的类有 Panel、Applet、Window、Dialog 和 Frame 等。在容器中,可以包含多个构件。 LayoutManager(布局管理器)-定义容器中构件位置和尺寸的方法接口。Java 中定义了几种默认的布局管理器。 Graphics(图形类)-定义构件内图形操作的基本类,每个构件都有一个相 关的图形对象。 图 2-4 给出了 Java.AWT 中所有基本构件类的层次结构关系。 上海交通大学工程硕士学位论文 数字电视开发平台 14 - CanvasScrollbarButtonCheckbox LabelListChoice TextAreaTextField Textcomponent Applet Panel FileDialog DialogFrame Window Container Component Object MenuCheckMenu MenuitemMenubar Memcomponnet Object CanvasScrollbarButtonCheckbox LabelListChoice TextAreaTextField Textcomponent Applet Panel FileDialog DialogFrame Window Container Component Object MenuCheckMenu MenuitemMenubar Memcomponnet Object 图 2-4 Java.AWT 类库的层次结构图 Figure 2-3. Level structure of the Java AWT class 2.1.3 Java 虚拟机运行原理虚拟机运行原理 在 Java 虚拟机的规范中,一个虚拟机的实例是按照子系统、内存区、数据 类型以及指令这几个术语来描述的。 这些组成部分一起展示了抽象的虚拟机的内 部抽象体系结构。规范通过定义这些抽象的组成部分以及它们之间的交互,来定 义任何 Java 虚拟机实现都必须遵守的行为6,7。 每个 Java 虚拟机都有一个类装载子系统,它根据给定的全限定名来装入类 型(类或接口) 。同样,每个 Java 虚拟机都有一个执行引擎,它负责执行那些包 含在被装载类的方法中的指令。 执行引擎处于 JVM 的核心位置,在 Java 虚拟机的规范中,它的行为是由指 令集所决定的。 Java 虚拟机支持 248 个字节码, 每个字节码执行一种基本的 CPU 运算(图 2-5) 。 上海交通大学工程硕士学位论文 数字电视开发平台 15 - 类装载子系统 执行引擎 方法区堆Java栈 PC 寄存器 本地 方法栈 本地方法接口本地方法接口 本地方法库本地方法库 Class文件文件 类装载子系统 执行引擎 方法区堆Java栈 PC 寄存器 本地 方法栈 本地方法接口本地方法接口 本地方法库本地方法库 Class文件文件 图 2-5 Java 虚拟机的体系结构 Figure 2-5. The arichitecture of JVM 当 Java 虚拟机运行程序时,它需要内存来存储许多内容,例如字节码,从 已装载的 class 文件中得到的信息,程序创建的对象,传递给方法的参数,返回 值,局部变量,以及运算的中间结果等等。Java 虚拟机把这些东西都组织到几个 “运行时数据区”中,以方便管理。 Java 虚拟机相当于一个堆栈计算机,每个 Java 虚拟机实例都有一个方法区 以及一个堆栈,它们是由该虚拟机实例中所有的线程共享的。每个线程创建时, 都会拥有自己的程序计数器和 Java 栈,其中程序计数器的值指向下一条即将被 执行的指令,线程的 Java 栈则储存为该线程调用 Java 方法的状态。 当一个虚拟机装载一个 class 文件时, 它把从 class 文件包含的二进制数据解 析的类型信息放在方法区中:在程序运行时,把所有该程序在运行时创建的对象 都放在堆中。Java 栈由许多栈帧组成,一个栈帧包含一个 Java 方法调

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论