Android性能页优化-启动页优化

Flutter&Android 启动页(闪屏页)的加载流程和优化方案(1),Android内存泄漏总结 Override///创建绑定引擎等///用于插件、框架恢复状态///设置窗口背景透明,隐藏 status bar///这里是咱们的入口setContentView大家很熟悉,我们直接看createFlutterView() 这个方法:@NonNull/, null /container/, null /flutter的初始化、启动等操作都是委托给它的。我们继续看onCreateView,我将说明以注释的形式写在代码里@NonNull。 阅读详情

这些天跟聊了下启动页优化问题,这是一个老生常谈的问题了。

1、App启动方式:

a、冷启动;应用被杀死,后台没有对应的进程的启动

b、热启动;后台有应用进程的启动

我们需要启动页优化,主要也是针对冷启动时候优化。

在冷启动过程中我们应用是这样子执行的:

图片

由以上图我们可以知道,如果我们要优化启动速度点话,重点要把主线程在Application、启动Acitivity上的耗时减少以此达到优化目的。

2、启动时白屏和黑屏

设置启动Activity的theme的style包含windowBackground,他将会在启动Activity在onCreate的时候加载,并且给Window设置背景图

图片

代码设置如下:

图片

但是往往我们这样子设置后,就是背景图展示特别长,换言之我们只是解决白屏和黑屏的问题,但是本质没有解决启动耗时长的问题,不过这种以空间换时间做法也不失为一种解决方案,至少让用户启动的时候可以看到一个界面。

3、启动耗时分析:

a、SDK初始化耗时,此处我们要对每个sdk初始化处进行时间计量,看他耗时为多少,另外一个app往往集成了多个SDK,切勿以量小而不为,例如一个sdk平均耗时100ms,如果集成了10个sdk的,就是1s的时间,这就时间还是挺大的。

b、业务冗杂;这里主要要说明的是冷启动后,各种各样的弹窗,各种弹窗齐刷刷的带来的绘制卡顿是非常明显的,所以此时最好对这种业务进行优先级排序。

c、网络确定;例如开机广告,冷启动app的时候,我们还要去请求网络看看是否有广告素材,由这个结果来决定app的下一步,这是非常慢的,更夸张的时候有些广告是视频广告,导致用户冷启动一次app至少花费10s的时间;当然除了开机广告,结合业务需要我们有各种各样的网络确定的过程;我们可以这一次获取下一次需要网络确认的数据,以此达到下一次冷启动应用的时候就不需要等待网络确定而直接进入下一步

4、总结

对阻碍启动优化的业务(SDK)进行优先级排序,对于那些不重要的业务(SDK)参与延迟处理,例如我们可以合理利用Looper中的Idle机制,把一些不重要的事情放入Idle处理;

图片

我们要梳理启动过程中主线程所操作的事情,并且对sdk初始化进行时间打点,对业务优先级进行排序,合理善用本地文件、内存缓存避免多次网络确认;不提前初始化或者请求暂时使用不到的业务;能够不在主线程处理的业务在子线程处理,给主线程腾出更多的时间和空间。

UniApp启动页深度定制:从静态配置到动态加载的实战指南 本文深入探讨了UniApp启动页的深度定制方案,从基础的manifest.json静态配置讲起,详细解析了iOS与Android平台的规范差异及常见避坑指南。重点介绍了通过创建中间页实现动态加载的高级方案,以解决原生启动页闪屏问题,并实现根据网络、用户状态或节日活动展示不同内容的灵活效果,最终提升App启动体验与品牌专业感。 阅读详情

相关推荐

别再搞混了!UniApp启动页、引导页、闪屏页到底有啥区别?附实战配置避坑

本文详细解析了UniApp中启动页、引导页和闪屏页的核心区别与配置方法,帮助开发者避免常见误区。通过实战示例和优化技巧,指导如何精准配置这三种页面以提升应用启动体验,特别适合uniapp开发者参考。

