探析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 层的原理,这对我们自身来说,也是正向的收益。

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

相关文章
|
14天前
|
缓存 监控 Android开发
探索iOS与安卓开发中的性能优化策略
在移动应用开发的竞技场上,iOS和安卓这两大操作系统不断推动着技术的边界。性能优化,作为提升用户体验的关键因素,已成为开发者们关注的焦点。本文将深入探讨两大平台上的性能优化实践,揭示如何通过工具、技术和策略来提升应用的响应速度和流畅度,同时考虑到电池寿命和内存管理等关键指标。
|
22天前
|
存储 Java 编译器
🔍深入Android底层,揭秘JVM与ART的奥秘,性能优化新视角!🔬
【7月更文挑战第28天】在Android开发中,掌握底层机制至关重要。从Dalvik到ART, Android通过采用AOT编译在应用安装时预编译字节码至机器码,显著提升了执行效率。ART还优化了垃圾回收,减少内存占用及停顿。为了优化性能,可减少DEX文件数量、优化代码结构利用内联等技术、合理管理内存避免泄漏,并使用ART提供的调试工具。
51 7
|
22天前
|
XML 缓存 Android开发
🎯解锁Android性能优化秘籍!让你的App流畅如飞,用户爱不释手!🚀
【7月更文挑战第28天】在移动应用竞争中,性能是关键。掌握Android性能优化技巧对开发者至关重要。
24 2
|
29天前
|
存储 缓存 Java
Android性能优化:内存管理与LeakCanary技术详解
【7月更文挑战第21天】内存管理是Android性能优化的关键部分,而LeakCanary则是进行内存泄漏检测和修复的强大工具。
|
29天前
|
缓存 数据库 Android开发
安卓应用开发中的性能优化策略
【7月更文挑战第21天】在移动设备上,性能问题直接影响用户体验。本文将探讨在安卓应用开发过程中,开发者可以采用的多种性能优化方法。我们将从代码层面、资源管理、网络通信、UI渲染等方面入手,深入分析如何有效减少应用的内存占用和提升响应速度。此外,文章还将介绍一些实用的工具和平台,帮助开发者检测和解决性能瓶颈。
43 1
|
1月前
|
算法 Java API
Android性能优化面试题经典之ANR的分析和优化
Android ANR发生于应用无法在限定时间内响应用户输入或完成操作。主要条件包括:输入超时(5秒)、广播超时(前台10秒/后台60秒)、服务超时及ContentProvider超时。常见原因有网络、数据库、文件操作、计算任务、UI渲染、锁等待、ContentProvider和BroadcastReceiver的不当使用。分析ANR可借助logcat和traces.txt。主线程执行生命周期回调、Service、BroadcastReceiver等,避免主线程耗时操作
34 3
|
2月前
|
缓存 JSON 网络协议
Android面试题:App性能优化之电量优化和网络优化
这篇文章讨论了Android应用的电量和网络优化。电量优化涉及Doze和Standby模式,其中应用可能需要通过用户白名单或电池广播来适应限制。Battery Historian和Android Studio的Energy Profile是电量分析工具。建议减少不必要的操作,延迟非关键任务,合并网络请求。网络优化包括HTTPDNS减少DNS解析延迟,Keep-Alive复用连接,HTTP/2实现多路复用,以及使用protobuf和gzip压缩数据。其他策略如使用WebP图像格式,按网络质量提供不同分辨率的图片,以及启用HTTP缓存也是有效手段。
55 9
|
1月前
|
算法 数据库 Android开发
探索iOS与安卓应用开发的性能优化策略
在移动应用开发领域,性能优化是提升用户体验、增强应用市场竞争力的关键因素。本文深入探讨了iOS和安卓平台下,开发者如何通过具体技术和方法有效优化应用性能。文章首先概述了性能优化的重要性,随后详细分析了iOS和安卓开发中的优化策略,包括代码优化、资源管理和异步处理等技术手段。最后,通过案例分析,展示了这些优化措施在实际开发中的应用效果,旨在为开发者提供实用的性能提升建议。
|
2月前
|
Java Android开发 Kotlin
Android面试题:App性能优化之Java和Kotlin常见的数据结构
Java数据结构摘要:ArrayList基于数组,适合查找和修改;LinkedList适合插入删除;HashMap1.8后用数组+链表/红黑树,初始化时预估容量可避免扩容。SparseArray优化查找,ArrayMap减少冲突。 Kotlin优化摘要:Kotlin的List用`listOf/mutableListOf`,Map用`mapOf/mutableMapOf`,支持操作符重载和扩展函数。序列提供懒加载,解构用于遍历Map,扩展函数默认参数增强灵活性。
25 0
|
2月前
|
Java Android开发
Android性能优化:直播推流使用对象池
Android性能优化:直播推流使用对象池
17 0