http://ask.loongnix.org/?/article/102
- 为什么要在龙芯平台上编写"壁纸切换器"
因为在Linux上没有找到好的开源软件,例如360壁纸软件、PC机上的动态壁纸软件都没有再龙芯平台上更好的兼容。所以需要编写能在龙芯平台运行的“壁纸切换器”。
- 开发语言:为什么要使用Python?
Python语言的优点:免费、开源、可高层语言、可移植性、解释性、面向对象、可扩展性、丰富的库、规范的代码等,由于Python的开源本质和可移植性的特点,Python已经被移植在许多平台上,这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC、Symbian以及Google基于linux开发的Android平台!所以Python程序无需修改就可以在上述任何平台上面运行!而且Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。
- 程序架构
配置文件:.wallpaper.conf 使用的是json的格式 为什么使用json? JSON是一种轻量级的数据交换格式,它基于JavaScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。 读取图片文件:一是本机上存放的图片,二是络上的FTP存放的图片 读取本机上的主要任务是,根据配置文件中图片的目录,读取该目录下的所有图片名称,再根据目录加集合里的图片名称用dconf命令更改桌面背景图片,和修改锁定屏幕的背景图片读取FTP上的图片,首先要根据FTP上存放图片的路径,把图片读取到本机上,再根据本机上的目录,读取该目录下的所有图片名称,再根据目录加集合里的图片名称用dconf命令更改桌面背景图片,和修改锁定屏幕的背景图片。 怎样更新壁纸:手动修改.wallpaper.conf配置文件后,进入终端以root用户执行
# python changeconfig.py
命令,就会重新读取修改后的图片目录。 开机后执行壁纸切换: 向/etc/xdg/autostart/目录下,增加了wallpaper.desktop文件,那么Fedora21操作系统就会开机自启动壁纸切换。 定时运行: 根据配置文件制定的时间,利用sleep()函数来执行定时切换图片的功能。 更新配置:信号机制 在主程序中,我们首先使用signal.signal()函数来预设信号处理函数。等待信号,当信号SIGUSR1被传递给该进程时,进程从暂停中恢复,并根据预设,执行SIGTSTP的信号处理函数myHandler()。我们可以根据自己的需要更改myHandler()中的操作,以针对不同的信号实现个性化的处理。 后台程序,自动运行 在打开终端后,以root用户运行wallpaper-1.0.1.sh后,可以关闭终端,进程会在后台运行,会定时切换壁纸。
- 网址
本项目已经开放代码
https://github.com/renyafei-loongson/wallpaper
- 总结
龙芯已经具有自由开发应用的能力,龙芯应用生态必将蓬勃发展。