App启动速度优化
1.需要尽可能减少Application的onCreate中所要做的事情,比如一些不重要的SDK延迟或者异步加载;
2.多进程情况下一定要可以在onCreate中去区分进程做一些初始化工作(如果项目有多个进程的情况;大多数第三方都是主进程使用的所以 对于其他进程 多数情况下 不需要初始化这些);
获取进程名称的方法
String getCurProcessName(Context context) {
int pid = android.os.Process.myPid();
ActivityManager mActivityManager = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningAppProcessInfo appProcess : mActivityManager
.getRunningAppProcesses()) {
if (appProcess.pid == pid) {
return appProcess.processName;
}
}
return null;
}
3.部分将要使用到的类(数据库及IO操作)异步加载(如果需要开启工作线程,需要给工作线程设置优先级,THREAD_PRIORITY_BACKGROUND,这样工作线程最多能获取到10%的时间片,优先保证主线程执行)
4.利用提前展示出来的Window,快速展示出来一个界面,给用户快速反馈的体验(在主题中设置默认的windowbackground)
5.定位问题:避免I/O操作、反序列化、网络操作、布局嵌套等
相关文章
Android性能优化(一)之启动加速35%
http://www.jianshu.com/p/f5514b1a826c
Android冷启动白屏解析,带你一步步分析和解决问题
http://blog.csdn.net/guolin_blog/article/details/51019856
Android APP启动优化
http://wuxiaolong.me/2017/03/13/appStart/
App启动速度优化之耗时检测处理
http://www.jianshu.com/p/a0e242d57360
2.UI流畅度优化
减少层级、延迟加载、减少过度绘制
3.内存优化
图片缓存、内存泄漏问题、减少枚举类
4.apk瘦身
利用ProGuard压缩代码去除无用资源
andresguard进一步压缩与混淆资源
第三方开源库的瘦身,仅保留自己需要的部分
极致的图片压缩与webp的使用
合理配置去除不必要的配置,仅保留中文配置等...
so的优化与配置,只保留一类so
动态下发一些资源:字库、so、换肤包等;
5.电量优化
合理的使用一些传感器、谨慎的使用Wake Lock、减少后台的不要的操作等、无网络情况下减少请求重试、gps不使用的情况下即时关闭
网友评论