编写qt到安卓手机的一些小心得
扫描二维码
随时随地手机看文章
时隔一段时间,自己负责的APP已经有了落幕,从开始的不懂到现在的约略感悟,也算是积累了一些小经验,
刚开始写了一些很浅显的心得体会,现在回头来看还是有点小价值的,在当时因为这些问题也是费了不少时间,
好了。废话不多说!
qt使用jni与安卓手机系统的交互,对于很多不会java的人来说,很多人可能会写jni交互,而不是直接用java来与手机交互吗,所以使用jni交互的最大坑是容易导致程序崩溃,在我这边的实例是,请求查看并选择系统相册和照相结合后,反复3次左右,程序就会莫名死掉,后来改用原生java代码写,不仅流畅很多,一点问题都没有,所以与手机交互能写java就直接用原生java。
返回按键的退出程序问题,很多人都是监控qt的back返回按键,然后调用Qml的Qt.quit退出程序,根据我之前的测试,
Qt的back按键我没监控成功,而是改写的java返回按键的监控,当调用qml的Qt.quit退出程序的时候明显出现闪退和程序内存
释放不彻底的打印,给用户一种退出很奇怪的感觉,至于是为什么,我也没去深究,而是改用了java的退出程序方式System.exit(0);
也就没出现闪退的感觉。
至于上面说的基本都是跟手机交互的问题,所以也充分说明了,java能解决的,qt还不一定能完美解决,这里要说一下,我之前出现问题的开发版本是Qt5.6,后面改成了5.9,不清楚高版本有没有优化我现在记录的问题,因为我一直使用java原生交互,所以更好的体验出原生交互在哪个版本都不受影响。
除了手机交互,还有一点比较重要的就是手机权限,在开发相机功能时,需要打开添加android.permission.CAMERA,添加权限的地方再 AndroidManifest.xml ,这个文件生成在开发qt中是很重要的,默认是没有的,需要自己手动创建,创建的方式等下再说,先说权限的添加地方就是在这这个xml文件中的General中的Permission一栏中,当然也可以在XML Source中手动添加代码,添加方式如下: 。根据网上的传言说安卓6.0后面要使用动态权限,当然动态权限我没有去做,至于做的方法还是一样,不过是用java代码来写,根据上面方法添加权限目前为止我是没有遇见什么问题。下面开始说下如何创建 AndroidManifest.xml 文件,创建的方式很简单只要点击下图的按钮,一直默认下一步操作即可,
如图所示:
好了,基本上只要掌握这些东西,并结合我之前的文章的要点,使用Qt开发安卓基本没有问题,至于实现途中遇见的难点,可以查看我其他的详细博客记录。这里只记录如何去做,避免哪些方式走弯路。