本帖最后由 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.
到这里,开发暂告一段落。写的比较简明,因为有些内容太繁琐不想写了。有任何指证请跟帖。
多谢!
|