《在龙芯上自己编写“壁纸切换器”》

  • 为什么要在龙芯平台上编写"壁纸切换器"
              因为在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   
 
  • 总结

            龙芯已经具有自由开发应用的能力,龙芯应用生态必将蓬勃发展。


wallpaper.png


架构图.png


pintu.png


wall.png

 

3 个评论

可以看一下爱壁纸。因为是用Python写的,直接就能在龙芯电脑上用。不过因为长时间没有更新了,有些桌面不能切换壁纸了,比如MATE桌面就切换不了。
用 python ……
龙芯最好使用 C/C++ 写。解释型语言多了,性能真跟不上的。这种语言只能用来辅助,不能作为主用。
做为一般的控制类应用程序,对性能要求不高,Python是十分合适的选择。
C/C++涉及到编译、库版本等各种环境依赖,对于发行软件是很痛苦的。

要回复文章请先登录注册