移植PBP和PP

原创 2007年09月12日 17:22:00
PBP提供了一套GUI工具包,这套GUI工具包称为轻量级的组件工具包,这是因为这套工具包组件功能内部的实现是基于Java技术的,即在实现内部并不是直接调用本地平台的GUI工具包相应的组件功能来实现的而是通过调用java.awt包(basis/classes/common/java/awt)中的Java类来实现的,当然java.awt包中的类的实现内部实现调到最底层最基本的功能还是调用本地GUI工具包最基本的接口来实现,但是PBP
层的组件接口的功能是基于Java技术来实现的。
移植PBP的目的就是让PBP最底层内部的实现使用不同的本地GUI工具包。
PBP移植层的结构:CDC Porting文档152。
在basis/classes/common/java/awt下包含了PBP1.1标准中规定的java.awt及java.awt.*中所有的类,这些类只是提供了基本的GUI功能,还并没有提供各种组件对应的类。PBP所说的提供的轻量级的组件工具包技术通过调用这些类里的基本图形功能来实现的。
basis/classes/common/sun/awt在面的类对PBP规定的要提供的类(即java.awt中的类)提供了一个高层的实现(in java)。
basis/classes/awt/qt/java/awt下面的类是对ava.awt中的类提供了一个具体的实现(in java),相当于Java版的GUI工具包,这些类负责注册和调用本地桥的native方法,其native方法的实现需要调用qt库。
basis/classes/awt/microwindows/java.awt下面的类是对java.awt中的类提供了一个具体的实现(in java),相当于Java版的GUI工具包,这些类负责注册和调用本地桥的native方法,其native方法的实现需要调用microwindows库。
basis/native/awt/qt是basis/classes/awt/qt/java/awt下面的类的native方法的具体实现(in C),调用qt库函数。移植PBP类库的主要工作就在此。
basis/native/awt/microwindows是basis/classes/awt/microwindows/java/awt下面的类的native方法的具体实现(in C),调用microwindows库函数,移植PBP类库的主要工作就在此。
basis/classes/common/sun/awt/image下提供了实现PBP类库所需要的图像处理类(in jave),负责图象的解码。
basis/native/image是basis/classes/common/sun/awt/image下面类的native方法的具体实现(in C)需要使用具体的编解码算法。
移植PBP对本地GUI工具包的要求:CDC Porting文档155。
什么是TrueType技术?TrueType字体有什么特点?
答:TrueType是由AppleComputer公司和Microsoft公司联合提出的一种新型数学字形描述技术。它用数学函数描述字体轮廓外形,含有字形构造、颜色填充、数字描述函数、流程条件控制、栅格处理控制、附加提示控制等指令。TrueType采用几何学中二次B样条曲线及直线来描述字体的外形轮廓,其特点是:TrueType既可以作打印字体,又可以用作屏幕显示;由于它是由指令对字形进行描述,因此它与分辨率无关,输出时总是按照打印机的分辨率输出。无论放大或缩小,字符总是光滑的,不会有锯齿出现。但相对PostScript字体来说,其质量
要差一些。特别是在文字太小时,就表现得不是很清楚。
TrueType字体的优势是什么?
答:TrueType字体具有如下优势:①真正的所见即所得字体。由于True-Type字体支持几乎所有输出设备,因而无论在屏幕、激光打印机、激光照排机上,还是在彩色喷墨打印机上,均能以设备的分辨率输出,因而输出很光滑。②支持字体嵌入技术。存盘时可将文件中使用的所有TrueType 字体采用嵌入方式一并存入文件之中,使整个文件中所有字体可方便地传递到其它计算机中使用。嵌入技术可保证未安装相
应字体的计算机能以原格式使用原字体打印。③操作系统的兼容性。MAC和PC机均支持TrueType字体,都可以在同名软件中直接打开应用文件而不需要替换字体。
在我们修改了本地桥层的native方法的实现之后,我们要将新的本地桥层编译出一个新的动态链接库,并且在使用的时候在Java文件中加载这个库。
在本地桥层中的本地方法内部调用的是本地GUI工具包中的库函数。
PP提供了一套重量级的GUI组件接口,这些组件功能的实现都是直接调用本地GUI工具库的API来完成的,和PBP不一样,它们不是有java.awt包中的Java类来实现的。
在Java中对GUI Weight如按钮、对话框等的支持有两种方式:一种是轻量级的GUI组件,它们是java.awt.Component类的子类,完全是基于Java技术来实现的。另一种是重量级的GUI组件,它们是基于本地GUI工具库中的weidgt来实现的。
同PBP一样,PP也分为上层的公共的API和低层的实现类,实现类需要实现personal/classes/awt/peer_based/sun/awt/peer下的接口。
SwingGCU工具包提供了一个与awt不同的GUI框架,它提供了比awt更多的接口,许多Swing类的实现是作为一个轻量级的GUI组件。
PP同样提供了基于AWT的GUI接口,即java.awt包中的类,并且提供的类比PBP还要丰富,但是PP对于这些接口的实现方式与PBP不同,这种不同也直接导致了PP提供的是一些重量级的GUI组建.
PP移植层的结构:
1)AWT层,即java.awt包中的类,即Java应用程序员可以直接使用的类,也就是我们PP层最终要实现的类,在personal/classes/awt/peer_base/java/awt下的类和personal/classes/common/java/awt下的类,以及basis/classes/common/java/awt下的类。
2)AWT Peer接口层:指的是personal/classes/awt/peer_based/sun/awt/peer的接口,这些接口就定义了我们要实现AWT层所必须实现的接口。
3)Sun AWT实现层:指的是personal/classes/awt/peer_based/sun/awt下面的java文件以及basis/classes/common/sun/awt下面的java文件,这些类是Sun为实现AWT层所提供的高端的类。
4)工具包支持库层:指的是personal/classes/awt/peer_based/sun/awt/qt下的java文件,这一层相当于一个java版的GUI工具库,它实现了awt Peer层提出的接口,这些类使用了native方法来通过调用本地GUI工具库中的接口来实现相应的功能。
5)本地桥层:说白了就是上一层中的类的native方法的实现层,这些实现文件在personal/native/awt/qt下面。

