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

App 启动优化

可以重复避免对象初始化,布局解析绘制。 场景就类似你打开微信聊了一会天这时候出去看了下日历 在打开微信 微信这时候启动就属于冷启动。...- 填充加载布局Views - 在屏幕上执行View绘制过程measure -> layout -> draw 应用程序进程完成第一次绘制后,系统进程会交换当前显示背景窗口,将其替换为主活动。...;/item>     </style>   设置图片主题 为了更顺滑无缝衔接我们页,可以在启动 Activity Theme中设置页图片,这样启动窗口图片就会是页图片...           //所以页展示时间为 2000ms - diffTime.     }   所以我们就可以动态设置应用显示时间,尽量让每一部手机展示时间一致,这样就不会让手机配置较低用户感觉漫长难熬页时间...(例如初始化了2000ms,又要展示2000ms页时间.)

1.3K10

Android App性能优化全方面解析

布局优化 GPU绘制 我们对于UI性能优化还可以通过开发者选项中GPU过度绘制工具来进行分析。...用张简洁图来介绍把。看起来方便~~ ? 线程优化 上面说三种导致ANR情况,绝大多数就是因为线程阻塞导致。那么我们应该如何处理呢?Android系统为我们提供了若干组工具类来解决此问题。...但启动时,系统依然会展示页,直到第一个 Activity 内容呈现为止。 热启动 相比暖启动,热启动时应用做工作更少,启动时间更短。...但是一般项目都会有页。然后从跳转到首页。我们可以按照大多数项目来改善。怎么说,我们可以看到一般项目都有倒计时显示。也就是说倒计时结束就自动进入首页。或者可以直接跳过进入首页。...我们还可以这样,页我们把他当作一个fragment嵌套在MainActivity中,那么我们可以在进入时直接预加载主页view。倒计时我们把页remove掉直接显示首页。

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

Android开发者Flutter入门(二)

涉及到有以下这些点: 页 自定义布局 下拉刷新 上拉加载更多 使用Assets 路由(页面跳转) 内嵌WebView 页 由于启动Flutter app时候需要初始化Flutter...这个时间是比较长。所以开发Flutter app时候都需要加一个页。给Android平台上跑Flutter app加页其实是和给一个正常Android app加页是一样。...那段注释大概意思是说这个标签是用来表示让Flutter在启动过程中保持页直到第一帧画面被绘制出来。也就是说,隐藏不需要我们来处理了。 接下来看看这个LaunchTheme: ?...LaunchTheme 可见就定义了一个窗口背景了,也就是我们页本尊了,这里你可以把这个drawable改成你自己页图片也OK。 至于ios平台页怎么弄,可以参考这里。...自定义布局 我们都知道,在Android中,如果系统提供布局控件不能满足我们需求,我们会自定义布局控件来实现。Flutter同样也提供自定义布局控件功能。

1.3K20

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

2.启动主线程(main thread) 3.填充加载布局Views 4.在屏幕上执行View绘制过程.measure -> layout -> draw 应用程序进程完成第一次绘制后,系统进程会交换当前显示背景窗口...,将其替换为主活动。...,直到 App 应用程序入口 Activity 创建成功,视图绘制完毕 解决方法可查看Android启动界面SplashActivit实现方法 代码优化 Android中如何计算 App 启动时间...,这些常见问题包括: 1.复杂繁琐布局初始化 2.阻塞主线程 UI 绘制操作,如 I/O 读写或者是网络访问 3.Bitmap 大图片或者 VectorDrawable加载 4.其它占用主线程操作...//所以页展示时间为 2000ms - diffTime. } 所以我们就可以动态设置应用显示时间,尽量让每一部手机展示时间一致,这样就不会让手机配置较低用户感觉漫长难熬页时间

1.9K20

线性布局布局组合

Android开发者选项,看起来很简单事情,其实很多同学对它了解得不够,Google用心良苦得为我们设计了这么多小开关都是有它作用,今天也花了点时间,过了一遍全部30多个开关,从中整理出15个对日常...抱歉这里不介绍开发者选项在哪怎么开启之类问题。 1. Stay awake 充电时保持屏幕唤醒,开发时候,时不时真是够了,开启它后只要插着USB线就不需要总去解锁屏幕啦。 2....Show surface updates 在界面绘制时,闪烁提醒,开启它后简直能瞎你眼睛,但有时候我们需要精确知道具体界面绘制细节时,不得不需要忍受这种折磨。 7....Simulate secondary displays 它允许你模拟不同屏幕尺寸下应用表现,IDE里虽然也有类似的功能,那毕竟只是个静态效果。 11....Strict mode enabled 严苛模式下,当应用做了一些影响性能事情,屏幕会一下提醒你。

