android 提高App启动速度

公司的App启动速度太慢了要求提高启动速度,

于是动手研究下

把启动速度从2000ms降低到800ms左右。

先记录下提速的方法

  1. application的Oncreate方法里面的逻辑代码全用

    new Handler().post(new Runnable());包裹

  2. Activity的Oncreate()方法如此;

这种方法会把代码执行的时序全拖到onResumer之后

3,然后在Oncreate onresume 方法 一切你认为会阻碍到启动速度的方法和代码加上log打印信息

看图

看点击的activitymanager 他会打印时间,只要看下打印时间之前的log打印了哪些信息

然后判断这些打印信息的代码是否会阻碍到app的启动速度

如果会的话就把这些代码全部new Handler.post掉,或者new Thread 掉。但是顺序也会有先后,

打印下log慢慢体会。

我的app在启动的时候会扫描数据库,但是newHandler new Thread 后发现还是在 启动时间之前就已经运行了,这证明启动的时候会去扫描数据库,时间慢了100ms。于是用new Handler.postDaley();延长90ms运行,发现可以把这个扫描的模块拖到打印时间之后运行,app启动后视图出来了才开始扫描数据库,速度又提高了100ms

达到了800ms左右。

4. 另外还要注意布局的深度,尽量简化布局。

时间: 2024-10-08 23:21:41

android 提高App启动速度的相关文章

Android优化App启动时间

原文地址:https://developer.android.com/topic/performance/vitals/launch-time 用户希望App能够快速相应和加载,应用启动缓慢会带来糟糕的用户体验,导致用户恶评,甚至会卸载你的应用. 这篇文章提供的信息能够帮助你优化应用的启动时间.首先,我们先来了解应用启动的内部原理,接下来,我们会讨论如何分析启动性能.最后,最后我们会介绍一些影响启动性能的常见问题,并会给出相应的解决办法. 应用启动原理 应用启动可以分为三种类型,冷启动,暖启动,

【转】偷偷告诉你快速提高app下载量和安装量

数据显示,app store在2008年7月上线之初,app数量只有500多个,同年10月谷歌上线android market(现为google play)仅有40多个:截至2015年1月,前者的app数量达到121万,后者则已突破143万.你一定很吃惊这个数字吧,因为我们熟知的app就那么几款,在国内app排行榜上长期占据榜首的多半是那些巨头企业,因为他们有相对较强的经济实力和超前的意识去花精力打造具有企业特色的app,并且能根据移动平台的特点进行合理布局,对app未来的发展形势具备一定的预见

Android提高21篇之一:MediaPlayer

本文介绍MediaPlayer的使用.MediaPlayer可以播放音频和视频,另外也可以通过VideoView来播放视频,虽然VideoView比MediaPlayer简单易用,但定制性不如用MediaPlayer,要视情况选择了.MediaPlayer播放音频比较简单,但是要播放视频就需要SurfaceView.SurfaceView比普通的自定义View更有绘图上的优势,它支持完全的OpenGL ES库. 先贴出本文程序运行结果的截图,上面是播放/停止音频,可用SeekBar来调进度,下面

Android提高之道

提高Android技术能力的问题,而是你想要成为一个怎样的程序员.单纯做一些简单的app维护,界面开发,我想需要的技术不会很多,大半年积累的技巧和知识可能已经够用.如果你仅仅想停留在这一块,那么每天喝着咖啡,写着代码,悠然一天,很Easy的说.但是真正的程序员,我认为都是应该从底层开始学习的,这就像函数式编程和面向对象编程的区别(现在的大学,一上来,面向对象,什么都没学会,你就面向对象了),没有体验编程的本质,而只是照猫画虎,只能成为二流的码农.高级语言带来便利性的同时制造了很多黑箱,一个JVM

Android Tv app 与 mobile app 界面呈现的区别

公司的一个项目是android tv的谢了片日报总结:android tv app呈现ui 与手机app的区别 android tv  app和 mobile app 的主要区别在表现形式上 1.焦点移动的处理 从代码上可以明显看出到处都有对焦点获取的处理,这是mobile app所不需要的. 触摸屏与遥控的不同操作方式决定了:tv遥控操作方式在屏幕上是先获取焦点(遥控决定焦点移动)再获取点击,而mobile触摸方式是直接的点击获取与焦点获取一起通常只需要处理点击获取 2.布局边界处理 遥控操作

Windows8提高了启动速度

Windows7相比Windows8提高了启动速度.Windows8启动是一种全新的快速启动模式,该模式是传统冷启动和休眠恢复的混合体.在传统关机模式中,电脑会关闭所有“用户会话”,并在“内核会话”中关闭服务和设备,以便为彻底关机做准备.与Windows 7中一样,Windows 8会关闭“用户会话”,但不再关闭“内核会话”,而是将其休眠.与执行完整系统初始化相比,恢复休眠的系统会话的工作量将大大减少,这是启动速度加快的原因之一.同时,微软添加的多阶段恢复功能可以并行利用多核系统的所有核心,将读

[Android Memory] App调试内存泄露之Context篇(上)

转载自:http://www.cnblogs.com/qianxudetianxia/p/3645106.html Context作为最基本的上下文,承载着Activity,Service等最基本组件.当有对象引用到Activity,并不能被回收释放,必将造成大范围的对象无法被回收释放,进而造成内存泄漏. 下面针对一些常用场景逐一分析. 1. CallBack对象的引用 先看一段代码: @Override protectedvoid onCreate(Bundle state){ super.o

[Android Memory] App调试内存泄露之Context篇(下)

转载地址:http://www.cnblogs.com/qianxudetianxia/p/3655475.html 5. AsyncTask对象 我N年前去盛大面过一次试,当时面试官极力推荐我使用AsyncTask等系统自带类去做事情,当然无可厚非. 但是AsyncTask确实需要额外注意一下.它的泄露原理和前面Handler,Thread泄露的原理差不多,它的生命周期和Activity不一定一致. 解决方案是:在activity退出的时候,终止AsyncTask中的后台任务. 但是,问题是如

【Android端 APP GPU过度绘制】GPU过度绘制及优化

一.Android端的卡顿 Android端APP在具体使用的过程中容易出现卡顿的情况,比如查看页面时出现一顿一顿的感受,切换tab之后响应很慢,或者具体滑动操作的时候也很慢. 二.卡顿的原因 卡顿的原因可能有很多种,比如: 1.CPU过高 2.内存溢出 3.主线程处理IO操作等 - 其中过度绘制,是一个容易被忽视但也最好修改并且能够看到效果的内容,其中Android官网给出的过度绘制相关内容见:https://developer.android.com/topic/performance/re