开发库
简介
Moblin Image Creator 允许你在目标中安装相关的程序组、捆绑包,称之为“功能集” (fset) 。它们包括一些库和工具,能够为应用程序开发、系统配置、本地化等等,提供不同类型的功能性运用。这些也和普通的类和工具一样,你必须为 Moblin 应用程序开发安装它们到目标上。本指南将描述和解释可能需要或必须用到的 fset 。
该文档假定读者具备下列知识:
该文档分成 2 部分
MIC 中的功能集
该部分描述如何安装功能集( fset )到你的目标映像。
• 概念
在使用 MIC 创建目标后,可增加一个或多个 fset 到目标。 Fset 是一捆独立包,用来添加高级功能。有些是对于特定目标的开发、系统配置、本地化,有些 fset 依赖其它 fset 。如果你选择安装一个 fset 需要依赖其它 fset , MIC 将自动安装这些所依赖的 fset 。
• 功能集配置
当使用 MIC 去创建映像,基于你设备的物理架构,选择不同平台构架构。例如, Samsung Q1 Ultra* 是当前建立的 McCaslin 低能耗 Intel 架构( LPIA )。如果你选择平台为 mccaslin-lpia , MIC 将允许你仅安装该平台相应的 fset 。有些 fset 可用于所有架构,另一些则对应于特定设备。
• 对于每个平台,可用 fset 的详细信息描述在 fset 配置文件中。通过阅读你平台上的这些特殊文件,你可以依照需要添加 fset 。这些文件通常放在工作站 /usr/share/pdk/platforms/[chosen-platform]/fsets/base.fset 目录中。例如,如果你目标平台是 menlow-lpia , fset 配置文件将位于 /usr/share/pdk/platforms/menlow-lpia/fsets/base.fset .
这是名为 Core 的 fset 在 menlow-lpia 平台的 base.fset 中描述:
[Core]
DESC=Fundamental fset that provides a root filesystem that uses the Ubuntu* kernel
PKGS=busybox-initramfs initramfs-tools pm-utils vbetool usplash-theme-ubuntu dosfstools psmisc
DEBUG_PKGS=man-database manpages openssh-client openssh-server
DEPS=ubuntu-kernel|moblin-kernel
在文中:
"[Core]" 是 fset 名称,以方括号分隔表示 | |
"DESC=..." | 该域是 fset 的面貌摘要描述 |
"PKGS=..." | 该域列出此 fset 所有包;在添加此 fset 到目标时,这些包将通过 apt 或 yum ( 依靠你使用的包管理器 ) 被自动安装 |
"DEBUG_PKGS=..." | 该域列出在添加 fset 时,如果选择 "Include Debug Packages (if any)" ,将被安装的包。 |
"DEPS=..." | 该域说明名为 Core 的 fset 所依赖的 fset 。此前这些 fset 没有添加到目标,将在添加 Core 时自动添加。 |
基本功能集
某些 fset 被普遍使用,因为他们包含在大多数基本包里,或者包含在大多用户需要的多个包里。另一些 fset 是非常重要的,因为它们提供一个非常特殊的功能。下列部分描述这些 fset 的内容。
亚洲字体
该 fset 添加用来浏览中国、日本和韩国网站的字体,例如中文 Unicode 字体 Mingti ,朝鲜文 Un series 字体。此 fset 依赖 core ,可用到所有平台。
Core
这是用来提供基本文件系统的基础 fset 。当前,在 MIC 上可用于所有平台。
用 menlow-lpia 平台举例,当使用 Ubuntu-Kernel 的 fset 时,此 fset 使用 Ubuntu 内核提供根文件系统。它包含下列特定包:
包名 | 包描述 |
busybox-initramfs | 一个简单独立 shell ,用来提供基础应用程序所需要的 initramfs |
initramfs-tools | 为 Linux kernel 2.6 包,创建和引导 initramfs 的工具 |
pm-utils | LPIA 下电源管理应用和脚本 |
vbetool | 运行实时模式视频 BIOS 解码去改变硬件状态的工具 |
usplash-theme-ubuntu | Ubuntu 的桌面主题 |
dosfstools | 在 LINUX 下的硬盘或磁盘创建和检查 MS-DOS FAT 文件系统的应用 |
psmisc | 使用 proc 文件系统的应用 |
开发工具
在目标文件系统上开发 moblin 应用程序时,推荐添加名为 Developer-Tools 的 fset ,来安装必须的开发包。
该 fset 依赖 Core ,可用于所有平台。包含下列 fset :
包名 | 包描述 |
ubuntu-mobile-dev | Ubuntu Mobile 开发环境 |
libtool | 通用库支持脚本 |
autoconf | 自动配置脚本生成器 |
automake | 产生 GNU 标准适应 Makefiles 工具 |
hildon-desktop-dev | Hildon 桌面开发文件,它是植入设备的桌面环境 |
man | 在线参考手册接口 |
manpages | 使用 GNU/Linux 系统的手册页面 |
curl | 用来从 HTTP 、 HTTPS 或 FTP 服务器获取文件的工具 |
python-dev | Python 的头文件和静态库,它是一个交互式高级面向对象语言 |
dh-make | 转换源文件到 Debian 包源的工具 |
设备配置
设备配置相关 fset 提供特殊设备的配置文件。这些 fset 通常以 [your device]-Config 作为标题。目前, MIC 拥有 Samsung-Q1-Ultra-Config 和 CrownBeach-Config 两个 fset ,可分别用于所有 McCaslin 和 Menlow 平台。两种设备配置 fset 均依赖于 Core 。
GNOME-Mobile
该 fset 提供 GNOME 构成组件,用以建立移动 Linux 堆栈。此包主要包括: mobile X window system-related packages , device drivers , libraries and python bindings of GStreamer* , D-Bus , GTK , telepathy-related packages , GNOME menus 和 icon theme-related packages 。
该 fset 依赖设备配置 fset 。例如,在 menlow-lpia 平台上,该 fset 依赖名为 CrownBeach-Config 的 fset 。此 fset 可用于所有平台,只有微小的差别。 menlow-lpia 平台序列的 GNOME-Mobile fset 包含下列要添加的包:
包名 | 包描述 |
libdrm2 | 本库提供用户空间接口到内核 DRM 服务 |
xf86-video-psb / xserver-xorg-video-psb | Poulsbo 2D 图形驱动 |
全部移动堆栈带有或不带有“所有权”
全部移动堆栈拥有基础 fset 集合,包括 Core 、 设备配置 fset ,等等。它还拥有读取 X 窗口、 Hildon 和引导移动设备到主屏所需要的全部组件。因此,为了方便,它在目标中安装了大多数用户需要的基础 fset 。
全部移动堆栈带有和不带有“所有权”的区别,是前者包含额外的包用来为 Netscape 及 Mozilla-based 浏览器下载和安装 Adobe Flash* Player 插件。
全部移动堆栈 fset 通常以 [your device]-Full-Mobile-Stack or [your device]-Full-Mobile-Stack-with-Proprietary 为标题。当前, MIC 拥有下列 fset 可用语不同平台:
Samsung-Full-Mobile-Stack , Samsung-Full-Mobile-Stack-with-Proprietary , CrownBeach-Full-Mobile-Stack , CrownBeach-Full-Mobile-Stack-with-Proprietary , Moblin-CrownBeach-Full-Mobile-Stack , Moblin-CrownBeach-Full-Mobile-Stack-with-Proprietary .
Moblin 开发包
这部分更深层次描述某些普遍用于 Moblin 应用程序开发的特殊库。有的已经包含在名为 Developer-Tools 的 fset 中。
Hildon 库
Hildon ,一种 Maemo GUI 应用程序框架,它基于 GTK+ ,还有一些技术来自 GNOME 框架。 Hildon 包含某些 GTK+ 增进,使它更适合应用在移动设备。更多 Hildon 详细描述可在 这里 找到。
Moblin 通常使用 Hildon 作为应用程序框架。下面是你需要为 Moblin 应用程序开发安装的三大 Hildon 库。
你可以直接使用 apt 或 yum (依靠你使用的包管理器)安装 Hildon 开发文件。例如,当使用 apt 安装开发文件的三大 Hildon 库,可运行 apt-get install libhildon-1-dev libhildondesktop-dev libhildonfm2-dev 。
GStreamer 库
GStreamer 是创建流媒体应用程序的框架。该框架被设计用来制造易写应用程序修正,从简单 Ogg/Vorbis 录音重放到复杂音频(混合)和视频(非线性编辑)进程。
最重要的 GStreame 用途是媒体播放器。 GStreamer 已经包含建立媒体播放器的组件,可支持非常多的格式。开发者可通过干净、通用接口编写简单插件 [1] ,添加新代码和过滤器。
更多文档能在 http://gstreamer.freedesktop.org/ 被找到。你可以从该站点下载 GStreamer 包。同样,你也可以使用 apt 或 yum 安装 GStreamer 。例如,使用 apt 安装 GStreamer 核心开发文件时,你可以运行 apt-get install libgstreamer0.10-dev 。
Helix 库
Helix 和 GStreamer 非常相似,也是一个操作视频、音频的编码、同步和其它进程的媒体框架。它是交叉平台( Symbian*, Linux*, Windows*, Solaris*, Mac*, 等等),发起人是 Real 网络公司。它拥有很多成功的模型(如媒体播放器)在手持设备上。与 GStreamer 相比, Helix 支持 DRM (数子版权管理) [2] 。更多详细信息见: http://helixcommunity.org/ 。
为开发建立 Helix 引擎在 Moblin 目标文件系统,可参照 本文档 指示。
D-Bus 相关库
D-Bus 是一个管理总线系统,确切说,是使应用程序与其它应用程序对话的一种简单方法。另外在进程间通信中, D-Bus 帮助调整进程生命周期;使它简单和可靠的编写“单一实例”应用程序或后台程序,并在这些服务所需要时启动应用程序和后台程序 [3] 。更多详细信息见 http://www.freedesktop.org/wiki/Software/dbus 。
LibOSSO , D-Bus 的低级 API 包装,是使用 Maemo 所有应用程序设计的库。它为应用程序提供通知机制,因此它们可以在系统关机或内存不足时正常的关闭。另外, LibOSSO 从 D-Bus 层可能发生的改变中很容易隔离应用程序。
LibOSSO 通常提供可用效用函数给偶然发生在 Internet 面板上的句柄自动保存、平台特征状态保存、硬件状态进程、设备模式改变等其它重要事件。也提供便利的效用包装函数给 D-Bus 发送远程程序方法调用。详见: http://maemo.org/maemo_training_material/maemo4.x/html/maemo_Platform_Development/
Chapter_02_LibOSSO.html 。
可使用 apt 或 yum 安装 D-Bus 相关开发文件。例如,当使用 apt 安装 LibOSSO 开发文件时,可运行 apt-get install libosso-dev 。
相关文档
建立此文档参考了下列资料。请查阅这些资料获取详情。
• GStreamer Introduction - http://gstreamer.freedesktop.org/
• Helix Introduction - http://helixcommunity.org/
• DBus Introduction - http://www.freedesktop.org/wiki/Software/dbus
• Maemo platform training - http://maemo.org/maemo_training_material/maemo4.x/html/maemo_Platform_Development/
Chapter_02_LibOSSO.html