android app启动速度,Android性能优化(一)APP启动速度优化

引言

通常来讲,咱们都会将本身的产品与同类的产品进行个比对,不可避免的会去作些性能优化,以达到赛过其余产品的优点。因此,今天咱们就来说讲性能优化的方方面面。css

一般咱们所说的性能优化,会从如下几个方面入手:

1. APP启动速度优化

2. APP UI流畅度优化

3. 内存优化

4. APP瘦身

5. 电量优化java

APP启动速度优化

(1)初识启动方式

APP启动的方式分为3种:;冷启动、热启动、温启动。

-冷启动:应用程序从头开始,须要作大量的工做,耗费的时间最多。

-热启动:系统会把你的活动放在前台,活动有驻留在内存中,好比按了home键。相对于冷启动,开销较低。

-温启动:用户退出应用程序,随后又从新启动,可是活动的进程是有驻留在后台的,好比按了back键退出应用。android

(2)为何白屏?启动慢?

一、Application的onCreate流程,通常来讲,在这个方法会进行大量的通用组件的初始化工做;

二、Activity的onCreate流程,布局太过复杂,致使UI布局渲染耗时,影响启动性能。

(3)解决办法

第一种方法:主题切换。这是治标不治本的问题,只是改善了交互的友好性。

主题theme_bg:其中android:opacity=”opaque”参数是为了防止在启动的时候出现背景的闪烁。web

android:opacity="opaque">

android:src="@mipmap/ic_launcher" />

android:src="@drawable/launch_screens" />

android:src="@mipmap/ic_launcher" />

样式style:数据库

在manifest中,将启动页的主题设置为咱们定义的主题AppTheme.Launcher:缓存

android:theme="@style/AppTheme.Launcher">

在MainActivity中,切换回原来的主题:性能优化

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//切换回原来的主题,必须在setContentView前调用

setTheme(R.style.AppTheme);

setContentView(R.layout.activity_main);

}

第二种方法:异步加载、延迟加载、多进程时按照进程区分进行一些初始化工做等。

主要有如下几种状况须要延迟加载:markdown

该段文本转载自:http://www.jianshu.com/p/f5514b1a826c

1.数据库及IO操做都移到工做线程,而且设置线程优先级为THREAD_PRIORITY_BACKGROUND,这样工做线程最多能获取到10%的时间片,优先保证主线程执行。

2.流程梳理,延后执行;

实际上,这一步对项目启动加速最有效果。经过流程梳理发现部分流程调用时机偏早、失误等,例如:

更新等操做无需在首屏还没有展现就调用,形成资源竞争;

调用了IOS为了规避审核而作的开关,形成网络请求密集;

自有统计在Application的调用里建立数量固定为5的线程池,形成资源竞争,在上图traceview功能说明图中最后一行能够看到编号12执行5次,耗时排名前列;此处线程池的建立是必要但能够延后的。

修改广告闪屏逻辑为下次生效。

3.其它优化;

去掉无用但被执行的老代码;

去掉开发阶段使用但线上被执行的代码;

去掉重复逻辑执行代码;

去掉调用三方SDK里或者Demo里的多余代码;

信息缓存,经常使用信息只在第一次获取,以后从缓存中取;

项目是多进程架构,只在主进程执行Application的onCreate();

具体操做:在启动页Activity或ManiActivity的onCreate中进行延迟操做网络

getWindow().getDecorView().post(new Runnable() {

@Override

public void run() {

myHandler.post(mLoadingRunnable);

}

});

相关连接:

架构

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值