IM软件在智能电话终端上的设计与实现

[09-14 01:05:09]   来源:http://www.88dzw.com  电子制作   阅读:8623

文章摘要:针对上面的二个问题,对Kmess软件进行了较大的调整,主要保留了与MSN协议处理的相关的内容。具体调整如下:(1)重新设计界面部分由于Kmess中的用户界面是基于KDE环境,而原型机上采用的是Qt-Embeded,因此界面部分基本不能用,本文用Qt designer重新设计了登录窗口、主菜单、联系人窗口、会话窗口等,在这些界面中再调用Kmess的函数。(2)KDE库函数的替换将源代码中的基于KDE的库函数用Qt-Embeded提供的类函数来实现。由于Qt-Embeded对一些基本功能的实现都有很好的支持,所以找到它们的对应实现方法并不困难,惟一的例外是SSL的实现。(3)剪裁部分源代码分析Km

IM软件在智能电话终端上的设计与实现,标签:电子小制作,http://www.88dzw.com
针对上面的二个问题,对Kmess软件进行了较大的调整,主要保留了与MSN协议处理的相关的内容。具体调整如下:
  (1)重新设计界面部分
  由于Kmess中的用户界面是基于KDE环境,而原型机上采用的是Qt-Embeded,因此界面部分基本不能用,本文用Qt designer重新设计了登录窗口、主菜单、联系人窗口、会话窗口等,在这些界面中再调用Kmess的函数。
  (2)KDE库函数的替换
  将源代码中的基于KDE的库函数用Qt-Embeded提供的类函数来实现。由于Qt-Embeded对一些基本功能的实现都有很好的支持,所以找到它们的对应实现方法并不困难,惟一的例外是SSL的实现。
  (3)剪裁部分源代码
  分析Kmess的源码结构,删除不需要实现的功能部分,构建自己需要的体系结构。由于Kmess的模块之间有着紧密联系,因此并不是简单剔除实现这些增强功能的类函数就可以完成的。首先必须理清Kmess的层次结构及模块与模块之间的相互关系,只有在对整体结构有了清晰的了解之后才能够着手剪裁工作。
2.4 IM网络安全的实现
  在登录过程中,用户要向NS服务器发送账号和密码来通过验证,只有合法的注册用户才能使用即时消息收发功能,因此对用户账号和密码必须进行加密。MSN客户端采用SSL(Secure Socket Layer)技术来保证账号信息的安全性。SSL即安全套接层,是介于应用层和TCP层之间的一个薄层。使用SSL协议的双方可以在一个不安全的公共信道上协商加密算法和加密密钥,并使用协商好的算法和密钥将应用层的数据加密成密文,然后在网络上传输。这样即使第三方截获了该密文,由于没有解密算法和密钥,也无法解密出明文数据,从而确保网络数据的安全性。
2.5 应用程序的移植
  由于在原型机上开发和调试应用程序有相当大的困难,因此需要在PC上先进行仿真开发,然后再下载到原型机上。
  (1)PC机与原型机的通信
  PC机通过串口与原型机交换数据。在Linux中,串口的设备文件一般为/dev/ttyS0和/dev/ttyS1,分别表示串口1和串口2。首先用open命令打开串口,然后根据具体的应用来配置串口,设置波特率、校验方法、数据位、停止位和流控制等参数。设置完成后,就可以通过MINICOM串口通信程序,完成PC与原型机之间应用程序的下载和调试结果的上传等操作。
  (2)应用程序的交叉编译
  整个开发过程分为二个阶段:第一阶段,开发者在PC环境下使用Qt-Embeded进行应用程序开发,通过gcc编译器生成在PC上可以执行的目标代码,然后使用QVFB模拟原型机的运行效果,经过不断的调整直到满足用户的要求;第二阶段,根据CPU体系结构的不同,对PC上实现的应用程序作相应的调整后,再使用arm-Linux-gcc将程序重新交叉编译为在原型机上可执行的代码,最后将该代码下载到原型机的Flash中,从而完成原型机上的即时消息软件的开发。由于在PC机上已经用QVFB模拟过软件的运行情况,因此下载到原型机上后能基本上确保软件的正确性,从而大大提高了开发效率。
  (3)OpenSSL库的交叉编译
  OpenSSL库是作为目标代码被调用的,因此还需要进行OpenSSL库的移植工作。首先需在PC上对OpenSSL库进行交叉编译,生成目标平台上使用的二进制文件,然后将其载入目标平台。为了使OpenSSL库能够在ARM嵌入式平台上运行,首先要为OpenSSL的Makefile文件加入一个名为“opensslForARM.Makefile.patch”的补丁,再用arm-Linux-gcc编译生成可执行代码。
  (4)OpenSSL库的注册
  交叉编译OpenSSL成功后,使用MINICOM将其下载到原型机上,但此时仍然无法正常使用OpenSSL库函数。这是因为在Linux中只有经过注册的库,才能成为共享动态链接库。Linux下的共享库采用了类似于高速缓存的机制,将共享库所在的目录信息首先保存在/etc/ld.so.cache中。应用程序需要连接时先在这个文件里查找,若找不到再去ld.so.conf的路径里查找。动态链接库的管理命令ldconfig会在默认目录(/lib和/usr/lib)和动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库,进而创建出动态装入程序(ld.so)所需的连接和缓存文件,并将已排序的动态链接库名称列表存放在默认文件/etc/ld.so.cache中。用户首先将ldconfig下载到原型机上,然后在ld.so.conf文件中指定OpenSSL的路径,运行ldconfig命令即可自动完成整个注册过程。
3  结束语
  在智能电话终端上构造MSN客户端软件,首先要考虑目标平台的特点及资源的有限性,选择实现其中最基本和最常用的功能;然后借助于已有的开放源码成果,选择一个合适的开源项目,并对其界面部分和相关库函数进行调整和调试,使之满足目标平台的运行要求;最后通过交叉编译的方法生成目标平台上的可执行代码并下载到智能电话终端上。充分利用现有的开源成果不仅可以大大简化对MSN专用协议的分析和实现过程,而且也进一步降低了软件的开发成本,缩短了软件的开发周期,使智能电话终端具有更好的性价比。

上一页  [1] [2] [3] 


Tag:电子制作电子小制作维修教程知识 - 电子制作

《IM软件在智能电话终端上的设计与实现》相关文章