Android 性能优化大全
整理所有常见的性能优化解决方法
程序邦
1. 擅长Android 开发
2. 擅长React Native 跨平台开发
展开
-
Android性能优化(七)之你真的理解ANR吗?
转载自:https://juejin.im/post/58e5bd6dda2f60005fea525c1、 前言在上一篇文章《Android性能优化(六)之卡顿那些事》中,我们提到了卡顿的成因、检测卡顿的途径以及避免卡顿的方法。卡顿在扩大就会产生大名鼎鼎的ANR(Application Not Responding),然后告诉用户你的App无响应,继续等待或者强制关闭,很大的概率用户可能会顺手卸载...转载 2018-02-09 14:06:51 · 560 阅读 · 0 评论 -
Android 性能优化(八)之网络优化
转载自:https://juejin.im/post/58ef22e3b123db0058214c601、 前言移动互联网发展到现在,用户的联网方式已经完成了由流量依赖到Wifi依赖的转变。虽然网络环境在变好,但也对网络的应用提出了更高的要求,同时开发人员对网络的重视度却在下降。确实Wifi场景下用户的网络质量变好了,而且用户对网络流量消耗的敏感度也在下降。但是对网络问题的忽视,在网络状态不好的场...转载 2018-02-09 14:10:13 · 586 阅读 · 0 评论 -
Android开发性能优化大总结
一.Android相关1. 采用硬件加速,在androidmanifest.xml中application添加android:hardwareAccelerated="true"。不过这个需要在android 3.0才可以使用。android4.0这个选项是默认开启的。2. View中设置缓存属性.setDrawingCache为true.3. 优化你的布局。通过Andr转载 2015-01-12 16:12:07 · 669 阅读 · 0 评论 -
内存分析工具 MAT 的使用
1.内存泄露排查方法Dalvik Debug Monitor Server (DDMS) 是 ADT插件的一部分,其中有两项功能可用于内存检查 :· heap 查看堆的分配情况· allocation tracker跟踪内存分配情况DDMS 这两项功能有助于找到内存泄漏的操作行为。Eclipse Memory Analysis Tools转载 2015-01-20 11:48:10 · 488 阅读 · 0 评论 -
程序员必备的代码审查(Code Review)清单
在我们关于高效代码审查的博文中,我们建议使用一个检查清单。在代码审查中,检查清单是一个非常好的工具——它们保证了审查可以在你的团队中始终如一的进行。它们也是一种保证常见问题能够被发现并被解决的便利方式。软件工程学院的研究表明,程序员们会犯15-20种常见的错误。所以,通过把这些错误加入到检查清单当中,你可以确保不论什么时候,只要这些错误发生了,你就能发现它们,并且可以帮助你杜绝这些错误。转载 2015-02-06 14:59:34 · 580 阅读 · 0 评论 -
Android内存优化大全(全)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持!写在最前:本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总、挑选、简化后整理而成。所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,或者就是单纯转载 2015-02-27 11:01:13 · 551 阅读 · 0 评论 -
Android内存泄露案例分析
转载自:http://www.csdn.net/article/2015-09-07/2825631一款优秀的Android应用,不仅要有完善的功能,也要有良好的体验,而性能是影响体验的一个重要因素。内存泄露是Android开发中常见的性能问题。这篇文章,通过我们曾经遇到的一个真实的案例,来讲述一个内存泄露问题,从发现到分析定位,再到最终解决的全过程。这里把整个过程分为四个阶段转载 2015-09-07 15:52:11 · 744 阅读 · 0 评论 -
Android性能分析工具常用汇总
Android性能分析工具整理汇总把做Android开发以来碰到的一些不错的性能分析工具做个整理汇总...Debug GPU Overdraw类型:系统自带功能UI渲染检测功能(打开Settings,然后到 Developer Options -> Debug GPU Overdraw 选择 Show overdraw areas,手机系统设置中文的孩纸,自行对照翻译进去哈)作用:转载 2016-10-17 11:17:22 · 2403 阅读 · 0 评论 -
Android内存优化- 严苛模式StrictMode使用详解
StrictMode具体能检测什么严苛模式主要检测两大问题,一个是线程策略,即TreadPolicy,另一个是VM策略,即VmPolicy。ThreadPolicy线程策略检测线程策略检测的内容有自定义的耗时调用 使用detectCustomSlowCalls()开启磁盘读取操作 使用detectDiskReads()开启磁盘写入操作 使用detectDiskWrites(原创 2016-12-30 11:15:58 · 838 阅读 · 0 评论 -
Android内存优化-Systrace分析UI性能
Systrace前言Systrace允许你跟踪系统的行踪(trace),它可以告诉你在哪些线程、进程在这段时间内都做了什么,都把时间花在哪里,然后通过系统的提示优化点从而找到那些不足的代码来进行优化。图形界面启动:Systrace界面预览通过上面的步骤之后就会在规定的目录下生成一份html文件然后打开后就可以看到了如下的界面。原创 2016-12-30 11:54:02 · 673 阅读 · 0 评论 -
Android 内存优化- ANR 详解
1.1 何为ANRANR全名Application Not Responding, 也就是"应用无响应". 当操作在一段时间内系统无法处理时, 系统层面会弹出上图那样的ANR对话框.1.2 为什么会产生ANR5s内无法响应用户输入事件(例如键盘输入, 触摸屏幕等).BroadcastReceiver在10s内无法结束.造成以上两种情况的首要原因就是在主线程(UI线程)里原创 2016-12-30 14:11:59 · 1025 阅读 · 0 评论 -
Android 内存优化-消除卡顿
1, 感知卡顿用户对卡顿的感知, 主要来源于界面的刷新. 而界面的性能主要是依赖于设备的UI渲染性能. 如果我们的UI设计过于复杂, 或是实现不够好, 设备又不给力, 界面就会像卡住了一样, 给用户卡顿的感觉.1.1 16ms原则在剖析卡顿的原因之前, 我们先来了解下Android中著名的"16ms"原则:Android系统每隔16ms会发出VSYNC信号重绘我们的界面(A转载 2016-12-30 14:15:31 · 722 阅读 · 0 评论 -
Android 内存优化-常见内存泄露
作为Android开发人员,我们或多或少都听说过内存泄漏。那么何为内存泄漏,Android中的内存泄漏又是什么样子的呢,本文将简单概括的进行一些总结。关于内存泄露的定义,我可以理解成这样没有用的对象无法回收的现象就是内存泄露如果程序发生了内存泄露,则会带来如下的问题应用可用的内存减少,增加了堆内存的压力降低了应用的性能,比如会触犯更频繁的GC严重原创 2016-12-30 14:40:27 · 324 阅读 · 0 评论 -
Android 内存优化-实例
对于C++来说,内存泄漏就是new出来的对象没有delete,俗称野指针;对于Java来说,就是new出来的Object 放在Heap上无法被GC回收;本文通过QQ和Qzone中内存泄漏实例来讲android中内存泄漏分析解法和编写代码应注意的事项。Java 中的内存分配静态储存区:编译时就分配好,在程序整个运行期间都存在。它主要存放静态数据和常量;栈区原创 2016-12-30 14:48:51 · 356 阅读 · 0 评论 -
Android 内存优化-实例讲解MAT
内存泄漏(memory leak)是指由于疏忽或错误造成程序未能释放已经不再使用的内存。那么在Android中,当一个对象持有Activity的引用,如果该对象不能被系统回收,那么当这个Activity不再使用时,这个Activity也不会被系统回收,那这么以来便出现了内存泄漏的情况。在应用中内出现一次两次的内存泄漏获取不会出现什么影响,但是在应用长时间使用以后,若是存在大量的Activity无法转载 2016-12-30 15:02:57 · 361 阅读 · 0 评论 -
一、Android性能优化(渲染机制、内存与GC、电量优化)带工具找问题
主要从 Android 的渲染机制、内存与 GC、电量优化三个方面展开,介绍了 Android 中性能问题的底层工作原理,以及如何通过工具来找出性能问题及提升性能的建议。卡顿等性能问题的最主要根源都是因为渲染性能,从设计师的角度,他们希望App能够有更多的动画,图片等时尚元素来实现流畅的用户体验,但是Android系统很有可能无法及时完成那些复杂的界面渲染操作。Andr原创 2017-02-24 18:20:26 · 639 阅读 · 0 评论 -
Android性能优化二 电量优化、网络优化、对象池、bitmap解码率
大纲电量优化、网络优化、Android Wear上如何做优化、使用对象池来提高效率、LRU Cache、Bitmap的缩放、缓存、重用、PNG压缩、自定义View的性能、提升设置alpha之后View的渲染性能,以及Lint、StictMode等工具的使用技巧对于手机程序,网络操作相对来说是比较耗电的行为。优化网络操作能够显著节约电量的消耗。当程序想要执行某个网络请求之转载 2017-02-26 15:30:26 · 759 阅读 · 0 评论 -
Android性能优化三 ArrayMap 自动装箱 预取数据
程序内存的管理是否合理高效对应用的性能有着很大的影响,有的时候对容器的使用不当也会导致内存管理效率低下。Android为移动操作系统特意编写了一些更加高效的容器,例如SparseArray,今天要介绍的是一个新的容器,叫做 ArrayMap。我们经常会使用到HashMap这个容器,它非常好用,但是却很占用内存。下图演示了HashMap的简要工作原理: 为了解决HashM转载 2017-02-26 15:46:15 · 586 阅读 · 0 评论 -
Android性能优化四 优化网络请求 优化安装包的资源文件
1) Cachematters for networking想要使得Android系统上的网络访问操作更加的高效就必须做好网络数据的缓存,这是提高网络访问性能最基础的步骤之一。从手机的缓存中直接读取数据肯定比从网络上获取数据要更加的便捷高效,特别是对于那些会被频繁访问到的数据,需要把这些数据缓存到设备上,以便更加快速的进行访问。Android系统上关于网络请求的Http Respo转载 2017-02-27 17:15:02 · 1338 阅读 · 0 评论 -
Android性能优化5 多线程并发的性能问题所幸的是,Android系统为我们提供了Looper、Handler、MessageQueue来帮助实现上面的线程任务模型: Looper: 能够确保线
1) Threading Performance在程序开发的实践当中,为了让程序表现得更加流畅,我们肯定会需要使用到多线程来提升程序的并发执行性能。但是编写多线程并发的代码一直以来都是一个相对棘手的问题,所以想要获得更佳的程序性能,我们非常有必要掌握多线程并发编程的基础技能。众所周知,Android程序的大多数代码操作都必须执行在主线程,例如系统事件(例如设备屏幕发生旋转)转载 2017-02-27 17:47:55 · 1416 阅读 · 0 评论 -
Android性能调优 ViewPager+Fragment+RecyclerView
1.使用FragmentStateAdapter 来保证内存最多保存三个Fragment来减少内存增长2.对于快速滑动的RecyclerView通过滑动系统配比来降低滑动速度public class TvRecyclerView extends RecyclerView { private static final String TAG = "TvRecyclerView"原创 2017-08-22 13:55:49 · 2955 阅读 · 0 评论 -
Android 性能优化之Loading Big Bitmaps
高效加载Large Bitmaps加载大Bitmaps到内存中,总是会有各种各样的问题,我们在开发过程中,经常会遇到因为图片资源过大导致OOM。我们应该始终留意在Android中每一个应用占用的内存大小是有上限的,过了这个上限,系统就回报OOM,用户体验非常差。今天我们就聊一聊如何加载Large Bitmaps,了解以下它具体是如何工作的。这篇文章只是用来聊一聊加载Bi原创 2017-08-31 17:19:10 · 319 阅读 · 0 评论 -
如何优化你的布局层级结构之RelativeLayout和LinearLayout及FrameLayout性能分析
转载自:http://blog.csdn.net/hejjunlin/article/details/51159419转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/51159419如何优化你的布局层级结构之RelativeLayout和LinearLayout及FrameLayout性能分析工作一段转载 2017-09-06 16:48:07 · 430 阅读 · 0 评论 -
Android开发优化之——使用软引用和弱引用
Java从JDK1.2版本开始,就把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。这里重点介绍一下软引用和弱引用。如果一个对象只具有软引用,那么如果内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的原创 2017-09-13 14:52:56 · 223 阅读 · 0 评论 -
Android 性能优化:使用 Lint 优化代码、去除多余资源
读完本文你将了解到:前言什么是 LintLint 工作方式简单介绍从命令行运行 LintAndroid Studio 中使用 Lint团队中建立代码规范利器提升降低问题的等级Lint 虽好也不能贪杯在 Java 代码中忽略 Lint 警告在 XML代码中忽略 Lint 警告Gradle 中配置 Lint自动删除查找出来的无用资源文件总结Thanks原创 2017-09-14 18:44:21 · 378 阅读 · 0 评论 -
APP弱网络条件下,体验优化之道
APP弱网络条件下,体验优化之道最近跟朋友聊天刚好聊到这一块,他们是在做电商业务,商品图片及其多,API接口请求频率也高。然而,他们在移动2/3G的网络环境下,APP经常会出现Loading很久的情况,这里我把我们所分析与使用到的网络优化方案与大家分享一下。所谓的弱网络,也就是指在网络不好的条件下进行使用APP,如2G、3G网络,这类网络条件下,用户的网络速度基本维原创 2017-11-13 14:14:20 · 1281 阅读 · 0 评论 -
携程App的网络性能优化实践
转载自:http://www.infoq.com/cn/articles/how-ctrip-improves-app-networking-performance首先介绍一下携程App的网络服务架构。由于携程业务众多,开发资源导致无法全部使用Native来实现业务逻辑,因此有相当一部分频道基于Hybrid实现。网络通讯属于基础&业务框架层中基础设施的一部分,为App提供统一的网络服务转载 2017-11-22 15:34:30 · 387 阅读 · 0 评论 -
WebView性能、体验分析与优化
转载自:https://tech.meituan.com/WebViewPerf.html在App开发中,内嵌WebView始终占有着一席之地。它能以较低的成本实现Android、iOS和Web的复用,也可以冠冕堂皇的突破苹果对热更新的封锁。然而便利性的同时,WebView的性能体验却备受质疑,导致很多客户端中需要动态更新等页面时不得不采用其他方案。以发展的眼光来看,功转载 2017-12-27 09:29:00 · 1321 阅读 · 0 评论 -
手机淘宝性能优化
转载自:https://yq.aliyun.com/articles/53?spm=5176.8067842.tagmain.39.hiIWFT该文章来自于阿里巴巴技术协会(ATA)精选文章。手机淘宝性能优化前言为了满足不同用户的多样性购物需求,过去两年里手淘的业务不断膨胀,已经从单一的购物工具成为了购物内容平台。在手淘业务快速增长的同时,也带来一些副作用,转载 2018-01-09 14:41:19 · 959 阅读 · 0 评论 -
Android开发中必备的代码Review清单
前言本文收集了我自己工作以来提交代码前的所有检查点。事实证明,这样能有效提高自己的代码质量和功能的稳定性。所以推荐大家以后每次提交代码前,都可以看下这份Review清单哈。此外,可能还有些检查点我并没有发现,欢迎大家踊跃在评论区补充哈~清理操作1.页面退出时,是否完成必要的清理操作是否调用Handler的removeCallbacksAndMessages(null)来清空Handle原创 2018-01-10 10:04:39 · 293 阅读 · 0 评论 -
Android性能优化(一)之启动加速35%
转载自:https://juejin.im/post/5874bff0128fe1006b443fa0一、前言随着项目版本的迭代,App的性能问题会逐渐暴露出来,而好的用户体验与性能表现紧密相关,从本篇文章开始,我将开启一个Android应用性能优化的专题,从理论到实战,从入门到深挖,手把手将性能优化实践到项目中,欢迎持续关注!那么第一篇文章我就从应用的启动优化开始,根据实转载 2018-02-06 09:57:28 · 271 阅读 · 0 评论 -
Android 性能优化(二)之布局优化面面观
转载自:https://juejin.im/post/58a442b661ff4b006c8a63f5Android 性能优化(二)之布局优化面面观一、初识布局优化通过《Android性能优化(一)之启动加速35%》我们获得了闪电般的App启动速度,那么在应用启动完毕之后,UI布局也会对App的性能产生比较大的影响,如果布局写得糟糕,显而易见App的表现不可能流畅。转载 2018-02-06 10:51:45 · 250 阅读 · 0 评论 -
Android性能优化(三)之内存管理
1、初识内存优化在Android的性能优化的各个部分里,内存的问题绝对是最令人头疼的一部分,虽然Android有垃圾自动回收机制不需要手动干预,但也恰因为此,出现内存问题如内存泄漏和内存溢出等,如果对内存管理机制不熟悉,会更加难以排查问题。因为内存方面的知识较多且不易理解,内存优化部分就分两篇文章进行,本文主要是关于Java、Android的内存分配、回收、GC等理论知识。2、内存分配转载 2018-02-07 10:11:46 · 367 阅读 · 0 评论 -
Android 性能优化(四)之内存优化实战
转载自:https://juejin.im/post/58b80c3b61ff4b006cd8c33d在上一篇《Android性能优化(三)之内存管理》中我们对Android的内存管理有了一定的认识,本篇文章从实际出发对内存进行优化,主要包含以下部分:1. Memory Leak内存泄漏:对于Java来说,就是new出来的Object 放在Heap上无法被GC回收(内存中存转载 2018-02-07 10:24:17 · 399 阅读 · 0 评论