打印
[活动]

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

[复制链接]
1212|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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文件,这样这程序就可以显示在桌面上
root@imx6ul7d:~# cat /usr/share/applications/emailtest.desktop 
[Desktop Entry]
Name=Email Test Application
Exec=/usr/games/emailtest
Icon=email
Terminal=false
Type=Application
Categories=Network
StartupNotify=true
X-MB-SingleInstance=true
Comment=Email Test Application.
到这里,开发暂告一段落。写的比较简明,因为有些内容太繁琐不想写了。有任何指证请跟帖。
多谢!



ui_instruction.png (69.3 KB )

GUI

GUI

sqlite_mgr.png (345.54 KB )

sqlite3 mgr

sqlite3 mgr

final_app.png (895.82 KB )

final app

final app

相关帖子

沙发
zhanzr21|  楼主 | 2016-4-27 23:16 | 只看该作者

使用特权

评论回复
板凳
cnb12345| | 2016-4-29 11:58 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:每天都進步

91

主题

1011

帖子

34

粉丝