Delphi XE5 for Android (八)

delphi xe5 编译的程序在启动时会有短暂的黑屏出现,这个现象产生是因为启动首个activity时会加载一些初始化数据,整个时间大约在2~3秒,如何处理?

网上有些资料,这里主要参考和整理了CSDN论坛上第42#liaobo的回复。

第一步:建立2个文件:loading.png 和 styles.xml,其中loading.png 是启动时替代黑屏的图片,styles.xml是对背景图片的定义,其内容为:

<resources>
<style name="MyTheme.NoTitleBar.CustomBackground" parent="@android:Theme.Black"> 
  <item name="android:windowBackground">@drawable/loading</item> 
  <item name="android:windowNoTitle">true</item> 
  <item name="android:windowFullscreen">true</item> 
  <item name="android:windowContentOverlay">@null</item> 
</style>
</resources>

特别需要注意的是:

(1)Delphi中代码是大小写不敏感的,所以Delphi程序员一般在写程序时不太注意大小写。而在Java下大小写是敏感的,在styles.xml定义中“loading”的这个文件名一定要用小写,否则在部署时会报文件名错误。

(2)这两个文件可以放在任何目录下,我是放在了工程文件所在目录下新建的res目录。如下图:

Delphi XE5 for Android (八)

第二步:将建立好的2个文件加入到工程的部署文件列表中,操作是打开工程的部署菜单,点击增加按钮(Add Files),将建立好的2个文件分别加入到列表中,如下图:

Delphi XE5 for Android (八)Delphi XE5 for Android (八)

对加入的2个文件,修改PlatForm、RemotePath两个属性,其中PlatForm只选择Android,如下图:

Delphi XE5 for Android (八)

按下F2或双击进入,修改RemotePath属性,如下图

Delphi XE5 for Android (八)

其中

styles.xml的RemotePath为 res\values\

loading.png的RemotePath为 res\drawable-port\

如下图:

Delphi XE5 for Android (八)

第三步:Ctrl+F9编译工程文件,并生成相关配置文件,打开工程文件所在目录,找到工程缺省配置文件AndroidManifest.template.xml,如下图:

Delphi XE5 for Android (八)

用Delphi IDE 或记事本打开 AndroidManifest.template.xml 文件,查找以下文字:

android:theme="%theme%"

替换为以下文字,注意是替换,不是新增。

android:theme="@style/MyTheme.NoTitleBar.CustomBackground"

第四步:再次编译,部署到虚拟机,并运行后看到的启动效果如下:

Delphi XE5 for Android (八)

这里需要说明的是:

有人说Delphi xe5 for Android的编译太慢,其实不是这样的。Delphi的编译器在生成.so文件时是非常快的,在我的机器上大约3~5秒就完成。慢是慢在部署和安装到虚拟机的时间。在我机器上生成apk文件大约需要10秒,而将apk文件下载到虚拟机上的时间取决于传输速率,在我的机器上是130k/s~500k/s之间,如下图:

Delphi XE5 for Android (八)

这个缓慢的下载过程超过了一分钟,所以感觉很慢。如果使用真实设备,比如手机或pad,由于USB下载速度很快,反而用起来感觉不错,只是调试速度很慢。

 

上一篇:JS制作DIV悬浮窗与悬浮窗拖拽


下一篇:jQuery Pjax – 页面无刷新加载,优化用户体验