开发库
简介
Moblin
Image Creator 允许你在目标中安装相关的程序组、捆绑包,称之为“功能集” (fset) 。它们包括一些库和工具,能够为应用程序开发、系统配置、本地化等等,提供不同类型的功能性运用。这些也和普通的类和工具一样,你必须为
Moblin 应用程序开发安装它们到目标上。本指南将描述和解释可能需要或必须用到的 fset 。
该文档假定读者具备下列知识:
- 基础 Linux 知识
- 了解 MID
- MIC 基础知识
该文档分成 2 部分
- 第一部分介绍 MIC 中的 fset 和一些基本 fset 。
- 第二部分描述在 Moblin 应用程序开发中可能需要的独立包(库和工具)。
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 时,如果选择 |
"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-tools |
为 Linux kernel 2.6 包,创建和引导 |
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 库。
- libhildon: 该库包含用以 Moblin 应用程序的窗口小部件聚集。它提供标准 GTK+ 的增进,用来适应特殊移动功能和提供更多图形。它将在添加名为
Developer-Tools 的 fset 时自动获得安装。 - libhildondesktop: 该库是手持设备的桌面环境。提供包括任务导航,状态条标签(例如显示电池 / 无线信息)和系统菜单等等特征。在 Moblin 中, "Home" 和 "Marquee" 同样基于 libhildondesktop 开发。它将在添加名为 Developer-Tools 的 fset 时自动获得安装。
- libhildonfm: 该库是 Hildon 文件管理器,基于 GNOME VFS
。它为本地和远程 / internet 文件管理提供统一管理机制。 Hildon 文件管理库包含易用和内建对象,像标准 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