weixin_33743661的博客 557

Android性能优化(一)—— 启动优化

在性能优化中存在启动时间原则:八秒定律是在互联网领域存在的一个定律,即指用户访问一个网站时,如果等待网页打开的时间超过了,就有超过70%的用户放弃等待。冷启动的详细流程可以简单分成三个步骤,其中创建进程步骤是系统做的,启动应用和绘制界面是应用做的:不同的启动方式决定了应用对用户可见所需要花费的时间长短,冷启动消耗的时间最长。 基于冷启动方式的优化工作也是最考验产品用户体验的地方。以下是启动时间,这个启动时间是从应用启动(创建应用进程)开始计算到完成视图的首帧绘制(即的内容对用户可见)为止:或者使用指令:,表

xingyu19911016的博客 4680

Ionic 2 启动页轮播实战:Storage 持久化与 NavController 栈控制

启动页轮播(Intro Slider)是移动应用首次启动时的关键引导组件,其本质并非简单 UI 动画,而是基于用户状态驱动的流程控制器。它依赖可靠的本地持久化机制(如 SQLite/IndexedDB)记录‘是否已展示’状态,并需深度结合导航栈管理(如 setRoot/popToRoot)确保页面跳转原子性与历史清理彻底性。在 Ionic 2 中,@ionic/storage 提供跨平台存储抽象,规避 localStorage 在 iOS WKWebView 或 Android 定制 ROM 中的数据丢失风

weixin_34009794的博客 416

Android性能优化——启动优化

Android性能优化——启动优化

weixin_42277946的博客 1613

Android启动页适配全攻略:从.9.png到SplashScreen API

移动应用启动页作为用户体验的第一触点,其技术实现涉及UI渲染优化与系统兼容性处理两大核心领域。在Android开发中,.9.png技术通过定义可拉伸区域实现图片自适应,而Android 12引入的SplashScreen API则提供了标准化的启动流程控制。这些技术不仅能有效解决冷启动白屏问题,还能确保品牌元素在各种屏幕比例下的完美展示。针对金融、社交等高要求场景,混合适配方案结合传统.9.png制作技巧与最新系统API,可覆盖99%以上的Android设备。实测数据显示,优化后的启动页能使应用冷启动时间降

weixin_29175469的博客 282

Android冷启动优化解析

/ 数据回调PS:这个方式minSdkVersion需要API19+,所以要对SDK版本进行设置或判断。Traceview是Android设备的一个非常好用的性能分析工具,它可以通过详细的界面,让我们跟踪程序的性能,并且能清晰地查看到每一个函数的耗时和调用次数。Systrace非常直观地展示每个线程上面的API的调用顺序和耗时情况。

2401_85122689的博客 1585

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

目录:   1.应用启动速度 2.视觉优化     2.1启动主题优化         默认情况         透明主题优化         设置闪屏图片主题 3.代码优化     3.1冷启动耗时统计         adb 命令统计         系统日志统计     3.2代码优化         Application 优化         闪屏页业务优化 ...

qq_38859786的博客 848

Android应用引导页和启动页完整实现教程

本文还有配套的精品资源,点击获取 简介:Android应用中的引导页和启动页对于提升用户体验至关重要。引导页用于介绍应用功能或新特性,启动页则用于显示品牌标识和加载资源。本教程将指导开发者如何创建这两种页面,涵盖设计布局、使用ViewPager和Fragment、实现动画和交互、保存用户状态以及判断引导页显示条件等关键步骤。此外,还会强调测试和优化的重要性,确保在各种设备上...

weixin_34520664的博客 2785

Android 性能优化——APP启动优化详解

