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