|
我們講過用QML語言開發(fā)MeeGo應(yīng)用程序,在MeeGo開發(fā)中,DBus是MeeGo進程通信的核心。我們簡要的看一下MeeGo系統(tǒng)的哪些地方都使用了DBus.
1.從一個應(yīng)用中啟動另一個應(yīng)用時。比如在聯(lián)系人應(yīng)用中想要撥打聯(lián)系人的電話時,MeeGo系統(tǒng)中是通過DBus做進程通信的.
2.Service Framework是基于DBus的。比如你看到一個多媒體文件,點擊提交一個"播放文件"的請求,該請求搜索合適的應(yīng)用來播放該文件.
3.發(fā)布和訂閱者系統(tǒng)。比如一個屏幕上的顯示訂閱了電池的電量消息,則在電量變化時通過DBus通知訂閱者.
4.Notification Manager也是基于DBus的。如有短信到達,Notification Manger會進行提示.
5.系統(tǒng)的配置文件如果想在變動的時候通知MeeGo中感興趣的應(yīng)用,也需要用到DBus,比如主題的變化等.
6.藍牙中間件bluez和電話管理系統(tǒng)ofono的進程通信系統(tǒng)也是基于DBus的。
鑒于DBus的這種重要性,可以說"沒有DBus就沒有MeeGo。那么我們也有必要了解一下MeeGo中有哪些DBus工具可以使用,方便在開發(fā)過程中遇到問題時更快的定位和解決問題。
準備DBUS_SESSION_BUS_ADDRESS
兩個基于DBus的應(yīng)用要能進行通信,他們需要有同樣的DBUS_SESSION_BUS_ADDRESS.MeeGo在啟動它的uxlaunch時,會啟動一個DBus的服務(wù)進程,可以從這個進程里得到DBUS_SESSION_BUS_ADDRESS的值,而且通過uxlaunch加載的應(yīng)用會繼承該環(huán)境變量,如果是自己從命令行啟動的話,那么需要在運行你的應(yīng)用前設(shè)置好該環(huán)境變量,才能正常的和MeeGo系統(tǒng)里的已有應(yīng)用進行通信。可以通過如下方法設(shè)置該值.
1. export `tr ‘/0′ ‘/n’
< /proc/$(pidof duihome)/environ|grep DBUS_SESSION_BUS_ADDRESS`
it知識庫:MeeGo開發(fā)進程通信核心 DBus調(diào)試工具,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。