53730

Android性能优化(一)

在屏幕上执行View绘制过程.measure -> layout -> draw 应用程序进程完成第一次绘制后,系统进程会交换当前显示背景窗口,将其替换为主活动。...> [70] (无白屏,不过从点击到App仍然存在视觉延迟~) 设置图片主题 为了更顺滑无缝衔接我们页,可以在启动 Activity Theme中设置页图片,这样启动窗口图片就会是页图片...//所以页展示时间为 2000ms - diffTime. } 所以就可以动态设置应用显示时间,尽量让每一部手机展示时间一致,这样就不会让手机配置较低用户感觉漫长难熬页时间...和其它窗口一样,启动窗口也需要通过PhoneWindow来设置布局信息DecorView。所以在上面视觉优化中设置图片主题启动窗口显示就是图片内容。...UI渲染优化目的就是减轻CPU,GPU压力,除去不必要操作,保证每帧16ms以内处理完所有的CPUGPU计算,绘制,渲染等等操作,使UI顺滑,流畅展示出来。

2.5K20

解决 APP启动白屏黑屏问题

页简介 页,我们手机上每个 APP 几乎都有自己页,就是在真正进入程序前,会有一个页面停顿几秒钟。其实我们完全可以充分利用好这几秒钟做很多程序初始化了启动。...我们都知道 Window 布局顶层是 DecorView,而 StaringWindow 显示是一个空 DecorView,只是这个 DecorView 会应用我们这个 Activity 所指定...我们默认 Theme 是 @android:style/Theme.Light 的话,这个时候就会产生白屏了。...再顺便说一下 Activity 布局绘制顺序: 绘制背景 绘制 View 本身内容 绘制子 View 绘制修饰内容(例如滚动条) 解决黑白屏问题 通过上面我们已经知道为什么会出现这个问题了,那么解决起来就很简单了...splash true 设置这个背景要和我启动页搭配起来就行了!

2.8K20

Android系统性能优化

但是这块优化关注的人很少,因为App常常伴有页,所以这个问题看起来就不是问题了,但是一款好应用是绝对不允许这样,我加页是我事,启动速度慢绝对不可以。...1、启动主线程 2、创建主Activity 3、加载布局 4、屏幕布局 5、执行初始绘制 应用程序进程完成第一次绘制后,系统进程会交换当前显示背景窗口,将其替换为主活动。...如果应用程序Activity仍然驻留在内存中,那么应用程序可以避免重复对象初始化、布局加载和渲染。 热启动显示冷启动方案相同屏幕行为:系统进程显示空白屏幕,直到应用程序完成呈现活动。...同时因为我们一般会有页面,也可以把延时启动地图,推动启动在这个时间段里,这样合理安排时间片使用。极大提高了启动速度。 针对3:避免I/O操作、反序列化、网络操作、布局嵌套等。...可以使用Android Studio将现有的BMP,JPG,PNG或静态GIF图像转换为WebP格式。 6、使用矢量图形 可以使用矢量图形来创建分辨率无关图标和其他伸缩Image。

55620

Android 启动优化详解

: 加载并启动应用 显示应用空白启动窗口 创建应用进程 应用进程负责后续阶段: 创建应用对象(Application) 启动主线程 创建主Activity 扩充视图/加载布局 布局屏幕 执行初始绘制...优化: 预览(今日头条),预览窗口实现成效果,高端机上体验非常好,不过低端机上会拉长总时长(建议在Android6.0以上才启用此方案); //优点:避免点击桌面图标无响应 //缺点...:拉长总时长 //(可以配合三方库懒加载,异步初始化等方案使用,减少初始化时长) //1....子线程install(不推荐): 页开一个子线程去执行MultiDex.install,然后加载完才跳转到主页, 需要注意Activity,包括页中引用到其它类必须在主dex中,...实验室监控 通过定期自动录并分析,也适合做竞品对比测试 如何找到启动结束点 80%绘制 图像识别 门槛高,适合大厂 线上监控 启动耗时计算细节: 启动结束统计时机:使用用户真正可以操作时间

4.9K85

启动优化

