hildon-desktop-1:2.0.7.debian.1.orig » src 中代碼初步分析(2)

來源:互聯網
上載者:User

程式總結:
通過和各位兄弟們交流,收穫不小,下面是我對這個程式運行機制的初步總結,可能不100%正確,錯誤之處希望大家指正。
0)準備:
啟動指令碼af***.sh,將最後面有一處"hildon-desktop"的注釋掉,再運行
>af***.sh start
如果不注釋,將啟動原來的圖形介面了。
1)編譯:
目前的目錄為src,命令:
>cd ../
>make
只運行make即可,這樣會在src目錄下產生一個hildon-desktop,這是一個指令檔,實際的可執行檔在./.libs/hildon-destop中,但是運行兩者沒有什麼區別。
2)運行
命令:
>cd src/
>run-standalone ./hildon-desktop

**************以上內容對大家沒有用,這裡開始有用資訊*****************************
程式會讀取設定檔,然後再根據設定檔載入,最後將圖形顯示出來。ctrl+c終止。
(具體名字記不住了,所以上面命令或者檔案名稱可能有些錯誤)
3)設定檔:
~/.osso下面的設定檔都是***.conf的,描述了外掛程式的全域屬性,供程式讀取,並且它將有某個欄位連向相應的***.desktop檔案。
/usr/share/application/hildon下面的檔案就是***.conf指定的***.desktop檔案,該檔案描述了外掛程式的具體屬性,其中包括某個欄位,該欄位指向運行外掛程式的具體模組一般為***.so檔案。我們要編寫的大概就是這個檔案吧。

**************以上內容對代碼可能沒用這裡是分析******************
4)程式碼分析:
在上次的基礎上我進一步分析了hd_desktop_load_containers,現在把它的大體過程寫出來:
hd_desktop_load_containers(...)
{
   初始設定變數;
   載入設定檔到keyfile;
   for(每個外掛程式)
   {
      通過keyfile讀取設定檔中的各種參數資訊;
      如果是home外掛程式
      {
         載入相應於home的資訊;
         根據載入的資訊建立該外掛程式;
      }
      如果是panel外掛程式
      {
         載入相應於panel的資訊;
         如果是panel中的非擴充外掛程式
         {
            建立非擴充panel(就是左側的);
         }
         如果是panel中的擴充外掛程式
         {
            建立擴充panel(就是頂部的"statusbar");
         }
      }
      如果既不是home也不是panel
      {
         警示告;
      }
      為外掛程式連結訊號和回呼函數;
      載入和顯示外掛程式;     
   }
   釋放資源;
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.