personal/classes/common/sun/awt/image下提供了实现PP类库所需要的图像处理类(in jave),负责图象的解码。
personla/native/image是personal/classes/common/sun/awt/image下面类的native方法的具体实现(in C)需要使用具体的编解码算法。
PP的移植层结构图:Porting指南163。
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

pbp.scripts-0.2.5.tar.gz

  • 2012-10-11 00:21
  • 41KB
  • 下载

PSP 官方 340.PBP 系统

  • 2014-08-17 23:08
  • 21.03MB
  • 下载

创建lv 报空间不足 lsvg -p vg_name 是有pp (第二篇)

今天建lv 的时候,报 not enough space 的错,很是奇怪,发现:lsvg -p vg_name 是有pp的。 也没有向本人的另外一个blog 上的 情况:http://blog.cs...

pbp_agui-1_0-fr-spec-jdoc

  • 2009-08-27 15:25
  • 3.12MB
  • 下载

SAP一句话入门之PP

SAP一句话入门之PP 【Production Planning】     经济实体都是要拿东西出来卖了挣钱的,一流企业卖标准,二流企业卖服务,三流企业卖产品,个人还可以卖思想卖文字卖体力啥的。除...

4.4 CMMI4级——几个直接与项目管理相关的PA(PP、PMC、IPM、RSKM、QPM、CAR)

2级到5级,直接跟项目管理有关的PA有好几个,它们是怎样的关系呢?

塑料:聚乙烯(PE). 聚氯乙烯(PVC), 聚苯乙烯(PS), 聚丙烯(PP), ABS 树脂

通用塑料包括五大合成树脂,包括:聚乙烯(PE) 、聚氯乙烯(PVC) 、聚苯乙烯(PS) 、聚丙烯(PP)和 ABS 树脂。 塑料是 聚苯乙烯吗?        ...

PP代码生成器(一) 简介, 下载, 运行

今天, 向大家推荐一款代码生成利器—-PP代码生成器(后文简称为PP).PP是基于freemarker模板, 在freemarker的世界里, 数据模型 + 模板文件 = 生成结果. PP也遵循着这条...
  • hwpok
  • hwpok
  • 2017-07-26 22:44
  • 141

pp看书笔记---C#高级编程第九版 第八章 【委托、Lambda表达式和事件】

一、文章脉络二、需要掌握 委托、Func、Action的使用 简单的Lambda的使用 EventHandler + WeakEventManager的使用 三、阐述自己学习后的见解 委托 原理: ...

Linux OK6410-Post图像处理器-pp的应用

分析后的PP处理流程.官方只给一个简单中测试程序.简单分析其处理机制,大体按如下流程进行处理.    1.打开/dev/s3c-pp结点进行操作    2.对PP的设备使用io...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)