分享
 
 
 

苹果开发人员技术文档连载之-系统架构(3)

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

Cocoa

Cocoa应用程序环境基于两个面向对象框架:Foundation 基本框架(Foundation. framework)与 Application Kit 应用程序工具箱框架(AppKit.framework)。这些框架都提供了面向Java和Objective-C的API(其中大部分的Java类只是简单地“桥接”了他的Objective-C实现)。

对与核心服务层和应用服务层的各自关系来说,Foundation 与 Application Kit在某些方面有着相似之处。Foundation框架中的类提供了不对用户界面产生影响的对象和功能;Foundation框架直接基于Core Foundation。而 Application Kit 中的类提供了所有能够影响用户界面上所呈现内容的对象和动作,例如:窗口和按钮、对鼠标和键盘的响应。 Application Kit 直接依赖于Foundation框架。

Foundation框架的类可归为以下几种类别:

·用于基本编程类型和操作的对象包装(或“助手(helper)”),包括:字符串、数组、字典、数字、字节交换、解析和异常处理等。

·用于内核环境实体和服务的对象包装,例如任务、端口、运行循环、计时器、线程和锁。

·对象相关功能,尤其是内存管理(自动释放缓冲区),远程调用、存档和串行化。

·文件系统和I/O功能,包括了URL处理、文件查找和代码以及本地化资源的动态装载。

·其他服务,例如分布式通知、取消(和重做)、格式化数据、使用系统日期和时间。

正如所期待的一样,许多Application Kit类被设计成用于创建和管理显示在图形用户界面上的对象。在这些类中,包括了窗口、对话框、按钮、图表、文本框、滚动条、弹出式菜单、滚动图、应用程序(下拉)菜单,甚至是用于QuickTime流的电影播放界面。

然而,Application Kit所拥有的特性与功能使得它远比作为一个用户界面对象的类集合更为有用。

·它有着对事件处理、应用程序管理与文档管理的成熟机制。

·它提供了对色彩、字体和打印进行管理与整合的应用方式(甚至提供了针对这些功能的对话框)。

·它允许以许多不同的图形格式来合成图像,还为绘画、矢量图处理提供了框架。

·它具有针对拼写检查、拖拽和复制粘贴等操作所提供的工具。

其他的 Cocoa 框架还能用于支持脚本、网络管理和其他用途。

Cocoa包罗框架(Cocoa.framework)中引入了Foundation框架和Application Kit框架。如果您正在编写一个应用程序,可以连接Cocoa框架。而如果您正在编写一个没有图形用户界面的Cocoa程序(例如:后台服务器),那么您至少需要连接Foundation框架。

JAVA

Java应用程序环境允许您在Mac OS X上开发和执行Java程序,包括100%的纯Java应用程序和applets。该环境由一个统一的工业化标准所实现--那就是包括了Java虚拟机(VM)在内的最新版本的Java开发工具(JDK)。因为这个原因,在该环境下生成的Java应用程序是可移植的。你可以把它复制到一个硬件完全不同,操作系统也不同的机器上,只要该系统具有兼容的Java 虚拟机,您的应用程序就可以在该系统上运行。另外,Java applet可以在任何性能合适的互联网浏览器中运行。

注意:Cocoa应用程序环境中包含了适应Application Kit和Foundation框架的Java包。这些包允许您使用Java作为开发语言来开发Cocoa应用程序。(出于某种原因)您可以混合使用这些包里的API和本机Java API(不包括AWT或Swing API)。关于Cocoa应用程序环境的更多内容,参见“Cocoa”。另外,苹果公司的Jdirect和Sun公司的JNI(Java Native Interface)编程界面允许您的Java程序调用其他框架,包括Carbon。并且您可以使用QuickTime for Javala来为Mac OS和Windows平台编写多媒体Java应用程序。

Mac OS X内的Java应用程序环境有三个主要的构件:

·开发环境,包括Java编译器(javac)和Java调试器(jdb)以及其它工具,包括:javap、javadoc和appletviewer等。这个"命令行"环境需要一个BSD shell,例如它可以由苹果的终端应用程序来提供。苹果还提供了Project Builder应用程序,作为这个环境的前端开发工具,而且第三方也可以使用他们自己的前端开发工具。命令行工具位于JavaVM.framework/Commands子目录下,并提供符号连接来将其连接到目录/usr/bin中。

·运行时环境由Sun公司的高性能Hotspot Java虚拟机、“just-in-time”(JIT)字节码编译器和基本的Java包所组成。Java虚拟机位于/System/Library/Frameworks/JavaVM.framework/Libraries目录下。这些基础包包括ava.lang、java.util、java.io和java.net;它们都在同一框架下的Classes目录中的classes.jar归档文件中。

·一个应用程序框架含有为建立一个Java应用程序所必需的类。

这些包中较为重要的是java.awt和javax.swing,通常它们被称为AWT(Abstract Windowing Toolkit) 和Swing。AWT包实现了标准的用户界面组件(例如:按钮和文本框)、基本绘图组件、布局管理器和事件处理机制。Swing包则极大的扩展了这套用户界面组件。这些组件能自动呈现出符合其宿主平台的外观风格(look and feel)。Swing在基于当前版本的AWT组件集的基础上扩充了一组高级组件,例如目录视图、列表框和分页框。AWT和Swing的包位于JavaVM.framework/Classes/classes.jar中的jar归档文件中。

比较起Carbon和Cocoa环境,Java虚拟机连同最基本的Java包(java.lang、java.util和java.io)等同于系统软件中的核心服务层。它们从内核环境中获得资源以实现低级别的服务(例如:进程管理、线程和输入/输出),而不必访问系统软件中的核心服务层(Open Transport,Core Foundation,等等)。

Mac OS X中Java的所有其它部分被分层置于虚拟机和基本Java包之上。如果一个Java程序不具用户界面(或者说它是一个工具或应用服务器),那么它仅仅只需要使用这些基本的Java包。但是100%的纯Java应用程序或applet(根据定义,applet具有图形用户界面)必须使用AWT或Swing,这两者均与系统软件应用服务层中的许多框架和库绑定在一起。Swing自身也被分层置于AWT包的原始部分之上。AWT和Swing在结构上等同于面向GUI的工具箱或框架,例如Carbon的人性化接口工具箱(Human Interface Toolbox)或Cocoa的Application Kit。

如同任何一个Carbon或Cocoa应用程序一样,Java应用程序也可以是能双击执行的束(double-clickable bundle),您可以使用MRJAppBuilder工具软件来绑定Java应用程序。另外,用户也可以在命令行环境中运行Java程序,或者通过系统exec调用和Java Runtime.exec 方法来执行Java应用程序。对于后一种情况,所启动Java程序的进程名会被显示成用于启动可执行Java程序的工具,即:java,或针对applet的appletviewer (例如,在Process Viewer中察看)。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有