首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

App 启动优化

这其中的道理简单说就是学习用户的使用习惯,提前将App进程创建好,当用户打开APP时不会出去冷启动。...这些任务是: - 加载并启动应用程序。 - 启动后立即显示应用程序空白的启动窗口。 - 创建应用程序进程。 一旦系统创建应用程序进程,应用程序进程就会负责下一阶段。...;/item>     </style>   设置闪屏图片主题 为了更顺滑无缝衔接我们的闪屏页,可以在启动 Activity 的 Theme中设置闪屏页图片,这样启动窗口的图片就会是闪屏页图片...应用App通常会设置一个固定的闪屏页展示时间,例如2000ms,所以我们可以根据用户手机的运行速度,对展示时间做出调整,但是总时间仍然为 2000ms。...           //所以闪屏页展示的时间为 2000ms - diffTime.     }   所以我们就可以动态的设置应用闪屏的显示时间,尽量让每一部手机展示的时间一致,这样就不会让手机配置较低的用户感觉漫长难熬的闪屏页时间

1.4K10

Android 性能优化—— 启动优化提升60%

此时,用户可以开始使用该应用程序 因为App应用进程的创建过程是由手机的软硬件决定的,所以我们只能在这个创建过程中视觉优化 启动主题优化 所谓的主题优化,就是应用程序在冷启动的时候(1~2阶段),设置启动窗口的主题...因为现在 App 应用启动都会先进入一个闪屏页(LaunchActivity) 来展示应用信息 默认情况下会出现白屏现象,系统默认会在启动应用程序的时候 启动空白窗口 ,直到 App 应用程序的入口...,直到 App 应用程序的入口 Activity 创建成功,视图绘制完毕 解决方法可查看Android启动界面SplashActivit的实现方法 代码优化 Android中如何计算 App 的启动时间...,对展示时间做出调整,但是总时间仍然为 2000ms 闪屏页展示总时间 = 组件初始化时间 + 剩余展示时间 也就是2000ms的总时间,组件初始化了800ms,那么就再展示1200ms即可 Application...//所以闪屏页展示的时间为 2000ms - diffTime. } 所以我们就可以动态的设置应用闪屏的显示时间,尽量让每一部手机展示的时间一致,这样就不会让手机配置较低的用户感觉漫长难熬的闪屏页时间

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

    面试官:今日头条启动很快,你觉得可能是做了哪些优化?

    二、启动优化 直奔主题,常见的启动优化方式大概有这些: 闪屏页优化 MultipDex优化(本文重点) 第三方库懒加载 WebView优化 线程优化 系统调用优化 2.1 闪屏页优化 消除启动时的白屏/...需要注意的是闪屏页的Activity,包括闪屏页中引用到的其它类必须在主dex中,不然在MultiDex.install之前加载这些不在主dex中的类会报错Class Not Found。...所以这种方案的缺点很明显: MultiDex加载逻辑放在闪屏页的话,闪屏页中引用到的类都要配置在主dex。...其实应该还有方案3,因为我发现头条并没有直接使用Google的MultiDex,而是参考谷歌的MultiDex,自己写了一套,耗时应该会少一些,大家有兴趣可以去研究一下。...WebView第一次创建比较耗时,可以预先创建WebView,提前将其内核初始化。 使用WebView缓存池,用到WebView的地方都从缓存池取,缓存池中没有缓存再创建,注意内存泄漏问题。

    1.1K30

    Android App性能优化全方面解析

    用张简洁的图来介绍把。看起来方便~~ ? 线程优化 上面说的三种导致ANR的情况,绝大多数就是因为线程阻塞导致的。那么我们应该如何处理呢?Android系统为我们提供了若干组工具类来解决此问题。...第二、流量的使用!!我又要拿我们公司项目搞事情了。一个闪屏的缓存60+M。。。没错,就是60+M。简直可怕,我清个3、5次缓存,在打开个3、5次。好了,2分钟时间,我一个月流量就没了。。。...应用发生冷启动时,系统一定会执行下面的三个任务: 开始加载并启动应用 应用启动后,显示一个空白的启动窗口(启动闪屏页) 创建应用信息 那么创建应用信息,系统就需要做一屁股的事: application的初始化...但是一般项目都会有闪屏页。然后从闪屏跳转到首页。我们可以按照大多数的项目来改善。怎么说的,我们可以看到一般项目都有倒计时显示。也就是说倒计时结束就自动进入首页。或者可以直接跳过进入首页。...我们还可以这样,闪屏页我们把他当作一个fragment嵌套在MainActivity中,那么我们可以在进入闪屏时直接预加载主页的view。倒计时我们把闪屏页remove掉直接显示首页。

    67510

    Android 启动优化详解

    为启动页/闪屏页Activity设置theme <activity android:name=".splash.SplashActivity" android:screenOrientation...闪屏优化: 预览闪屏(今日头条),预览窗口实现成闪屏效果,高端机上体验非常好,不过低端机上会拉长总的闪屏时长(建议在Android6.0以上才启用此方案); //优点:避免点击桌面图标无响应 //缺点...:拉长总的闪屏时长 //(可以配合三方库懒加载,异步初始化等方案使用,减少初始化时长) //1....为启动页/闪屏页Activity设置theme <activity android:name=".splash.SplashActivity" android:screenOrientation...实验室监控 通过定期自动录屏并分析,也适合做竞品的对比测试 如何找到启动结束的点 80%绘制 图像识别 门槛高,适合大厂 线上监控 启动耗时计算的细节: 启动结束的统计时机:使用用户真正可以操作的时间

    5.4K85

    android刘海屏适配(刘海屏或圆角适配)

    只要应用程序引用非SDK接口或尝试使用反射或JNI获取其句柄,就会应用这些限制。通常,应用程序应仅使用SDK中类的官方记录部分。...特别是,这意味着当您通过诸如反射之类的语义与类交互时,您不应该计划访问SDK中未列出的方法或字段。使用此类方法或字段存在破坏应用程序的高风险。...邮件内容以其中一家为例(具体市场名称已隐匿): 尊敬的开发者: 您好!为保障用户的使用体验,应用市场已在3月启动Android P版本应用适配检测工作, 针对未做适配的应用开发者陆续进行邮件通知。...因为我们的闪屏页一般都是会全屏显示,那我们就需要适配刘海屏上的全屏样式了。 坐好了,我开始吹一波了。...name="android:windowBackground">@drawable/loading 闪屏页的样式我设置了全屏 代码中这样判断: /**

    2.2K10

    启动优化

    为启动页/闪屏页Activity设置theme <activity android:name=".splash.SplashActivity" android:screenOrientation...闪屏优化: 预览闪屏(今日头条),预览窗口实现成闪屏效果,高端机上体验非常好,不过低端机上会拉长总的闪屏时长(建议在Android6.0以上才启用此方案); //优点:避免点击桌面图标无响应 //缺点...:拉长总的闪屏时长 //(可以配合三方库懒加载,异步初始化等方案使用,减少初始化时长) //1....为启动页/闪屏页Activity设置theme <activity android:name=".splash.SplashActivity" android:screenOrientation...实验室监控 通过定期自动录屏并分析,也适合做竞品的对比测试 如何找到启动结束的点 80%绘制 图像识别 门槛高,适合大厂 线上监控 启动耗时计算的细节: 启动结束的统计时机:使用用户真正可以操作的时间

    3.5K54

    Android性能优化(一)

    此时,用户可以开始使用该应用程序。 [70] 因为App应用进程的创建过程是由手机的软硬件决定的,所以我们只能在这个创建过程中视觉优化。 启动主题优化 冷启动阶段 : 加载并启动应用程序。...> [70] (无白屏,不过从点击到App仍然存在视觉延迟~) 设置闪屏图片主题 为了更顺滑无缝衔接我们的闪屏页,可以在启动 Activity 的 Theme中设置闪屏页图片,这样启动窗口的图片就会是闪屏页图片...需求背景: 应用App通常会设置一个固定的闪屏页展示时间,例如2000ms,所以我们可以根据用户手机的运行速度,对展示时间做出调整,但是总时间仍然为 2000ms。...//所以闪屏页展示的时间为 2000ms - diffTime. } 所以就可以动态的设置应用闪屏的显示时间,尽量让每一部手机展示的时间一致,这样就不会让手机配置较低的用户感觉漫长难熬的闪屏页时间...广告页优化 闪屏页过后就要展示金主爸爸们的广告页了。

    2.7K20

    浅谈App的启动优化

    这时系统会又一次创建一个新的进程分配给该应用,这个启动方式就是冷启动。 温启动:当启动应用时,后台已有该应用的进程,但是Activity可能因为内存不足被回收。...没有提供设置接口的,考虑替换库或者插桩的方式,替换线程池的使用。 3.4 闪屏优化 闪屏优化属于启动用户体验的优化。毕竟谁也不想使用页面一闪一闪的应用。 1.设置自定义闪屏页。...设置自定义的闪屏页可以提高我们启动的"视觉速度"。通常会设置一个背景,然后把logo居中显示,可以使用xml文件来布局(注意,该图片不可展示动画,并且展示时间也不可控)。...属性方式显示为启动闪屏。...如何进行优化 上面讲了那么多应用启动优化的策略和措施,可能有些人就会问了:那么具体到我们每个不同的项目上,我们应该如何进行优化呢? 以下是我个人的优化步骤,仅供参考: 1.明确优化的内容和目标。

    98820

    解决 APP启动白屏黑屏问题

    闪屏页简介 闪屏页,我们手机上的每个 APP 几乎都有自己的闪屏页,就是在真正进入程序前,会有一个页面停顿几秒钟。其实我们完全可以充分利用好这几秒钟做很多的程序初始化了启动。...为什么我的 APP 启动会白屏或者黑屏 有时候我们会发现,我们在启动我们自己的 APP 的时候,总是有那么点时间是白屏(黑屏),经过了白屏(黑屏)后才会进入我们的 APP。那么这是为什么呢?...模拟效果 下面我们模拟一下白屏的效果 可以看到打开 APP 的时候会有白屏的现象出现,当然我的这个演示 APP 程序没有那么复杂,因此我为了实现这种效果,就在 Application 中做了个睡眠。...所以这里程序加载有个顺序,当打开一个 Activity 的时候,并且这个 Activity 所属的 Application 还没有运行,系统会首先为这个 Activity 创建一个进程,创建进程的时候就会调用...StartingWindow(PerviewWindow)的出现,StartingWindow 出现在应用程序进程创建并且初始化完成之前,是个临时的窗口,对应的 WindowType是 TYPE_APPLICATION_STARTING

    2.8K20

    android系统开机画面_Android开机画面

    大家好,又见面了,我是你们的朋友全栈君。...Android启动画面是启动应用程序时用户可见的第一个屏幕。 闪屏是应用程序中最重要的屏幕之一,因为它是用户对应用程序的首次体验。...启动屏幕的目的是在应用程序获取相关内容(从网络调用/数据库)中获取相关内容时,快速显示漂亮的屏幕。 使用上述方法, SplashActivity使用额外的开销来创建其布局。...由于应用程序需要时间来加载Splash Activity的布局文件,因此出现冷启动。 因此,我们将使用应用程序主题的功能来创建初始布局,而不是创建布局。...使用主题并从SplashActivity中删除布局是创建初始屏幕的正确方法。 这结束了android启动画面教程。

    96720

    Android性能优化(一)之启动加速35%

    中已经使用的错误,因此这种情况建议延迟到使用前再去初始化; 而如何开启WorkThread同样也有讲究,这个话题在下文详谈。...[三方组件调用优化示例代码] 注意:闪屏页的2秒停留可以利用,把耗时操作延迟到这个时间间隔里。...通过对traceview的详细跟踪以及代码的详细比对,我发现卡顿发生在: 部分数据库及IO的操作发生在首屏Activity主线程; Application中创建了线程池; 首屏Activity网络请求密集...; 工作线程使用未设置优先级; 信息未缓存,重复获取同样信息; 流程问题:例如闪屏图每次下载,当次使用; 以及其它细节问题: 执行无用老代码; 执行开发阶段使用的代码; 执行重复逻辑; 调用三方SDK里或者...修改广告闪屏逻辑为下次生效。

    1.4K30

    Android 11开发者预览版上线,看完这些新特性,国产厂商笑了

    这是谷歌有史以来最为提早公布的预览版操作系统,而新功能的展示并没有太直观,而是仅仅一窥未来Android手机的新增特性。另外,该预览版真的是只为开发者准备的,并且仅支持Pixel系列机型。 ?   ...有开发者使用了Piexl手机安装了该版本的Android 11,发现了不少新功能。国产手机厂商看到这些新功能后,笑了,这些功能国内已经玩坏了 ? ? 1、滚动截屏/长截图 ?...Android 11开发者预览版还将有全新的位置权限选项。现在用户将能够授予应用程序一次性的位置访问权限,而不是在首次打开应用程序时授予权限。...这意味着使用手机位置信息的应用程序必须不断询问能否访问手机位置,但这也意味着用户不必经常核查哪些应用程序在访问手机位置。...,都2020年2月了,还没适配Android 10,打开就闪退,是等着Android 11一起适配吗

    60310

    折叠屏丨华为专家深度解读折叠屏连续性和拖拽适配介绍

    折叠屏手机的出现,满足了用户对大屏幕的追求,但卓越的用户体验更离不开应用的适配与功能创新。距离Mate X面世已经一年的时间,应用适配情况如何?在适配过程中有哪些经验可以参考?...根据国内TOP1000主流应用折叠屏测试报告数据显示,当前折叠屏应用适配率为90%,整体表现优异,为后续应用功能创新打下了坚实的基础。...避免在调用finish()或其他自行终止进程,否则会导致应用程序在设备折叠或展开时出现关闭、闪退等问题。...随着屏幕越来越大,分屏、悬浮窗的使用场景也随之增多,拖拽的价值更加显著。 2.1 拖拽功能技术框架 拖拽属于Android框架的一部分,可以让用户使用图形化拖放手势,将数据从一个视图移至另一个视图。...2)安卓模拟器 从Android Studio 3.5Canary版本开始,开发者可创建一个运行Q Beta 2版本的折叠屏虚拟设备,其支持的硬件配置分别为7.3英寸(折叠后为4.6英寸),以及8英寸(

    1.1K20

    Android 12 SplashScreen API快速入门

    这次的Android系统变化当中,UI的变化无疑是巨大的。Google在Android 12中采取了一种叫作Material You的界面设计,一切以你为中心,以你的喜好为风格。...什么是SplashScreen SplashScreen其实通俗点讲就是指的闪屏界面。...这个我们国内开发者一定不会陌生,因为绝大多数的国内App都会有闪屏界面这个功能,很多的App还会利用闪屏界面去打广告。...下图是QQ的闪屏界面: 然而在海外,闪屏界面其实并不太常见,甚至Google之前都不推荐我们在App中加入闪屏界面,所以这次Android 12中官方推出了SplashScreen功能还是让我有点意外的...为此,我通过自己做实验,大概总结出了这里应该使用一张2.4:1的图片,最终的效果如下图所示: 适配旧版SplashScreen 最后,我们再来了解一下,如何才能去适配旧版的SplashScreen。

    2K10

    Activity 的 36 大难点,你会几个?「建议收藏」

    ,切横屏时会执行一次,切竖屏时会执行两次 设置 Activity 的 android:configChanges="orientation" 时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次...不会再创建新的 Activity ;若须要创建的 Activity 不处于栈顶,此时会又一次创建一个新的 Activity 入栈,同 Standard 模式一样。...onCreate 方法仅仅会在第一次创建 Activity 时被运行。...4.2.1 附加一张 Context 继承关系图 4.3 获取当前屏幕 Activity 的对象 使用 ActivityLifecycleCallbacks Android 如何获取当前Activity...在 Android 中,如果你的应用程序有一段时间没有响应,系统会向用户显示一个对话框,这个对话框称作应用程序无响应对话框。

    79420

    Android 面试之必问性能优化

    启动后立即显示应用程序空白的启动窗口。 创建应用程序进程。 一旦系统创建应用程序进程,应用程序进程就会进入下一阶段,并完成如下的一些事情。...创建app对象 启动主线程(main thread) 创建应用入口的Activity对象 填充加载布局View 在屏幕上执行View的绘制过程.measure -> layout -> draw 应用程序进程完成第一次绘制后...此时,用户可以开始使用该应用程序了。因为App应用进程的创建过程是由手机的软硬件决定的,所以我们只能在这个创建过程中进行一些视觉优化。...为了更顺滑无缝衔接我们的闪屏页,可以在启动 Activity 的 Theme中设置闪屏页图片,这样启动窗口的图片就会是闪屏页图片,而不是白屏。...Hook 方案的好处在于使用者接入非常简单,不需要去修改代码,接入的成本比较低。下面我以几个比较常用的规则为例,看看如何使用 Java Hook 达到监控的目的。

    90200

    面试软件测试APP岗位,这些题目你不可不知!

    需要关注应用在不同状态下的CPU占用情况,如空闲状态、中等规格运行状态以及满规格长时间运行状态。 内存使用: 内存使用不当会导致应用卡顿、闪退等问题。...一、冷启动 定义:当应用启动时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就叫做冷启动。 场景: 程序安装后的第一次启动。...四、首屏启动 定义:首屏启动是指应用程序在启动后显示其主屏幕或用户首次看到的屏幕(即首屏)所需的时间 场景: 新用户首次使用:当用户首次下载并安装应用程序时,他们会看到应用程序的首屏启动。...此时,首屏启动同样重要,因为它决定了用户能否快速进入应用程序并继续之前的操作或探索新的功能。 应用程序更新后:当应用程序进行更新或升级后,用户再次打开应用程序时也会看到首屏启动。...这是应用程序向用户展示新版本特性或变化的机会。 特点:首屏启动是应用程序与用户进行交互的起点。如果首屏启动时间过长,用户可能会感到不耐烦或失去兴趣,从而导致用户流失或卸载应用程序。

    7410

    Android 面试之必问性能优化

    启动后立即显示应用程序空白的启动窗口。 创建应用程序进程。 一旦系统创建应用程序进程,应用程序进程就会进入下一阶段,并完成如下的一些事情。...应用程序进程完成第一次绘制后,系统进程会交换当前显示的背景窗口,将其替换为主活动。...此时,用户可以开始使用该应用程序了。因为App应用进程的创建过程是由手机的软硬件决定的,所以我们只能在这个创建过程中进行一些视觉优化。...为了更顺滑无缝衔接我们的闪屏页,可以在启动 Activity 的 Theme中设置闪屏页图片,这样启动窗口的图片就会是闪屏页图片,而不是白屏。...Hook 方案的好处在于使用者接入非常简单,不需要去修改代码,接入的成本比较低。下面我以几个比较常用的规则为例,看看如何使用 Java Hook 达到监控的目的。

    90231
    领券