hildon-desktop-1:2.0.7.debian.1.orig » src 中代码初步分析(2)
2009-03-26 21:53
246 查看
程序总结:
通过和各位兄弟们交流,收获不小,下面是我对这个程序运行机制的初步总结,可能不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
{
报警告;
}
为插件链接信号和回调函数;
加载和显示插件;
}
释放资源;
}
通过和各位兄弟们交流,收获不小,下面是我对这个程序运行机制的初步总结,可能不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
{
报警告;
}
为插件链接信号和回调函数;
加载和显示插件;
}
释放资源;
}
相关文章推荐
- hildon-desktop-1:2.0.7.debian.1.orig » src 中代码初步分析(1)
- [Unity&Photon&代码问题&代码分析]右键移动 目标 位置偏差
- APM代码中MAVLINK的初步分析。
- PVFS2源代码分析之输入输出src/io/bmi/reference-list引用表
- 修改设置->关于手机->法律信息 下有一些Item,如开放源代码许可、Google法律信息等,这里分析的是Android 4.4的代码
- 网狐棋牌代码分析(二) CQueueServiceEvent初步分析
- <二>---RIL层代码分析---RIL_startEventLoop()->eventLoop()->ril_event_loop()
- StagefrightPlayer&&AwesomePlayer 初步分析
- 【Unity&DragonBone】(代码分析)创建骨骼选择动画详细
- Android 获取Root权限之后的静默安装实现 代码示例分析&&源码下载
- Win2K下关联进程/端口之代码初步分析
- Android学习之分析代码&巩固基础
- Day 4:MSDN没有内容解决方法&VS第一个Windows程序代码分析
- Win2K下关联进程/端口之代码初步分析
- 网狐棋牌代码分析(三) 调度引擎初步分析
- CCNode&nbsp;代码分析
- 怎样面对凌乱的代码:源码分析利器Source Insight
- 建模分析之机器学习算法(附python&R代码)
- Ogre材质解析代码初步分析(五)
- S3C6410的启动代码分析 一