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

来源:互联网 发布:美国linux主机 编辑:程序博客网 时间:2024/06/06 00:09

程序总结:
通过和各位兄弟们交流,收获不小,下面是我对这个程序运行机制的初步总结,可能不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
      {
         报警告;
      }
      为插件链接信号和回调函数;
      加载和显示插件;     
   }
   释放资源;
}

原创粉丝点击