MeeGo开发进程通信核心 DBus调试工具

  我们讲过用QML语言开发MeeGo应用程序,在MeeGo开发中,DBus是MeeGo进程通信的核心。我们简要的看一下MeeGo系统的哪些地方都使用了DBus.

  1.从一个应用中启动另一个应用。比如在联系人应用中想要拨打联系人的电话时,MeeGo系统中是通过DBus做进程通信的.

  2.Service Framework是基于DBus的。比如你看到一个多媒体文件,点击提交一个"播放文件"的请求,该请求搜索合适的应用来播放该文件.

  3.发布和订阅者系统。比如一个屏幕上的显示订阅了电池的电量消息,则在电量变化时通过DBus通知订阅者.

  4.Notification Manager也是基于DBus的。如有短信到达,Notification Manger会进行提示.

  5.系统的配置文件如果想在变动的时候通知MeeGo中感兴趣的应用,也需要用到DBus,比如主题的变化等.

  6.蓝牙中间件bluez和电话管理系统ofono的进程通信系统也是基于DBus的。

  鉴于DBus的这种重要性,可以说"没有DBus就没有MeeGo。那么我们也有必要了解一下MeeGo中有哪些DBus工具可以使用,方便在开发过程中遇到问题时更快的定位和解决问题。

  准备DBUS_SESSION_BUS_ADDRESS

  两个基于DBus的应用要能进行通信,他们需要有同样的DBUS_SESSION_BUS_ADDRESS.MeeGo在启动它的uxlaunch时,会启动一个DBus的服务进程,可以从这个进程里得到DBUS_SESSION_BUS_ADDRESS的值,而且通过uxlaunch加载的应用会继承该环境变量,如果是自己从命令行启动的话,那么需要在运行你的应用前设置好该环境变量,才能正常的和MeeGo系统里的已有应用进行通信。可以通过如下方法设置该值.

   1. export `tr ‘/0′ ‘/n’ 
<
/proc/$(pidof duihome)/environ|grep DBUS_SESSION_BUS_ADDRESS`

it知识库MeeGo开发进程通信核心 DBus调试工具,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。