: 加载并启动应用 显示应用空白启动窗口 创建应用进程 应用进程负责后续阶段: 创建应用对象(Application) 启动主线程 创建主Activity 扩充视图/加载布局 布局屏幕 执行初始绘制...优化: 预览(今日头条),预览窗口实现成效果,高端机上体验非常好,不过低端机上会拉长总时长(建议在Android6.0以上才启用此方案); //优点:避免点击桌面图标无响应 //缺点...:拉长总时长 //(可以配合三方库懒加载,异步初始化等方案使用,减少初始化时长) //1....子线程install(不推荐): 页开一个子线程去执行MultiDex.install,然后加载完才跳转到主页, 需要注意Activity,包括页中引用到其它类必须在主dex中,...实验室监控 通过定期自动录并分析,也适合做竞品对比测试 如何找到启动结束点 80%绘制 图像识别 门槛高,适合大厂 线上监控 启动耗时计算细节: 启动结束统计时机:使用用户真正可以操作时间

3.3K54

H5前端性能测试快速入门

渲染树布局绘制:渲染树确定各个dom节点在屏幕中单确切位置,根据渲染树中颜色等信息绘制出网页。 ?...另一方面,http请求数量也是有限制,浏览器对同一个域名有连接数限制,不同浏览器内核、不同版本请求数不尽相同,大部分并发请求数是6个。 ?...而CSS放在底部则会引起重新绘制,用户侧感受到“不好体验。 5、JS放在底部 JS在下载时候会引起两个问题:阻止网页内容展示并阻止其他资源下载。...最后,经过压缩过脚本文件使用务器端设置GZIP压缩算来压缩,能够压使文件缩得更加淋漓尽致。 7、是否添加缓存 ?...内存:加载页面前后内存变化,间接反映H5中资源数量和大小,如dom数量,图片大小。 CPU:当页面中资源样式复杂,强调视觉效果时,测试员可观察CPU占用率来反映H5绘制质量。

1.8K60

Android 面试之必问性能优化

为了更顺滑无缝衔接我们页,可以在启动 Activity Theme中设置页图片,这样启动窗口图片就会是页图片,而不是白屏。...">@drawable/lunch //页图片 true <...而UI渲染优化目的就是减轻CPU、GPU压力,除去不必要操作,保证每帧16ms以内处理完所有的CPUGPU计算、绘制、渲染等等操作,使UI顺滑、流畅显示出来。...在重叠UI布局中,如果不可见UI也在做绘制操作或者后一个控件将前一个控件遮挡,会导致某些像素区域被绘制了多次,从而增加了CPU、GPU压力。 那么如何找出布局中Overdraw地方呢?...比方说Splash广告图片, 我们可以在连接到Wifi时下载缓存到本地; 新闻类App可以在充电,Wifi状态下做离线缓存。

85600

折叠丨华为高级工程师权威解读平行视界开发指南

商品详情快切,减少页面跳转感,使商品查找更加高效。 商品对比,一目了然,避免传统不同页面间跳转对比,使商品对比更精准。 改变以往客服页面独占式布局,给用户带来更轻量多任务体验。...如果没有这个参数会发生一下Activity B再出来Activity C,体验效果不佳。配置上Activity B,系统就会帮助开发者处理这种问题。...分屏模式配置样例 下面是购物模式自定义模式在页面跳转上区别: 需要注意是:左右分屏返回是不一样,注意左图中蓝色虚线,左C返回会把B和C都销毁,左C返回只是销毁C。...来进行布局,而不是使用applicationcontext。...本篇文章分享只是基础内容,更加全面具体内容,参考: 1.

1.3K20

H5前端性能测试快速入门

渲染树布局绘制:渲染树确定各个dom节点在屏幕中单确切位置,根据渲染树中颜色等信息绘制出网页。 ?...另一方面,http请求数量也是有限制,浏览器对同一个域名有连接数限制,不同浏览器内核、不同版本请求数不尽相同,大部分并发请求数是6个。 ?...而CSS放在底部则会引起重新绘制,用户侧感受到“不好体验。 5、JS放在底部 JS在下载时候会引起两个问题:阻止网页内容展示并阻止其他资源下载。...最后,经过压缩过脚本文件使用务器端设置GZIP压缩算来压缩,能够压使文件缩得更加淋漓尽致。 7、是否添加缓存 ?...内存:加载页面前后内存变化,间接反映H5中资源数量和大小,如dom数量,图片大小。 CPU:当页面中资源样式复杂,强调视觉效果时,测试员可观察CPU占用率来反映H5绘制质量。

2.8K83

你想要Android性能优化系列:启动优化 !

