门户
书籍
教程
论坛
问答
下载
签到
个人空间
帐号
自动登录
找回密码
密码
登录
立即注册
账号
自动登录
找回密码
密码
登录
立即注册
请绘制轨迹完成人机验证
由vaptcha提供技术支持
登录
注册
搜索
搜索
搜索
热搜
qml
quick
串口
输入中文
数据库
arm
百度地图
qt聊天
QT安装
安装
多窗口
中文乱码
聊天
局域网
鼠标
QT
图片
乱码
rs485通讯
多线程
android
多文档编辑器
本版
用户
本版
用户
【HUX】问题互助平台
博客
动态
好友
帖子
收藏
道具
勋章
任务
淘帖
动态
日志
相册
分享
记录
留言板
群组
门户
导读
排行榜
设置
我的收藏
退出
Qt开源社区
›
精品文章(Qter团队原创教程)
›
基础教程
›
Qt安卓教程(5):部署到安卓
发布主题
返回列表
Qt安卓教程(5):部署到安卓
4
回复
11085
查看
[复制链接]
Joey_Chan
当前离线
积分
1419
Joey_Chan
尚未签到
来源:
2014-4-8 15:45:46
显示全部楼层
|
阅读模式
该文章原创于Qter开源社区(
www.qter.org
),作者Joey_Chan,转载请注明出处!
本系列教程主要讲述与安卓移植版Qt的相关内容,如平台特性、功能限制、特定用户体验和内容发布等,其余与Qt自身非平台相关的内容不会作详细讲述,笔者默认童鞋们已经有一定的Qt功底。
另:请自备安卓机子一台,不推荐用模拟器。此篇教程使用Qt5.2,童鞋们请使用大于等于此版本的Qt。
前几篇教程可以在这里找到:
http://www.qter.org/forum.php?mod=viewthread&tid=483
本篇教程翻译自Qt Android作者BogDan Vatra的文章 Qt on Android Episode 4 传送门:
http://www.kdab.com/qt-android-episode-4/
第五篇:部署到安卓
本篇文章讲述如何使用IDE自带的几种部署方式和其中的一些原理,以及如何正确的签名发布开发者自己的程序
1. 选择最合适的部署方式
Qt Creator当前支持三种部署方式:
Use Ministro service to install Qt (使用Ministro服务来安装Qt)
Bundle Qt libs in APK (连同Qt库一起打包)
Deploy local Qt libs to temporary directory (部署到系统缓存目录)
1.1 Use Ministro service to install Qt (使用Ministro服务来安装Qt)
回到2009年(译者注:以下基本是作者原话,译者自己的意见感想会专门标出),当我开始这个项目的时候,那时只有几款安卓设备,它们都只有少的可怜的存储空间(少于100MB)。所以Qt一开始就没有考虑将库文件一起打包进apk,而且那时的Google Play有apk大小的限制。这时Ministro应运而生。
Ministro工作原理?
开发者的apk将只有少数几个.so文件和一些资源文件,并不包括Qt库和其它额外需要的库文件;
当程序启动,程序会尝试连接Ministro服务,如果连接失败则说明Ministro尚未安装,然后自动打开Google Play来让用户下载Ministro。当Ministro连接成功,程序将发送一个依赖库的列表给Ministro;
Ministro会检查这个依赖列表里面是不是都已经本地存在,如没有,则会下载所需的库文件。下载完毕后会回传一个信息给Qt程序以保证Qt程序在启动前能加载所需的库文件;
程序会从Ministro提供的路径中加载所需的库文件,然后继续自己的启动过程;
好处?
* 使用Ministro,用户只需下载一次Qt库文件,所有的Qt程序将共享使用这一套库文件
* Ministro会自动检测当前cpu类型,并自动下载匹配的Qt库,如armv5,armv7,x86
* Ministro会自动升级Qt库,无需用户干预;
* Ministro还支持自定义库服务器,如开发者自己的第三方库,Ministro会将这个第三方库与Qt库同等对待;
坏处?
* 有些人不喜欢Ministro因为需要另外安装这个服务;
* 太多的Qt库升级可能会导致混乱。Qt本身每个大版本之间的库并不能通用,如5.1 5.2 5.3 ,因此Ministro可能会下载许多不同版本的库文件;
总的来说Ministro是值得一用的
1.2 Bundle Qt libs in APK (连同Qt库一起打包)
这个功能最近才加入到Qt Creator,它会把所需的一切都打包装进apk里面。
好处?
apk文件里面已经包含了所有运行需要的东西
坏处?
* apk文件会很大,因为包含了Qt库文件,大部分情况会超过40MB;
* Qt库文件会解压到程序自己的目录,这里会占用超过50MB的空间;
* 现在还有一部分低端机负担不起这些空间消耗;
* 因为庞大的库文件,apk将无法同时支持多种不同的硬件平台,如armv5和armv7需要分别打包发布
* 不能使用armv5的VFP和armv7的NEON
* Qt库不能在程序之间分享
* Qt库将无法自己升级(译者注,只能自己随apk包升级)
(译者注:开发者可以同时发布带库和不带库的apk供用户选择,这样可以避免掉一些各自固有的问题)
1.3 Deploy local Qt libs to temporary directory (部署到系统缓存目录)
仅供测试用,强烈不推荐用来发布程序
2. apk签名
这个是程序发布前的一个重要步骤。在签名前请开发者准备一个 keystore 和自签名**。
如果开发者不清楚以上两者是什么,Qt Creator能帮助开发者生成自己的签名**,详情请参考下图:
这个签名将能保证apk能通过应用商店来升级,也请备份好 keystore 文件
下一步将说明如何设置打包步骤
3. apk打包
接下来请将项目切换到release模式并选中“Sign Package”,详情可参考下图:
点击“运行”按钮后,Qt Creator会自动打开apk所在目录,请注意正确的apk文件是“(QtApp-release.apk)”,如下图
下一篇文章将讲述如何使用JNI来扩展Qt程序的功能(译者注:我本来想写的,现在看来还是等作者写,绝对权威,然后我翻译好了)
译者对本篇文章的观后感:
虽然原作者说的内容很少,但是细节方面是做的相当好,而且有足够的深度,推荐英文好的童鞋去看原文。
对于此次的内容,可能对Ministro会有一些争议,有些人说它好,有些人说多安装一个东西会有点烦。这里我建议开发者同时发布带Ministro版和带库版,只需要在下载页面说清楚就好了,同时照顾小白和玩机达人。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有帐号?
立即注册
x
点评
yafeilinux
终于更新了,呵呵,期待下一篇,这样大家就可以系统学习了。
发表于 2014-4-8 19:01
回复
使用道具
举报
Karla
当前离线
积分
33
Karla
累计签到:6 天
连续签到:1 天
2014-4-10 22:51:19
显示全部楼层
等到新的教程了,又学到东西了
回复
支持
反对
使用道具
举报
任意贴
当前离线
积分
12
任意贴
尚未签到
2014-6-23 11:43:24
显示全部楼层
很期待怎么用手机上的那个mini USB和其他设备通信,楼主有这样的教程么
回复
支持
反对
使用道具
举报
Joey_Chan
当前离线
积分
1419
Joey_Chan
尚未签到
2014-6-23 21:35:40
显示全部楼层
任意贴 发表于 2014-6-23 11:43
很期待怎么用手机上的那个mini USB和其他设备通信,楼主有这样的教程么
真没试过哦
回复
支持
反对
使用道具
举报
chengtao
当前离线
积分
20
chengtao
累计签到:4 天
连续签到:1 天
2016-7-22 11:38:49
显示全部楼层
看了这个真长见识了。
回复
支持
反对
使用道具
举报
返回列表
发表新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满)
我知道了