



介绍完了我们的好伙伴——项目管理与代码编辑界面,接下来我们继续完成“Hello Qt on Android”的项目配置。单击图3-55中标号为2的项目标签,会看到图3-56所示的项目选项配置界面。
图3-56 项目选项配置
我们的新建工程,默认选中了“Desktop Qt 5.2.0 MinGW 32bit”这个套件。请注意图3-56左下角倒数第4个按钮(现在显示的是电脑图标配Debug字样),前面提到,它是构建版本选择按钮。
单击图3-56中标号为1的区域中的“构建”按钮,切换到“Android for armeabi”套件,进行构建相关的配置,如图3-57所示。
图3-57 Android套件配置
构建配置选项繁多,对于我们的第一个应用,只要关注图3-57中标识出的1和2两个功能怎么使用即可。
标号为1的按钮,单击可以切换到“运行”选项配置,马上就能看到。
标号为2的组合框,可以选择构建版本(一般是Debug/Release两个)。它完成和左边栏下方圆圈标识的构建版本按钮一样的功能。我们这里选择“Release”构建。
注意图3-57中左下角圆圈标识区域,随着我们选中“Android for armeabi”套件和“Release”构建,它就从电脑图标变成了安卓小机器人配“Release”字样的按钮。
好啦,现在让我们单击标号为1的“运行”按钮,进行运行选项配置,参见图3-58。对目前这个项目来说,运行配置远比构建配置复杂,请擦亮眼睛,用心体会。
切换到运行配置,界面如图3-58所示。先来看部署配置,单击图中标号为1的“详情”按钮,打开部署配置详情界面,如图3-59所示。
图3-58 运行配置
图3-59 部署配置详情
希望你没被吓到,我在图3-59中做了9处标识,比之前的编辑界面(7个标识)还多。让我们化繁为简,一个一个来看。
标号为1的组合框,可以选择应用针对的目标SDK版本,笔者的环境中默认是android-17。我得说(先请大神BogDan Vatra见谅)Qt Creator的这种显示不够完美,如果鼠标悬停在组合框上时悬浮窗提示一下对应的Android系统版本会更好。
我这里简要说明一下Qt Creator中的这个配置选项。实际上它对应Android APK的主配置文件AndroidManifest.xml中的android:targetSdkVersion配置项。这个配置项允许你指定你的应用针对的Android API Level,而怪异的是,它使用sdkVersion来作为标签,容易引起混淆。实际上,现在我们可以简单地把sdkVersion和API Level理解为同一个东西,细微差别以后再说。
为了让大家对Android API Level有个概念,我截取了Google Android在线手册(请访问页面http://developer.android.com/guide/topics/manifest/uses-sdk-element.html)中的表格放在下面,如图3-60所示。
对于图3-59中标号为2的“对包签名”复选框,勾选时Qt Creator会自动对APK进行签名。而一旦你勾选了它,就需要提供一个密钥文件(keystore)供Qt Creator使用。如果没有,则单击标号为3的“Create”按钮,Qt Creator会帮你创建一个;如果有,可以单击“Browse”按钮进行选择。
标号为4的单选按钮,是Qt库布署策略中的一个,即“用Ministro服务安装Qt”。我们推荐使用这个策略,具体原因会在3.3节“Qt库的部署策略”中详细介绍。另外一个可用的策略是把Qt库打包到你的APK中。
标号为5的复选框,勾选时Qt Creator会在打包完成后打开包所在的目录,方便开发者访问生成的APK。
标号为6的复选框,对应日志输出选项。
标号为7的按钮,是“Create AndroidManifest.xml”按钮,如按钮名所示,它帮助你创建并配置APK的主配置文件AndroidManifest.xml。如果你不单击这个按钮,Qt Creator会使用默认的选项帮你创建一个默认的配置文件。建议创建并配置它,否则你的APK包名等都会让你觉得怪怪的,有点儿不舒服。
图3-60 API Level与Platform Version
标号为8的按钮,是“Install Ministro from APK”按钮,它是Qt Creator提供给我们的一个贴心服务,允许我们把下载到本地的Ministro APK安装到Android设备上。顺便说一下,我在完成“Hello Qt on Android”项目时就遇到了无法安装Ministro服务的问题,我的XT882电信定制版手机,根本访问不到Google Play。
标号为9的区域有两个按钮,允许我们添加依赖库。现在的工程用不到,以后再说。
噢,天啊,终于说完了,你睡着了吗,醒醒,我们继续往下看。