用户希望应用能够及时响应并快速加载,启动时间过长的应用不能满足这个期望,并且可能使用户失望。启动太慢的结果:冷启动流程:启动总结:从被系统调用,再到第一个页面渲染到手机屏幕,我们通常只需要关注中的方法,第一个中、、方法。注意:如果在启动第一个时,该不但有自己的逻辑,还在、或者方法中直接有跳转到了其它页面,那么跳转后的的这三个方法也需要进行优化。在系统加载并启动时,需要耗费相应的时间,即使时间不到1S,用户也会感觉到当点击图标时会有“延迟”现象,为了解决这一个问题,的做法是在创建的过程中,先展示一个空白的页面

maniuT的博客 1604

Android代码-Android页面启动速度优化:在页面打开之前就预加载数据

PreLoader: Make your activity launch faster changelog 中文文档 Pre-load data before Activity opens, and display data on UI after UI initialization. Speedup Activity launch You can start a PreLoader everywhere and start to listen data which loaded by the PreLoader with preLoaderId if DataLoader.loadData() is not completed, then DataListener.onDataArrived() will be called after the data load is completed if DataLoader.loadData() is completed, then DataListener.onDataArrived() called immediately

Android优化之启动页去黑屏实现秒启动

前言 还记得之前我们写了一篇文章,基于RxJava实现酷炫启动页,然而当我们点击桌面图标启动APP时,有时会闪一下黑色背景,有时黑色背景时间还比较长,哎呀,难看死了,这个怎么办捏,别方,我们今天就来看看启动页的优化。 一、消除启动时的黑屏 点击桌面launcher图标启动APP,闪现的黑色背景其实是出现在我们看到界面第一帧之前。那我们就要想办法让这个黑色的背景变成用户喜欢看到的画面或者让它透明化。有了思路方法也就粗现了,我们有下面两种方案: 自定义WelcomActivity的Theme 说白了,就是把出现的黑屏通过android:windowBackground属性设置为我们想要的背景。

Flutter&Android 启动页(闪屏页)的加载流程和优化方案,超强Android进阶路线知识图谱

找到一套好的视频资料,紧跟大牛梳理好的知识框架进行学习。多练。(视频优势是互动感强,容易集中注意力)你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。下面资料部分截图是我花费几个月时间整理的,诚意满满:特别适合有3-5年开发经验的Android程序员们学习。《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

2401_84149570的博客 559

R语言pls包实战:手把手教你用偏最小二乘(PLS)搞定高维数据回归(附完整代码与数据标准化避坑指南)

本文详细介绍了如何使用R语言的pls包进行偏最小二乘(PLS)回归分析,特别针对高维数据回归问题。通过完整的代码示例和数据标准化避坑指南,帮助读者掌握从数据预处理到模型优化的全流程,解决实际应用中的常见问题。

weixin_42662605的博客 352

别再搞混了!UniApp启动页、引导页、闪屏页的区别与实战配置(附避坑指南)

本文深入解析UniApp中启动页、引导页和闪屏页的核心区别与实战配置技巧,帮助开发者避免常见误区。通过详细的代码示例和性能优化方案,指导如何专业配置启动页、实现高效引导页,并提升应用启动速度与用户体验,特别适合uniapp开发者参考。

weixin_30800987的博客 670

【面试经验】大疆笔试-计算机视觉算法B卷

3、a=np.random.randn(3,3) b=np.random.randn(3,1) ,那么c=a*b的维度应该是:*是元素乘法或者torch.mul,@才是矩阵乘法或者torch.matmul,不会触发广播机制;8、将分辨率降低一半时,精标定内参(fx、fy、cx、cy、k1、k2、k3)焦距、光心、畸变系数将分别变成(fx、fy、cx/2、cy/2、k1、k2、k3),只能搜到光心变成一半,畸变系数不变。12、KLT算法在频闪光源、重复纹理、高速机动、环境照度低的情况下效果显著下降。

litterfinger的博客 1448

2篇1章1节:数据的基本概念以及 R 中的数据结构、向量与矩阵的创建及运算

本文详细介绍了R语言中常见的数据结构的向量和矩阵。通过掌握这些数据结构的基本概念和操作技巧,可以更高效地处理和分析数据。

