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目錄。如下圖:
第二步:將建立好的2個文件加入到工程的部署文件列表中,操作是打開工程的部署菜單,點擊增加按鈕(Add Files),將建立好的2個文件分別加入到列表中,如下圖:
對加入的2個文件,修改PlatForm、RemotePath兩個屬性,其中PlatForm只選擇Android,如下圖:
按下F2或雙擊進入,修改RemotePath屬性,如下圖
其中
styles.xml的RemotePath為 res\values\
loading.png的RemotePath為 res\drawable-port\
如下圖:
第三步:Ctrl+F9編譯工程文件,並生成相關配置文件,打開工程文件所在目錄,找到工程缺省配置文件AndroidManifest.template.xml,如下圖:
用Delphi IDE 或記事本打開 AndroidManifest.template.xml 文件,查找以下文字:
android:theme="%theme%"
替換為以下文字,注意是替換,不是新增。
android:theme="@style/MyTheme.NoTitleBar.CustomBackground"
第四步:再次編譯,部署到虛擬機,並運行后看到的啟動效果如下:
這里需要說明的是:
有人說Delphi xe5 for Android的編譯太慢,其實不是這樣的。Delphi的編譯器在生成.so文件時是非常快的,在我的機器上大約3~5秒就完成。慢是慢在部署和安裝到虛擬機的時間。在我機器上生成apk文件大約需要10秒,而將apk文件下載到虛擬機上的時間取決於傳輸速率,在我的機器上是130k/s~500k/s之間,如下圖:
這個緩慢的下載過程超過了一分鍾,所以感覺很慢。如果使用真實設備,比如手機或pad,由於USB下載速度很快,反而用起來感覺不錯,只是調試速度很慢。