Moblin Linux开发手册(一)_简介
2008-11-04 09:07
218 查看
简介
此文旨在为Moblin项目概念提供如何在Moblin环境中通过LibOSSO库编程的指导。此文将提供程序模型,通常使用API描述和示例代码。
此文假设读者具备下列知识:
·
了解MID。
·
基本Linux应用程序编程技能,基于GTK+。
·
熟悉Hildon应用程序框架。
·
熟悉Moblin Image Creator及如何使用它开发。
此文不是完整的Moblin开发者编程手册,亦不提供深入编程参考给Moblin应用程序开发者。为打算在Moblin上使用LibOSSO的应用程序开发者,提供介绍、高层技术概览和入门级程序手册。
LibOSSO库是由Maemo团体开发的D-Bus。此文描叙如何在Moblin环境上通过LibOSSO库编程。确切说,此文讨论LibOSSO背景、LibOSSO编程模型,通常会使用API描述和示例代码。此文不是完整的Moblin开发者编程手册,亦不提供深入编程参考给Moblin应用程序开发者。
文中章节有:
LibOSSO纵览
背景
目前,新的进程间通信(IPC)机制,D-Bus,已是成功要素。D-Bus是给免费桌面环境设计的统一中间件层。与其它IPC机制相比,D-Bus简单且快捷。想知道更多关于D-Bus编程的细节信息,查阅SDK中另一文章,使用D-Bus的APIs。
LibOSSO库由Meamo团体开发,它装入大部分在MID(或Nokia Internet Table)常用D-Bus功能。因为他简单易用,并独立于libdus API可能的改变,LibOSSO是Moblin开发交付的库。
LibOSSO简介
所有Moblin应用程序都期待使用LibOSSO库。主要原因是Moblin应用程序框架是Hildon,Hildon拥有的任务管理机制将周期的终止没有在D-Bus中注册的进程。使用LibOSSO是让应用程序在D-Bus中注册和避免任务进程被终止的最好方式。LibOSSO方便的独立应用程序与D-Bus层可能的执行改变。D-Bus用于在API没有稳定前更好,所以LibOSSO提供“版本独立”于D-Bus中。因为D-Bus有区域完备(1.0),无API改变将期待低层库,但GLib/D-Bus包装可能持续改变部分目标[2]。
通过使用LibOSSO,应用程序可容易的发出RPC到任意注册的D-Bus服务。LibOSSO通常装入D-Bus服务相关的必须硬件和系统事件初始化,这样应用程序可完全地接收和控制这些事件——这是运行在MID上的应用程序必须的。例如,注册后,应用程序能在系统电力不足时收到消息……应用程序能在处理这些事件时获得更加使用体验。
除D-Bus API包外,LibOSSO也提供一些有用功能,像UI状态和应用程序数据自动保存。
所有LibOSSO调用是平台独立的,所以这些库能被方便的用于桌面、Maemo和Moblin,以及不同计算机系统架构。
提示:此功能集是针对大多通用GUI应用程序涵盖所需,同样的,并非能满足全部情况。在有些情况下,将必须使用GLib/D-Bus包功能(或者直接是libdbus,这是不推荐的)[2]。
基本LibOSSO编程模型
概述
类似许多其他的库,使用LibOSSO被使用在应用程序前有几个必须步骤。这些步骤是:
1.
准备该库的包。
2.
修改编译文件,包含LibOSSO和开发(头)文件。
3.
增加必须设定并清理代码。
4.
通过LibOSSO
API实现设计功能。
准备该库的包
通过LibOSSO开发前,开发包需要被安装。LibOSSO没有独立包,通常,它包含在Hildon库中。所以,用户可通过安装Hildon-1库实现。在Debian系统中,可使用该命令:
$ apt-get install libhildon-1-dev
添加LibOSSO参考到编译文件
在包已被准备后,编译文件——通常是configure.ac 或configure.in——需要被定义给编译器,以便找到头文件,并告知linker程序哪个库文件应该被连接到应用程序。
下列代码片段显示如何添加LibOSSO参考到编译文件"configure.ac":
....
# Checks for libosso libraries.
PKG_CHECK_MODULES(LIBOSSO, [libosso]
# Add libosso specific preprocessor, compile & link flags
CFLAGS="$CFLAGS $LIBOSSO_CFLAGS"
LIBS="$LIBS $LIBOSSO_LIBS"
....
基本编程步骤
在完成准备工作后,LibOSSO现已能被应用程序使用。通过LibOSSO编程非常简单,只需要下列步骤:
1.
包含<libosso.h>到公共头文件。
2.
在使用任何LibOSSO
API前调用“osso_initialize()”函数,并保证返回的上下文指针在以后使用。
3.
调用LibOSSO
API实现设计功能。
提示:所有其他LibOSSO API需要上下文结构指针,像初始化函数返回pass-in参数。
4.
在程序结束前,通过调用“osso_deinitialize()”清理,这应该是应用程序实例的LibOSSO生命周期中最后一个调用。
你可下载示例代码这里:http://v1.moblin.org/toolkits/sampleCode/hello_libosso.tar.gz
基本编程步骤示例代码:
//
// Header file inclusion: above step1
//
#include <libosso.h>
....
//
// OSSO initialization: above step2
//
osso_context = osso_initialize (
"org.moblin.my_program_name",
;"0.1",
TRUE,
NULL);
if (sso_context == NULL)
{
g_error ("failed to initialize osso!/n");
return OSSO_ERROR;
}
....
//
// Calling other APIs: above step3
//
osso_rpc_run (osso_context, ...); // Just an example
....
//
// Clean up: above step4
//
if (osso_context != NULL)
{
osso_deinitialize (osso_context);
osso_context = NULL;
}
....
翻译:徐诚
本文译自Moblin.org技术社区, 点击此处,查看原文
更多内容,到“Moblin技术中国”专区
此文旨在为Moblin项目概念提供如何在Moblin环境中通过LibOSSO库编程的指导。此文将提供程序模型,通常使用API描述和示例代码。
此文假设读者具备下列知识:
·
了解MID。
·
基本Linux应用程序编程技能,基于GTK+。
·
熟悉Hildon应用程序框架。
·
熟悉Moblin Image Creator及如何使用它开发。
此文不是完整的Moblin开发者编程手册,亦不提供深入编程参考给Moblin应用程序开发者。为打算在Moblin上使用LibOSSO的应用程序开发者,提供介绍、高层技术概览和入门级程序手册。
LibOSSO库是由Maemo团体开发的D-Bus。此文描叙如何在Moblin环境上通过LibOSSO库编程。确切说,此文讨论LibOSSO背景、LibOSSO编程模型,通常会使用API描述和示例代码。此文不是完整的Moblin开发者编程手册,亦不提供深入编程参考给Moblin应用程序开发者。
文中章节有:
章节 | 描述 |
LibOSSO纵览 | 介绍LibOSSO基本术语和背景 |
基本LibOSSO编程模型 | 介绍在Moblin环境中使用LibOSSO基本编程步骤 |
通过LibOSSO实现RPC | 介绍如何使用LibOSSO实现远程过程调用(RPC),使用同步和异步方式 |
通过LibOSSO接收系统事件 | 描述如何使用LibOSSO接收和操作系统事件 |
背景
目前,新的进程间通信(IPC)机制,D-Bus,已是成功要素。D-Bus是给免费桌面环境设计的统一中间件层。与其它IPC机制相比,D-Bus简单且快捷。想知道更多关于D-Bus编程的细节信息,查阅SDK中另一文章,使用D-Bus的APIs。
LibOSSO库由Meamo团体开发,它装入大部分在MID(或Nokia Internet Table)常用D-Bus功能。因为他简单易用,并独立于libdus API可能的改变,LibOSSO是Moblin开发交付的库。
LibOSSO简介
所有Moblin应用程序都期待使用LibOSSO库。主要原因是Moblin应用程序框架是Hildon,Hildon拥有的任务管理机制将周期的终止没有在D-Bus中注册的进程。使用LibOSSO是让应用程序在D-Bus中注册和避免任务进程被终止的最好方式。LibOSSO方便的独立应用程序与D-Bus层可能的执行改变。D-Bus用于在API没有稳定前更好,所以LibOSSO提供“版本独立”于D-Bus中。因为D-Bus有区域完备(1.0),无API改变将期待低层库,但GLib/D-Bus包装可能持续改变部分目标[2]。
通过使用LibOSSO,应用程序可容易的发出RPC到任意注册的D-Bus服务。LibOSSO通常装入D-Bus服务相关的必须硬件和系统事件初始化,这样应用程序可完全地接收和控制这些事件——这是运行在MID上的应用程序必须的。例如,注册后,应用程序能在系统电力不足时收到消息……应用程序能在处理这些事件时获得更加使用体验。
除D-Bus API包外,LibOSSO也提供一些有用功能,像UI状态和应用程序数据自动保存。
所有LibOSSO调用是平台独立的,所以这些库能被方便的用于桌面、Maemo和Moblin,以及不同计算机系统架构。
提示:此功能集是针对大多通用GUI应用程序涵盖所需,同样的,并非能满足全部情况。在有些情况下,将必须使用GLib/D-Bus包功能(或者直接是libdbus,这是不推荐的)[2]。
基本LibOSSO编程模型
概述
类似许多其他的库,使用LibOSSO被使用在应用程序前有几个必须步骤。这些步骤是:
1.
准备该库的包。
2.
修改编译文件,包含LibOSSO和开发(头)文件。
3.
增加必须设定并清理代码。
4.
通过LibOSSO
API实现设计功能。
准备该库的包
通过LibOSSO开发前,开发包需要被安装。LibOSSO没有独立包,通常,它包含在Hildon库中。所以,用户可通过安装Hildon-1库实现。在Debian系统中,可使用该命令:
$ apt-get install libhildon-1-dev
添加LibOSSO参考到编译文件
在包已被准备后,编译文件——通常是configure.ac 或configure.in——需要被定义给编译器,以便找到头文件,并告知linker程序哪个库文件应该被连接到应用程序。
下列代码片段显示如何添加LibOSSO参考到编译文件"configure.ac":
....
# Checks for libosso libraries.
PKG_CHECK_MODULES(LIBOSSO, [libosso]
# Add libosso specific preprocessor, compile & link flags
CFLAGS="$CFLAGS $LIBOSSO_CFLAGS"
LIBS="$LIBS $LIBOSSO_LIBS"
....
基本编程步骤
在完成准备工作后,LibOSSO现已能被应用程序使用。通过LibOSSO编程非常简单,只需要下列步骤:
1.
包含<libosso.h>到公共头文件。
2.
在使用任何LibOSSO
API前调用“osso_initialize()”函数,并保证返回的上下文指针在以后使用。
3.
调用LibOSSO
API实现设计功能。
提示:所有其他LibOSSO API需要上下文结构指针,像初始化函数返回pass-in参数。
4.
在程序结束前,通过调用“osso_deinitialize()”清理,这应该是应用程序实例的LibOSSO生命周期中最后一个调用。
你可下载示例代码这里:http://v1.moblin.org/toolkits/sampleCode/hello_libosso.tar.gz
基本编程步骤示例代码:
//
// Header file inclusion: above step1
//
#include <libosso.h>
....
//
// OSSO initialization: above step2
//
osso_context = osso_initialize (
"org.moblin.my_program_name",
;"0.1",
TRUE,
NULL);
if (sso_context == NULL)
{
g_error ("failed to initialize osso!/n");
return OSSO_ERROR;
}
....
//
// Calling other APIs: above step3
//
osso_rpc_run (osso_context, ...); // Just an example
....
//
// Clean up: above step4
//
if (osso_context != NULL)
{
osso_deinitialize (osso_context);
osso_context = NULL;
}
....
翻译:徐诚
本文译自Moblin.org技术社区, 点击此处,查看原文
更多内容,到“Moblin技术中国”专区
相关文章推荐
- Moblin Linux开发手册(三)_通过LibOSSO接收和操作事件
- 嵌入式Linux完全开发手册-------------基于X的GUI开发(久违了我的哥)
- 【Linux 开发】Libevent开源库使用简介及实例
- gcc中文手册-搞Linux开发的有空应该多看看
- 嵌入式Linux开发简介(二)
- Unix/Linux下的Curses库开发指南——第一章 Curses库开发简介
- Linux驱动开发入门——基本知识简介
- 嵌入式Linux系统设计--第五章:Linxu程序开发简介
- Linux下avr的开发AVRDUDE的使用简介和AVR熔丝位 — 大工CSDN – EE01工作室【附件】
- 嵌入式 Linux 开发简介
- Moblin开发手册:理解Hildon应用程序
- 【Linux开发】内核模块简介
- Unix/Linux C++应用开发-Linux下shell简介
- linux_c 网络开发日记(2)GCC简介
- Linux下开发常用的CVS使用手册
- 嵌入式Linux开发简介
- 嵌入式linux应用开发完全手册 关于pc为什么指向下两条指令的位置问题
- Moblin开发手册:理解 Hildon应用程序
- Linux 内核开发—内核简介
- Linux C++ 开发简介(包括Linux守护线程)