MD Code 1246

Android启动性能优化——闪屏及Splash页

Android启动性能优化——闪屏及Splash页 本文我们将分析如何使用系统闪屏和 Splash 页来提升 APP 的启动性能。 闪屏 闪屏页是什么? 启动闪屏不仅仅可以作为品牌宣传页,还能够减轻用户对启动耗时的感知,但是如果使用不恰当,将适得其反。当点击桌面图标启动 APP 的时候,程序会显示一个启动窗口,一直到页面的渲染加载完毕。如果程序的启动速度足够快,我们看的闪屏窗口停留显示的时间则会很短,但是当程序启动速度偏慢的时候,这个启动闪屏可以一定程度上减轻用户等待的焦虑感,避免用户过于轻易的关闭应用。

卜大爷的博客 2万+

RK3568平台开发系列讲解:Linux wifi的调试

查询结果中state为ENABLE,表示hostapd程序启用成功。首先查看设备是否存在。

内核笔记 168

Android启动优化最佳方案:去启动页和异步初始化

项目地址:https://github.com/smartzheng/asyncstarter 随着APP的日渐增大,集成的三方库也越来越多,导致APP的启动极其缓慢。最近在慕课get了一些不错的优化方案,将原来的冷启动时间大概提升30%。 启动的时间监测可以直接用adb命令实现: adb shell am start -W PackageName/ActivityName   &nb...

kinly1993的博客 3367

射频仿真软件:ADS (Advanced Design System)_(29).ADS脚本编程与自动化

ADS脚本编程为射频设计提供了强大的自动化工具,可以帮助用户实现设计流程的优化、参数扫描和优化、结果分析和报告生成等任务。选择合适的脚本语言(Python、Tcl、AEL)并合理设置ADS环境,可以显著提高设计效率和准确性。通过实际项目中的应用案例,我们可以更好地理解如何利用脚本编程解决复杂的射频设计问题。希望本文对您的ADS脚本编程学习有所帮助。

kkchenjj的博客 2472

手把手教你学Simulink——机器人力控场景实例:基于Simulink的永磁同步电机重力补偿力矩控制仿真

本文介绍了基于Simulink的机器人重力补偿力矩控制仿真方法。针对机器人悬停时电机发热、抖动等问题,提出通过前馈补偿重力转矩的解决方案。文章详细阐述了从机器人动力学建模、重力补偿计算、PMSM转矩控制到系统集成的完整实现流程,并以2-DOF机械臂为例验证了补偿效果。结果表明,重力补偿能显著降低电机电流和拖拽力,提高系统柔顺性。文中还提供了高级功能扩展方向,如参数辨识、摩擦补偿等,为实际工程应用提供了参考框架。

MHD0815的博客 154

android app启动页(闪屏页)白屏快速优化方案实践

_@drawable/bg_splash_snow_改为你自己的背景图启动页activity 的 onCreate 方法回调中,将window的背景图置空,代码如下:class SplashActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { window.setBackgroundDrawable(null) super.onCreate(savedInstanceState) setCo

2301_79655511的博客 560

YOLOv8与Swin Transformer的完美结合:如何提升目标检测的精度与速度

Swin Transformer(Shifted Window Transformer)是一种新型的视觉Transformer架构,采用了局部窗口(Window)和局部窗口偏移(Shifted Window)的策略,极大减少了计算复杂度,同时保持了全局感知能力。局部窗口注意力:每个窗口内的元素进行自注意力计算,减少计算量。窗口偏移:通过在不同层次引入窗口偏移,增强了全局信息的交互。层级设计:通过堆叠多个层次的模块,逐渐捕捉不同尺度的特征。

shrgegrb的博客 2151
上一篇: Android性能优化—网络优化
下一篇: Android性能优化-Apk瘦身(1)
码农驿站
博客等级 码龄10年 5粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值