Android 启动优化
来源:互联网 发布:mysql 表空间大小限制 编辑:程序博客网 时间:2024/05/21 15:42
第一种状态:APP启动前有白屏或者黑屏
这种情况可能比较常见,有效的方法就是在启动页的Activity上透明的window属性。大多数的APP都会这么做,每次重新打开的时候都会等个几秒,一直展示是某个画面。
假设这个Activity叫AcBoot,给其Activity设置theme
<activity android:name=".AcBoot" android:windowSoftInputMode="adjustPan|stateVisible|stateAlwaysHidden|adjustResize" android:screenOrientation="portrait" android:theme="@style/Translucent" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter></activity>style 为
<style name="Translucent"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:colorBackgroundCacheHint">@null</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowNoTitle">true</item></style>在这AcBoot中onCreate中的操作也就是做个延迟处理,比如2秒后跳转到目标页面。
因为等待的时间有两秒,这个时间也算是比较长,也不能白白浪费了。在开发的过程,有很多需要初始化的工作都放在Application中,找出其中比较耗时的操作,放在AcBoot的2秒等待里进行初始化。这样会进一步的提高启动的速度。
第二种状态:在第一种状态实现的情况下,可能不会有白屏。但是会出现,点击APP的图标后并不会立刻出现启动页的画面,会出现短暂的没有任何响应的情况。有的APP处理的就很好,比如百度贴吧,无论什么时候只要点击就会有反应。这样需要怎么做呢?
之前的操作是给启动页的Activity加上透明的window背景。这个时候可以换个思路,既然可以填充透明的颜色,就可以填充图片试试。把原本放在启动页加载的图片设置为window的背景,在Activity中的onCreate不进行setContentView()这个操作。这时候style修改为
<style name="Translucent"> <item name="android:windowBackground">XXXX图片资源</item> <item name="android:colorBackgroundCacheHint">@null</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowNoTitle">true</item></style>
总结一下,APP启动的过程是Application初始化->第一个Activity启动。android 的显示都是基于窗口,是先有窗口,再有具体的View视图。进行进一步的细分就变成了:
Application初始化->第一个Activity窗口开始加载->第一个Activity的视图内容开始加载(对应setContentView)->有画面显示出。
这样优化点就出来了:
1.application不能做耗时操作,至少不是串行的耗时操作。
2.窗口是优先展示的,很快就有响应,根据需要设置为透明颜色或者图片
3.activity等待2s,这两秒可以利用做一些初始化工作。
- android启动优化
- android启动速度优化
- android启动速度优化
- Android 优化开机启动
- android启动速度优化
- Android 启动优化
- Android app 启动优化
- Android 启动优化
- Android 启动速度优化
- Android:应用启动优化
- Android启动速度优化
- Android O 启动优化
- Android启动优化bootchat
- android的启动优化
- Android 启动优化记录
- Android性能优化(二):APP启动优化
- Android性能优化--优化启动速度
- Android 应用启动速度优化
- Android图片加载框架Picasso使用教程 (四)
- 跨日的换算
- 安卓入门---UI基础控件
- Java设计模式—状态模式
- Rest-Assured完整的测试例子
- Android 启动优化
- Spring AOP - 注解实现统计service中方法的执行时间
- javascript内置对象------event对象
- 营销短信API专用通道
- pros & cons of Meson,CMake, Autotools and Tup
- Android图片加载框架Picasso使用教程 (五)
- 贪心算法入门
- iOS中深复制和浅复制问题
- Javascript Math ceil()、floor()、round()三个函数的区别