探析Android中的四类性能优化(二)

简介: 在上一篇文章 初识性能优化 中我们提到我们需要从流畅性优化、资源优化、稳定性优化 和 系统级优化 这四个层面来对Android中的软件做优化。

资源优化

资源是什么?

资源指的是:Android 手机的软件和硬件资源,通俗意义上应用依赖于移动端的有限资源和系统规定的数值。例如:功耗、存储、流量、系统参数、CPU、内存等。

我们对上述的资源进行优化的时候,其并非无关联的、相互隔离的,例如流量消耗大,那么功耗消耗也会大,内存和存储的消耗也会大。但是我们需要优化某一个点的时候,是需要聚焦于其中这一点进行优化的。

当然,如前文所说我们使用的设备也是在不断地优化的,但是并非说等着硬件的优化,我们的软件能跑就行。对于资源优化,我们追求的是利用最小的资源达到最好的效果,这是很有挑战性,对自我提升也很高的事情。

Android 能做哪些资源优化

1.webp.jpg1.webp.jpg

上图中展示了对于当下技术特征的满意度,我们会发现上述的点其实都不算高。无论是内存/存储、电量或者是流量等等方面都是需要我们继续优化的点。而右图指的是如果后台的进程如果很多的话,使得内存占用很多,导致前台的APP也会收到内存的限制变得卡顿。

1.webp.jpg

上图中对音量的优化其实收益也是很大的。例如当下的自媒体平台抖音,它就是在端侧进行了音量优化,取得了很大的收益。因为每一个人拍视频的音量和背景嘈杂度都是不一样的,所以我们需要在上传视频到平台的时候进行音量优化,对各种音量进行优化、拟合到同一水平,这样子可以使得用户在打开不同视频的时候,视频的音量不会影响到用户的体验。

1.webp.jpg1.webp.jpg

而对于亮度的优化,可以使得我们的功耗降低,节省手机有限的电量。上面左图可以看出,深色模式对电量的影响是很显著的。而同时在优化亮度的时候,我们也可以找出功耗与体验的平衡点,使得功耗低的时候,我们的体验感也是最好的。这一点可以在右图中看出。


稳定性优化

1.webp.jpg

对于稳定性优化,我们主要讲的点是 ANR,而其他的崩溃等则是需要尽可能的抹去,这里暂不做分析。ANR 是应用长时间处于阻塞状态的时候,系统会触发 ANR ,然后系统会询问是否需要强制退出或者继续等待。

ANR 存在的的原因是我们不能因为一个程序出现问题就使得整个手机无法使用。所以需要 ANR 来将错误的程序退出。而我们对其优化则需要尽可能的减少这种情况的出现,使得用户被打断,这是一种很不好的体验。

诊断 ANR 时需要考虑以下几种常见模式:

  1. 应用在主线程上非常缓慢地执行涉及 I/O 的操作。
  2. 应用在主线程上进行长时间的计算。
  3. 主线程在对另一个进程进行同步 binder 调用,而后者需要很长时间才能返回。
  4. 主线程处于阻塞状态,为发生在另一个线程上的长操作等待同步的块。
  5. 主线程在进程中或通过 binder 调用与另一个线程之间发生死锁。主线程不只是在等待长操作执行完毕,而且处于死锁状态。

系统级优化

1.webp.jpg

对于 Android 系统,Google 本身也对其系统做了很多重大的优化,这些优化使得 Android 系统很多的问题得以解决,很多使用体验变得更好。而这些优化的点,我们可以作为今后的思路,让我们对 APP 的优化有更广阔的思考,让我们能发掘出更多的优化点和对其有更加深刻的思考

1.webp.jpg

对于业务开发中,我们很多时候都是使用到 Application 和 FrameWork 层,但是需要真正做好性能优化,我们需要了解到很多的 核心库 Kernel 层的原理,这对我们自身来说,也是正向的收益。

本篇四大性能优化的详解就讲到这里,

相关文章
|
29天前
|
开发框架 前端开发 Android开发
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
117 4
|
2月前
|
算法 数据处理 Android开发
掌握安卓性能优化的秘诀:电池寿命与运行效率的提升
【10月更文挑战第6天】 本文深入探讨了安卓应用开发中的性能优化技巧,重点分析了影响电池寿命和运行效率的关键因素,并提供了针对性的优化策略。通过代码优化、资源管理、后台任务处理等方法,开发者可以显著提升应用的续航能力和流畅度。同时,结合具体案例,展示了如何在实际开发中应用这些技巧,确保应用在各种场景下都能保持高效运行。本文旨在为安卓开发者提供实用的性能优化指导,助力其打造更优质的应用体验。
70 2
|
21天前
|
网络协议 Linux Android开发
深入探索Android系统架构与性能优化
本文旨在为读者提供一个全面的视角,以理解Android系统的架构及其关键组件。我们将探讨Android的发展历程、核心特性以及如何通过有效的策略来提升应用的性能和用户体验。本文不包含常规的技术细节,而是聚焦于系统架构层面的深入分析,以及针对开发者的实际优化建议。
35 1
|
1月前
|
Android开发 开发者
Android性能优化——内存管理的艺术
Android性能优化——内存管理的艺术
|
1月前
|
Android开发 开发者 UED
安卓开发中自定义View的实现与性能优化
【10月更文挑战第28天】在安卓开发领域,自定义View是提升应用界面独特性和用户体验的重要手段。本文将深入探讨如何高效地创建和管理自定义View,以及如何通过代码和性能调优来确保流畅的交互体验。我们将一起学习自定义View的生命周期、绘图基础和事件处理,进而探索内存和布局优化技巧,最终实现既美观又高效的安卓界面。
38 5
|
1月前
|
缓存 数据库 Android开发
安卓开发中的性能优化技巧
【10月更文挑战第29天】在移动应用的海洋中,性能是船只能否破浪前行的关键。本文将深入探讨安卓开发中的性能优化策略,从代码层面到系统层面,揭示如何让应用运行得更快、更流畅。我们将以实际案例和最佳实践为灯塔,引领开发者避开性能瓶颈的暗礁。
57 3
|
2月前
|
存储 缓存 网络协议
5个Android性能优化相关的深度面试题
本文涵盖五个Android面试题及其解答,包括优化应用启动速度、内存泄漏的检测与解决、UI渲染性能优化、减少内存抖动和内存溢出、优化网络请求性能。每个问题都提供了详细的解答和示例代码。
31 2
|
2月前
|
监控 测试技术 Android开发
掌握安卓性能优化的关键策略
【10月更文挑战第7天】 在移动应用开发领域,性能优化是一项至关重要的任务。本文将探讨安卓应用性能优化的重要性、关键策略以及实际操作建议,帮助开发者提升应用的用户体验和竞争力。通过深入浅出的方式,我们将从背景介绍到具体实践,全面解析安卓性能优化的各个维度。
|
3月前
|
存储 Java 编译器
🔍深入Android底层,揭秘JVM与ART的奥秘,性能优化新视角!🔬
【9月更文挑战第12天】在Android开发领域,深入了解其底层机制对提升应用性能至关重要。本文详述了从早期Dalvik虚拟机到现今Android Runtime(ART)的演变过程,揭示了ART通过预编译技术实现更快启动速度和更高执行效率的奥秘。文中还介绍了ART的编译器与运行时环境,并提出了减少DEX文件数量、优化代码结构及合理管理内存等多种性能优化策略。通过掌握这些知识,开发者可以从全新的角度提升应用性能。
79 11
|
3月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
160 0