学习
实践
活动
工具
TVP
写文章

App 启动优化

(Cold start) 冷启动是指APP在手机启动后第一次运行,或者APP进程被kill掉后在再次启动。 可见冷启动的必要条件是该APP进程不存在,这就意味着系统需要创建进程,APP需要初始化。在这三种启动方式中,冷启动耗时最长,对于冷启动优化也是最具挑战的。因此本文重点谈论的是对冷启动相关的优化。 在最近任务给App加锁和启动方式有什么关系 某些厂商为了用户体验提供了给APP上锁的功能,目的就是让用户自己做主是上锁的APP不被杀,启动的时候不会处于冷启动方式,但是加锁也不是万能的,Low memory 这其中的道理简单说就是学习用户的使用习惯,提前将App进程创建好,当用户打开APP时不会出去冷启动启动优化 透明主题优化 为了解决启动窗口白屏问题,许多开发者使用透明主题来解决这个问题,但是治标不治本。 虽然解决了上面这个问题,但是仍然有些不足。     <!

28010

APP启动速度优化

APP启动速度非常重要,APP启动速度慢,可能会造成用户体验不良好,尤其是在最近用Android studio之后,如果长时间不打开app启动速度就会特别的慢,下面我们一起探讨一下影响app启动速度的原因 检测启动时间 首先我们要知道app启动时间,然后你也可以凭着感觉来,这里我教大家一个装逼的方法: adb shell am start -W [packageName]/[.MainActivity 这是一个很长时间没有启动app,当它第一次启动的时候就有很长的启动时间,下面来说怎么来减少吧。 减少应用启动耗时 app启动流程,简单的说,主要包括两部分: Application 启动界面的onCreate方法 因此最简单的方法就是尽量减少这两个方法中的耗时操作。 ,给你的app首页主题样式加上android:windowBackground,放一下app的背景图片,这样即使app启动慢,也会首先加载背景,这样就会给用户造成一种假象,认为是app已经启动

29510
  • 广告
    关闭

    【11.11特惠】腾讯云移动推送,新购2.5折起,首月19.9元秒杀!

    安全/快速/稳定的APP消息推送服务,用户促活/留存利器,稳定服务于腾讯游戏、腾讯视频等高日活应,欲购从速!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android App 启动优化

    当前用户越来越关心APP启动速度.而APP启动和很多因素相关. eMMC的读写速度. CPU 的频率. App framework 的优化. App 代码的优化. 其中eMMC的读写性能一般和HW有关,可做的工作不多.对于CPU的频率,大多数的芯片vendor 也在App启动是采用了boost,也就是需要把CPU 运行在maxfreq.而App framework 的优化是andorid的code,这当中有很多工作可做.App 代码的优化,需要APP 开发者进行相关代码的优化. 本文将提供碰到的需要在App framework中的代码优化patch. ,频繁出现killempy process 势必影响app启动时间.

    12520

    iOS App 启动性能优化

    导语 本文介绍了如何优化 iOS App启动性能,分为四个部分: 第一部分科普了一些和App启动性能相关的前置知识 第二部分主要讲如何定制启动性能的优化目标 第三部分通过在WiFi管家这个具体项目的优化过程 这种持续存活的情况下启动App,我们称为热启动,相对而言冷启动就是App被kill掉以后一切从头开始启动的过程。我们这里只讨论App启动的情况。 影响启动性能的因素 App启动过程中每一个步骤都会影响启动性能,但是有些部分所消耗的时间少之又少,另外有些部分根本无法避免,考虑到投入产出比,我们只列出我们可以优化的部分: main()函数之前耗时的影响因素 那么,如何定制优化的目标呢?首先,要确定启动性能的界限,例如,在各种App性能的指标中,哪一此属于启动性能的范畴,哪一些则于App的流畅度性能? 挖掘最后一点性能优化 由于WiFi管家是一个具有WiFi连接能力的App,因此有可能在后台过程中完成冷启动过程(实际上是在用户进入系统的WiFi设置时,iOS会启动WiFi管家,以便请求WiFi密码)。

    1.2K91

    Android性能优化系列之App启动优化

    Android性能优化系列之布局优化 Android性能优化系列之内存优化 Android性能优化系列之apk瘦身 应用的启动速度缓慢是我们在开发过程中经常会遇到的问题,比如启动缓慢导致的黑屏,白屏问题 ,本篇博客就将介绍App启动优化的相关知识。 App启动过程 本文所指的优化针对冷启动。 简单解释一下App启动过程: 1.点击Launcher,启动程序,通知ActivityManagerService 2.ActivityManagerService通知zygote进程孵化出应用进程, 遵循上面三种策略可明显提高app启动速度。

    16950

    如何优化Androd App启动速度

    启动时间,以及简要分析了App启动流程。 这一篇文章主要讲如何在实战中提升Android App启动速度。下面我们先回顾一下App启动流程。 1.App 启动流程分析 上一篇文章如何统计Android App启动时间我们定义了从用户角度上观察的启动时间。 经过对我们App的详细分析以及对业务的了解,可以通过以下一些方法来解决应用启动慢的问题。 当然目前的词典启动速度还可以进一步优化,可以思考的方向一下几点:1. 进一步优化信息流布局,减少不必要的绘制;2. 深入探索第三方SDK带来的启动速度延迟并尝试优化;3.

    69940

    APP,Activity的启动速度优化

    Activity的启动时间,而totalTime还包括而totalTime是指APP进程启动时长,闪屏页面的启动时长以及闪屏页面的消失,新Activity的启动时长之和,所以关注APP启动时间,我们通常关注的是 TraceView识别耗时方法 对于APP启动来说,启动耗时包括Android系统启动APP进程加上APP启动界面的耗时时长,我们可做的优化APP启动界面的耗时,也就是说从Application的 Activity的启动,事实上Activity在执行到onResume的时候它的初始化操作还没有执行完成呢,如果在这里面执行耗时操作,不会有任何优化效果,应该在Activity第一次被focus的时候( 然后通过反射的方式创建Activity对象,再调用Activity的各个生命周期;所以APP启动时间是包括APP进程启动时长(无法优化),Application的执行时间和Activity的执行时间( 这两部分是可以优化的),另外在启动Activity之前会设置Theme,这里可能也会造成耗时,例如theme里面设置了一张分辨率较高的background会导致decode这张图片的时间变长

    83130

    Android实战APP启动速度优化

    APP启动速度非常重要,APP启动速度慢,可能会造成用户体验不良好,尤其是在最近用Android studio之后,如果长时间不打开app启动速度就会特别的慢,下面我们一起探讨一下影响app启动速度的原因 检测启动时间 首先我们要知道app启动时间,然后你也可以凭着感觉来,这里我教大家一个装逼的方法: adb shell am start -W [packageName]/[.MainActivity] 这是一个很长时间没有启动app,当它第一次启动的时候就有很长的启动时间,下面来说怎么来减少吧。 减少应用启动耗时 app启动流程,简单的说,主要包括两部分: Application 启动界面的onCreate方法 因此最简单的方法就是尽量减少这两个方法中的耗时操作。 ,给你的app首页主题样式加上android:windowBackground,放一下app的背景图片,这样即使app启动慢,也会首先加载背景,这样就会给用户造成一种假象,认为是app已经启动

    49420

    iOS 优化App启动时间-启动详解(上篇)

    看了一下2016年的WWDC关于优化启动时间的PPT,有些感悟和总结,记录一下。 这篇文章你能学到什么 ---- 理论: 我们在进入mian()函数之前发生了什么事情 Mach -O的格式 虚拟内存基础知识 二进制Mach -O怎么被加载和准备 实用部分: 怎么去计算启动时间 优化启动时间 Mach -O、虚拟内存速成课 ---- 主要简单的介绍了Mach -O和虚拟内存的知识,下文在app启动的时会有很多相关的术语,不知道会懵逼。 APP启动 ---- app启动的时候,内核会把app映射到一个新的内存空间,开始地址是随机的。 ? 然后内核通过Dyld来加载动态库。 一个app通常会加载400多个动态库,大多数是系统库,系统库大多数都被优化加载过程 ,所以优化的关注点在于内嵌动态库。

    1.7K30

    这回性能优化,从App启动优化说起!

    前言 本篇文章主要针对 Android性能优化App启动优化App启动,相信大家都是非常熟悉了,那为何我们需要对App启动优化呢,这里就要先对我们Android 从开机到启动我们的App进入主页面这一流程做一个简单的阐述了 ,只需要大概知道是这么个流程就行了.所以说,其实我们手机的操作系统就是一个App,开机启动时先加载各种驱动程序(类似App初始化各种第三方SDK),然后加载系统标识(黑白屏问题),然后启动开机欢迎动画( 二、App启动时黑白屏问题 基于以上的启动流程 ,那么App启动优化的第一步就是从系统标识入手,我们手机开机时一般最先出现的是手机厂商的logo标识,而App启动时会先调用一个预显示窗口,这个窗口的样式一般是黑色或者白色 对的,被你发现了,虽然黑白屏没了,但是我们的App似乎是变迟钝了你在仔细观察一下,点击App启动图标后,App似乎是顿了一下,然后加载了我们的欢迎页面,有点像ANR,只不过很短暂 ,但是用户还是能够发现的 这时就可以进去一定的伪优化了.例如和产品协商在进入页面时加载一个dialog进行缓冲一下,很多App也是进去这样的优化,看看我们的简书App就是这样,我基本每次进去都会弹一个dialog[1240]

    41130

    优化App启动,实现启动页错觉秒开

    APP启动时,界面会首先展示一个白屏或者黑屏,然后再进入欢迎页,稍作停留最后进入APP主页。 安卓启动方式一般有3种: >Coldstart——冷启动: 此种方式最为耗时,一般是因为进程被干掉或者是第一次启动app,系统需要重新fork进程进行一系列初始化,后台没有该应用的进程。 >WarmStart ——暖启动 比ColdStart稍快,当app的Activities被销毁,但还在内存中常驻时启动方式会变为暖启动app并没有被杀掉,所做的只是把app从后台提到前台来展示,并不需要重走初始化一系列行为 接下来看看如何优化启动: 既然我们已经找到这个黑白屏是出自系统的预览窗口,我们就可以通过操控这个窗口来实现。 这个预览窗口是在activity启动页前显示的一个安卓优化措施,我们可以从主题中可以找到,是可以设置这个窗口配置的。

    89130

    干货 | Trip.com APP 启动优化实践

    引言 启动是用户对App的第一印象,对于用户体验尤为重要,所以我们花了很多时间在启动时间的优化上。 本文将分享Trip.com App启动优化实践,从分析App启动的过程开始,在了解启动流程的基础上制定大的优化原则和小的具体方案,希望能对大家有所帮助。 一、App启动的流程分析 想做启动优化,首先要了解清楚启动的各个流程,然后才能对各个环节去做针对性措施。 借用WWDC对启动阶段的定义图: ? 三、成果如何 通过长期的优化,以上手段全部用完之后,我们的启动时间从原来的2秒,优化到1秒以内。 总结 在优化启动时间的过程中,我们的收获不仅是对启动时间的优化,也对系统的启动机制有了更深的了解,同时优化了我们自己的代码,使其变得更加更加健壮和高性能。

    25320

    OC底层探索26-App启动时间优化OC底层探索26-App启动时间优化

    本文中所说的启动都指:冷启动。 冷启动:内存中不包含APP的数据,所有数据都需要从Mach-o载入到内存中,提供给应用使用。 热启动:内存中仍然存在APP的数据,数据不需要重新载入内存。 1.2 启动耗时查看 想要优化启动时间,就需要要知道启动app都做了什么?通过添加环境变量可以打印出APP启动时间分析(Edit Scheme -> Run -> Arguments) ? 1.3 提高main()函数之前的加载时间 1.动态库加载越多,启动越慢。 2.ObjC类,方法越多,启动越慢。 3.ObjC的+load越多,启动越慢。 2、耗时优化策略 2.1 删除无用代码,合并一些同样功能的类 OC类的注册耗时 (OC类越多,越耗时),swift的类不会存在这个问题。 其实还是不错~ 参考链接: AppOrderFiles iOS优化篇之App启动时间优化

    22830

    Android App优化之提升你的App启动速度之实例挑战

    可以看到启动时白屏了很长时间. Traceview上场 接下来我们结合我们上文的理论知识, 和介绍的Traceview工具, 来分析下Application的onCreate耗时. 那么还有没有什么办法优化呢? 给我们的应用窗口弄一个PlaceHolder Android最新的Material Design有这么个建议的. 给Window加上背景 如第3节所言, 当App没有完全起来时, 屏幕会一直显示一块空白的窗口(一般来说是黑屏或者白屏, 根据App主题). 这种优化, 对于有些Application内的初始化工作不能移到子线程做的情况, 是非常友好的. 可以避免我们的App长时间的呈现给用户一个空白的窗口. 结语 照例, 总结下. 这次关于App启动时间的优化, 写了两篇. 写这么多, 还是想传达下个人做技术的思想, 也算是个人的经验回顾, 抛砖引玉.

    21530

    app启动其他app

    image.png 核心部分 启动一个app,主要是通过startActivity打开对应的包: PackageManager packageManager = getPackageManager 实战代码 MainActivity.java: package com.exmple.startapp; import androidx.appcompat.app.AppCompatActivity

    23420

    Android 优化——启动优化

    Android 优化目录 ---- App 启动方式 冷启动 App 没有启动过或 App 进程被杀,系统中不存在该 App 进程,此时启动即为冷启动。 需要创建 App 进程,加载相关资源,启动 Main Thread,初始化首屏 Activity 等。 在这个过程中,屏幕会显示一个空白的窗口(颜色基于主题),直至首屏 Activity 完全启动。 热启动启动意味着 App 进程只是处于后台,系统只是将其从后台带到前台展示给用户。 温启动 介于冷启动和热启动之间,一般来说在以下两种情况下发生: 用户返回退出了 App,然后又启动。进程可能还在运行,但是 activity 需要重建。 优化 布局优化 逻辑优化 必要且耗时的逻辑,考虑单独开线程执行 必要不耗时,按优先级高低依次执行 非必要的延迟初始化,等用到再初始化 针对冷启动的欺骗效果 使用 placeholder UI

    46730

    启动优化

    启动优化 启动时间:从用户点击app图标开始到 AppDelegate 的didFinishLaunching 冷启动: 内存中不包含app相关数据的启动,一般我们可以通过重启手机来实现冷启动启动 : 是指杀掉app进程后,数据仍然存在时的启动 启动优化 -> T1 + T2 需要启动优化的部分 T1: pre-main阶段, 即main函数之前, 操作系统加载APP可执行文件到内存,执行一系列加载 didFinishLaunching中业务主要类型 【第一类】初始化第三方sdk 【第二类】app运行环境配置 【第三类】自己工具类的初始化等 main函数阶段的优化建议: 减少启动初始化的流程,能懒加载的懒加载 ,能延迟的延迟,能放后台初始化的放后台,尽量不要占用主线程的启动时间 优化代码逻辑,去除非必须的代码逻辑,减少每个流程的消耗时间 启动阶段能使用多线程来初始化的,就使用多线程 尽量使用纯代码来进行UI框架的搭建 基于Page Fault,我们思考,App在冷启动过程中,会有大量的类、分类、三方等需要加载和执行,此时的产生的Page Fault所带来的的耗时是很大的。

    13974

    iOS 优化 - 启动优化

    之前曾在iOS 优化-瘦身文章中提到过 iOS 优化将会是一个专题,今天就带来 iOS 优化系列的第二篇,主要介绍一下启动优化,即如何减少应用的启动时间。 App 启动过程 在优化之前,我们需要对 App 的完整启动过程有个了解,这样我们才能知道启动耗时分布的阶段、哪一个阶段可以被优化以及优化哪一个阶段 ROI 最高。 参考资料 reducing-your-app-s-launch-time[6] 58 同城 App 性能治理实践-iOS 启动时间优化 iOS 优化篇 - 启动优化之 Clang 插桩实现二进制重排[7 ] 脉脉 iOS 如何启动秒开[8] iOS 应用的启动流程和优化详解[9] 抖音品质建设 - iOS 启动优化《原理篇》 Optimizing App Launch[10] 美团外卖 iOS App : https://developer.apple.com/documentation/xcode/reducing-your-app-s-launch-time [7]iOS 优化篇 - 启动优化

    14720

    启动优化

    点击桌面图标无响应: 原因:theme中禁用预览窗口或指定了透明背景 //优点:避免启动app时白屏黑屏等现象 //缺点:容易造成点击桌面图标无响应 //(可以配合三方库懒加载,异步初始化等方案使用,减少初始化时长 首页显示后无法操作 原因:同上 启动优化 方法和卡顿优化基本相同,只是启动太过重要,需要更加精打细算; 优化工具 Traceview 性能损耗太大,得出的结果并不真实; Nanoscope 非常真实,不过暂时只支持 GC优化 启动过程,要尽量减少GC次数,避免造成主线程长时间的卡顿 //1. IO优化 负载过高时,IO性能下降的会比较快,特别是对低端机; 启动过程不建议出现网络IO 磁盘IO要清楚启动过程读取了什么文件,多少字节,buffer大小,耗时多少,在什么线程等 重度用户是启动优化一定要覆盖的群体 对于启动优化要警惕 KPI 化,要解决的不是一个数字,而是用户真正的体验问题。

    7454

    扫码关注腾讯云开发者

    领取腾讯云代金券