[活动] 【项目挑战】Offline Email Box贴子之四 GTK界面数据库等等的...

[复制链接]
 楼主| zhanzr21 发表于 2016-3-31 16:54 | 显示全部楼层 |阅读模式
本帖最后由 zhanzr21 于 2016-3-31 17:20 编辑

理论上也验证过了,交叉环境也搭建好了。现在来正式的开发。这里就讲的不是很详细,因为细节较多,如果想交流嵌入式linux开发,可以跟帖。

应用开发大致分为三个环节:GUI, 数据库, 网络操作, 还有一些小的部分夹杂着讲。 一点点来

1. GUI
我使用的镜像支持GTK2, 所以我就用他做GUI。老规矩还是桌面开发先行。这里也要注意版本问题,桌面上流行的已经是GTK3了,但是要单独下载gtk2的开发包。后面讲的gtk都是gtk2.
GTK我一直不大喜欢,认为是个不成熟的framework, 我一般使用QT. 但是这里没有挑捡的余地。
因为目标机器的分辨率只有480x272,作很复杂的GUI就不大现实,做了个简单的界面:

这是开发主机模拟的,最后机器上的界面大同小异。照相机不行,反光,就不上机器图片了。

2.数据库
不用说,肯定是sqlite3了。
表格这样设计:
Inbox
id From Address
To Address
Subject Content
邮件序号 来信人 目的地址 标题 正文
Sentbox表格完全一样,就是表格名字不一样.
sqlite3跨平台的特性表现的很淋漓尽致, 连db文件都可以在主机与开发板之间兼容.
美中不足的是linux下面sqlite的图形化管理工具比较弱,只能将就用用了。


3.网络
还是收发邮件那点事情,不过我找到一个非常好的library, 比起python的library功能都要全面
https://curl.haxx.se/libcurl/
我花了很多时间研究它的用法, 对我是一个很好的学习过程。
内容太多没法一一说明,总而言之,smtp, imap这些协议这个library都包括。有一点特别注意就是板子上的认证文件过期, 制作新的认证文件没有成功,直接使用了若认证方式。这是我以后要研究的地方。

这个library虽说包罗网络协议的很多部分,唯独mime解码编码层面不支持,这部分的代码是我另外写的。

最后程序编译好之后,要制作一个.desktop文件,这样这程序就可以显示在桌面上
  1. root@imx6ul7d:~# cat /usr/share/applications/emailtest.desktop
  2. [Desktop Entry]
  3. Name=Email Test Application
  4. Exec=/usr/games/emailtest
  5. Icon=email
  6. Terminal=false
  7. Type=Application
  8. Categories=Network
  9. StartupNotify=true
  10. X-MB-SingleInstance=true
  11. Comment=Email Test Application.
到这里,开发暂告一段落。写的比较简明,因为有些内容太繁琐不想写了。有任何指证请跟帖。
多谢!



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| zhanzr21 发表于 2016-4-27 23:16 | 显示全部楼层

cnb12345 发表于 2016-4-29 11:58 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:每天都進步

91

主题

1017

帖子

34

粉丝
快速回复 在线客服 返回列表 返回顶部