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中哪一模块用到的,后面随着逐步分分析应该会找到它的。