1啓動界面的佈局文件爲app_start.xml ,對應的類文件爲net.oschina.app 包下的AppStart.java。java
2對於佈局文件而言,由於只顯示一張主題圖片,所以佈局簡單直接設置背景圖片。由於是啓動界面,啓動時會有短暫的卡頓,對於用戶而言體驗很差,所以在配置文件中自定義了style ,黑色 無標題 全屏(爲何選黑色的呢?是否是由於背景圖圖片是白的,陪襯的更亮白呢?^_^)。設置了背景圖片和無標題android
<style name="Theme.AppStartLoad" parent="android:Theme.Black.NoTitleBar.Fullscreen">git
<item name="android:windowBackground">@drawable/welcome</item>github
<item name="android:windowNoTitle">true</item>緩存
</style>app
疑惑:async
2.1既然已經設置了 parent="android:Theme.Black.NoTitleBar.Fullscreen",爲何還要用<item name="android:windowNoTitle">true</item>,另外在樣式中設置了背景圖片,爲何在佈局文件中還要在設置下背景圖片呢?難道重複的工做確實會有效的下降啓動界面卡頓的問題嗎?函數
2.2佈局文件中爲何要設置android:gravity="bottom"這個屬性呢,讓圖片居於控件底部?這個意圖是什麼???oop
3AppStart.java文件佈局
3.1利用了動畫中的View的漸變更畫效果,從半透明到徹底不透明,動畫持續時間爲800ms,動畫結束後,完成日誌的上傳和界面的跳轉。
3.2日誌上傳利用服務在後臺完成的,不管上傳成功仍是失敗,最後要記得關掉服務。成功後,將舊的日誌文件刪除,由於咱們要進行新的一輪操做,至於在什麼地方會保存日誌,後面隨着逐步分分析應該會找到它的。此處用到了第三方包https://github.com/loopj/android-async-http.
3.3在onResume函數中作了如下處理:主要是考慮APP版本升級後,當前的版本大於以前的版本,那麼就將以前緩存的圖片給清理掉,升級後緩存的圖片頗有可能沒有用處了:此處引用了第三方包 http://kjframe.github.io/ 。此包確實強大,惋惜的是API文檔中沒有對啓動界面引用的preference的API的詳細解釋,所以本條分析徹底是本身揣摩的。至於圖片緩存是App中哪一模塊用到的,後面隨着逐步分分析應該會找到它的。