此值代表从启动进程到在屏幕上完成对应 Activity 绘制所用时间。经过时间包括以下事件序列: 启动进程。 初始化对象。 创建并初始化 Activity。 扩充布局。 首次绘制。...5.2 Systrace Systrace 结合了 Android 内核数据,分析了线程活动后会给我们生成一个非常精确 HTML 格式报告。...那么视觉优化方案 也就有了:替换第一个activity(通常是页)Theme,把白色背景换成Logot图,然后再ActivityonCreate中换回来。...、首页数据预加载:广告、首页数据 加载后缓存到本地,下次进入时直接读取缓存。...首页读取缓存到内存操作还可以提前到页。 6.6 页面绘制优化 主页绘制优化,这里涉及到绘制优化相关知识了,例如减少布局层级等。

1.5K30

Android性能优化典范 - 第6季

例如,一旦用户点击桌面图标,Android系统会立即显示一个启动窗口,这个窗口会一直保持显示直到画面中元素成功加载并绘制完第一帧。...App Launch Time & Theme Launch Screens 启动不仅仅可以作为品牌宣传页,还能够减轻用户对启动耗时感知,但是如果使用不恰当,将适得其反。...如果程序启动速度足够快,我们看窗口停留显示时间则会很短,但是当程序启动速度偏慢时候,这个启动可以一定程度上减轻用户等待焦虑感,避免用户过于轻易关闭应用。...对于启动,正确使用方法是自定义一张图片,把这张图片通过设置主题方式显示为启动,代码执行到主页面的onCreate时候设置为程序正常主题。 5....作者简介: 胡凯,腾讯 Android 工程师,热爱开源分享,维护 Android 官方培训课程协作项目,关注 Android 应用性能优化总结分享,推崇 Android 官方最佳实践。

63730

深入研究Android启动速度优化(上)- 看完这些启动优化已经完成80%了

以时间值形式衡量,也就是指应用用户进入交互状态所需时间。...View 整体渲染阶段,涵盖 measure、layout、draw 三部分,这里尝试从层级、布局、渲染上取得优化收益。...最后是首数据加载阶段,这部分涵盖非常多数据相关操作,也需要综合性优化,尝试预加载、三级缓存或网络优先级调度等手段进行优化。...点击图标很久都不响应 如果我们禁用了预览窗口或者指定了透明皮肤,那用户点击了图标之后,需要在创建启动页后才能真正看到应用。...首页显示太慢 现在应用启动流程越来越复杂,广告、热修复框架、插件化框架、各种SDK初始化,所有准备工作都需要集中在启动阶段完成。

41510

APP冷启动优化:如何使用好工具【Perfetto systrace MethodTracing】

冷启动定义优化点 如何衡量当前性能指标,个人感觉,性能衡量分三步: 指标制-> 指标采集 -> 性能基线优劣评级, 以上三块组成性能量化工具,有了量化工具,就可以说APP性能是好是坏,以冷启动为例...单从技术上说感觉可以定义如下: 冷启动耗时 = 从APP进程创建到第一个有效页面帧[] 具体到实现上,涉及哪些环节,会怎样影响冷启动速度呢?...同理对于ActivityonCreate跟onResume阶段所做处理类似 从图中就很容下发现,有些Flutterboost、埋点Json解析类耗时操作被不小心关联进了Activit启动流程中...对于整体冷启动优化效果:用perfetto看比较直接 优化前:1261ms 优化后:439ms 所用优化除了上面的措施还有部分如下措施等: 延迟非必要receiver注册 广告Layout布局按需加载...锁优化,进程线程间阻塞优化 所用优化除了上面的措施还有部分如下措施等:核心原则 UI线程不做耗时操作 延迟非必要receiver注册 广告Layout布局按需加载 锁优化,进程线程间阻塞优化

2.3K41

一种粗暴快速Android全屏幕适配方案

面对市面上五花八门屏幕大小分辨率,Android基于dpres目录名称来适配方案已无法满足一次编写全屏幕适配需求,为了达到最优视觉效果,开发过程中总是需要花费较多资源进行适配。...这样好处在于,在大小相近屏幕中,无论分辨率多大都不会对布局造成影响;但是当屏幕大小相差较大时,仅保证控件绝对大小看起来就有些问题了。...在res目录下可以给各资源目录都加上例如'-1920x1080'等后缀来适配不同屏幕,具体规则可见官网文档。这样可以针对不同屏幕提供不同布局,甚至针对pad手机提供两套完全不同布局样式。...public,不用反射就能修改; pt原意是长度单位磅,根据当前屏幕设计图尺寸将metrics.xdpi进行修改就可以实现将pt这个单位重定义成我们所需要相对长度单位,使修改之后计算出1pt...,无论大小看起来就只是将设计图缩放之后结果。

81730
领券