首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 应用>linux桌面应用>文章内容
如何用Portland改善Linux桌面移植性
来源:http://www.ibm.com 作者: 发布时间:2008-03-10  

使用任何语言或开发环境的开发人员应当都能访问这些工具;可以使用编程方式调用它们,如同使用 shell 中的其他命令一样。例如,如果正在使用 Python,那么可以在 bash 代码编写的安装脚本中使用 XdgUtils 工具,也可以使用系统调用,就像下面这样:

os.system("xdg-open %s" % chosen_URL)

或者,也可以使用 Python 的任何其他函数更精细地控制外部进程。

乍看之下,Portland 的目标很普通。它只是用一致的方式包装了现有的功能 —— 图标的安装、屏幕保护程序的管理,所以开发人员不必为每个新的应用程序或要使用的桌面环境重新创建所有基本内容。而且实现该目标的代价非常小: Portland 的开源许可使得使用 Portland 无需金钱上的开支,其简单性实现了只花费很少的时间就可下载、安装和使用 Portland。结论很明显:很小的投资就得到了确切而显著的回报。所以这是个很容易做出的选择。

光辉的前景

如果相信 Portland 从现在开始还会继续发展下去,那么就很容易做出选择了。对于初始发行版,多数工作放在了基于 Linux 的 Gnome 和 KDE,而且 Xfce 也得到了 Waldo Bastian 所称的 “极大关注”,Waldo Bastian 是 Intel 公司 Linux 客户机架构师,一名主要的 Portland 贡献者。当 Portland 获得其首次成功应用之后,很自然会预测到它会扩展到更多桌面环境,甚至扩展到其他操作系统,例如 Solaris 或 FreeBSD。它的命令行实现当然可以让它扩展到新领域。从开发经理的角度来看,我很高兴为 Portland 界面编写代码。如果我的客户需要移植到 Portland 还不支持的桌面环境,对我们来说,实现一个正确的 Portland 扩展不会比把我们自己的代码应用到不支持的桌面环境上更难。

而且情况应当只会随着时间而改善。如果当前实现像我期待的那样流行,那么厂商,包括发行打包商,都会有兴趣维护和更新 Portland,尤其会使用特定于操作系统的方式来适应它们。同时,Portland 团队保证不会修改编程接口。Intel 的 Tom Whipple 准备的测试套件应当有助于保证这种稳定性。

围绕 Portland 有几个公开的问题。打包标准这个问题仍然需要协商。Portland 的设计者们很明智地对他们的架构设计进行最大程度地解耦;目前来说,打包问题已经被隔离,甚至还不知道最终的解决方案会是否是 Portland、Linux Standard Base(LSB)或其他工作的一部分。目前,Portland 仍只局限在编程访问典型窗口管理器的图标和其他组件。一旦发布了 KDE 4,编程接口可能会扩展到包含图标命名和共享的 MIME 数据库规范。

请记住,如果愿意,可以用称为 DAPI 的 C 绑定进行窗口管理器级别的进程间访问。尽管 XdgUtils 更加成熟,还可以从项目的 CVS 库中获得 DAPI 的早期发行版:

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/portland \
co portland/dapi

有效的 DAPI 编码可以是模块化的,也可以是面向事件的。面向事件的情况下,应用程序连接到 DAPI,然后用 select() 方法侦听活动。模块化调用的示例是清单 2 中打开资源的函数(对发行版文档中的函数稍微做了修改)。


清单 2. 打开 URL 的 DAPI C 代码示例
/* Initialize with dapi_connectAndInit(). */
static DapiConnection* my_dapi_connection;

int openURL(const char *url)
{
/* DAPI wants to know about toplevel_widget so
   it can properly handle focus, layering, ... */
   if (dapi_OpenUrl_window(my_dapi_connection,
                 url,
                 XWINDOW_HANDLE(toplevel_widget)))
      return 1;
/* Handle failure here ... */
}

结束语

如果应用程序,特别是应用程序的安装程序,直接处理桌面环境,那么 Portland 能提供一种实现相同功能的更好途径。只要对源代码做最少的修改,以及最少的许可影响或最少的编程困难,并且不会牺牲任何功能,就能够使用 Portland,获得多于自己所能数倍的移植性。而且从此还能利用未来 Portland 具备的任何增强和扩展。

原文链接:http://www.ibm.com/developerworks/cn/linux/l-portland.html


共2页: 上一页 [1] 2 下一页
 
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
  热点文章
·Linux桌面环境下载工具Netlocust
·linux下好用的播放器mpd使用指南
·为自己的爱好量身定做Linux系统
·FreeBSD7.0Release中文Gnome桌面
  相关文章
·linux下好用的播放器mpd使用指南
·为自己的爱好量身定做Linux系统
·Linux桌面环境下载工具Netlocust
·FreeBSD7.0Release中文Gnome桌面

本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.
站长QQ:397422079 E_mail:riechelr_hl@unix5.com
转载本站内容请注明原作者名.谢谢!