随笔分类 - 性能优化
摘要:1、使用ConstraintLayout减少布局层级。 2、可以的话,设置RecyclerView布局等高,然后设置recyclerView.setHasFixedSize(true)这样可以避免每次绘制Item时,不再重新计算Item高度。 3、根据需求修改RecyclerView默认的绘制缓存选
阅读全文
摘要:在开发中UI布局是我们都会遇到的问题,随着UI越来越多,布局的重复性、复杂度也会随之增长。Android官方给了几个优化的方法,但是网络上的资料基本上都是对官方资料的翻译,这些资料都特别的简单,经常会出现问题而不知其所以然。这篇文章就是对这些问题的更详细的说明,也欢迎大家多留言交流。 一、inclu
阅读全文
摘要:8. 用缓存避免内存泄漏 很常见的一个例子就是图片的三级缓存结构,分别为网络缓存,本地缓存以及内存缓存。在内存缓存逻辑类中,通常会定义这样的集合类。 [java] view plain copy private HashMap<String, Bitmap> mMemoryCache = new H
阅读全文
摘要:内存泄漏主要为activity泄漏有几大情景: 1,内部类泄漏 内部类持有外部类,但外部类关闭时内部类依然被持有造成泄漏 2,静态常量泄漏 静态变量长期维持到大数据对象的引用,阻止垃圾回收 3,资源未关闭泄漏 资源性对象如Cursor、Stream、Socket,Bitmap 4,注册反注册泄漏 我
阅读全文
摘要:1:DecorView的高度 DecorView的高度代表的是: 整个装饰窗口的高度, 这个高度包括:状态烂的高度和导航栏的高度.(状态栏和导航栏通常叫做装饰窗口, 而ActionBar不属于装饰窗口) 这个高度, 可以代表着整个玻璃屏幕的高度. 2.Window的RootView的高度 RootV
阅读全文
摘要:摘要 一、DecorView为整个Window界面的最顶层View。 二、DecorView只有一个子元素为LinearLayout。代表整个Window界面,包含通知栏,标题栏,内容显示栏三块区域。 三、LinearLayout里有两个FrameLayout子元素。 (20)为标题栏显示界面。只有
阅读全文
摘要:1.知识储备 CPU: 中央处理器,它集成了运算,缓冲,控制等单元,包括绘图功能.CPU将对象处理为多维图形,纹理(Bitmaps、Drawables等都是一起打包到统一的纹理). GPU:一个类似于CPU的专门用来处理Graphics的处理器, 作用用来帮助加快格栅化操作,当然,也有相应的缓存数据
阅读全文
摘要:关于什么是Hierarchy Viewer,请查看官方文档:http://developer.android.com/tools/debugging/debugging-ui.html。个人理解:Hierarchy Viewer能获得当前手机实时的UI信息,给界面设计人员和自动化测试人员带来极大的便
阅读全文
摘要:前言 最近看到这篇文章《Android UI性能优化详解》,里面使用了Hierarchy Viewer来对布局进行优化。开发android这么久了,一直都有听过这个工具,但是重来都没真正去使用过,不得不说是一种失败。现在刚好趁着空闲,研究一下Hierarchy Viewer的使用方法。 启动Andr
阅读全文
摘要:对于Android用户来说,无论你用的什么品牌的手机,在开发者选项中都能发现“玄学曲线”的开关,之所以称其为玄学曲线,还是因为它被很多网友用于测试一个说不清道不明的东西——流畅度。到底多流畅才叫流畅,多卡才叫卡,标准是什么?用玄学曲线判断流畅度到底靠不靠谱儿?今天,就教你如何看懂这玄学曲线。 说到玄
阅读全文
摘要:clipRect 介绍 博客分类: android clipRect 介绍 android android的clip有以下两点疑问: Clip(剪切)的时机 Clip中的Op的参数的意思。 通常咱们理解的clip(剪切),是对已经存在的图形进行clip的。但是,在android上是对canvas(画
阅读全文
摘要:有点小啰嗦的一篇学习笔记,可以直接看最后得出的结论:前面的各种图片和说明都是为最后的结论服务的 1)剪切:和平常画图工具剪切的作用一样,在画布上剪切一个区域,比如剪切一个Rect区域,画布canvas其余的部分都丢掉,之后所有的画图都在这个Rect区域内进行(如果不涉及save和restore方法)
阅读全文
摘要:平移、缩放、旋转等操作等于是,我在一个正的画布绘制好图,然后再把画布做旋转、平移、缩放等等的效果。 也就是说,我使用的X、Y坐标还是正常的坐标(没旋转、平移、缩放等之前的坐标)。 save()和restore()是用来规定操作的范围的。 如果有save()和restore(),那么平移、缩放、旋转等
阅读全文
摘要:[java] view plain copy <span style="font-size:18px;"> </span> [java] view plain copy <span style="font-size:18px;"></span> 绘图之前,首先需要调整画笔,待画笔调整好之后,再将图像
阅读全文
摘要:今天楼主遇到引用LeakCanary时代码跟官网一样但是就不弹出来。楼主新建项目就可以正常使用。楼主郁闷半天,现在终于整出来了。 楼主主工程app引用module为thirdParty,本想为了整洁三方的都扔进这个thirdParty 结果导致了这个没弄出来。 1.写一个application :
阅读全文
摘要:经典的面试题: a、怎样在coding过程中避免内存泄露? b、怎样检测内存泄露? 这两个问题我想大部分Android 职位面试时都会被问到吧。 怎样避免就不赘述了,网上很多答案。 工具呢,当然也有很多,比如DDMS、MAT等,但是怎样在我们编码过程中植入内存检测代码,让我们程序在开发调试阶段就能发
阅读全文
摘要:上一篇文章楼主提到由Context引发的内存泄漏,在这一篇文章里,我们来谈谈Android开发中常见的Activity内存泄漏及解决办法。本文将会以“为什么”“怎么解决”的方式来介绍这几种内存泄漏。 在开篇之前,先来了解一下什么是内存泄漏。 什么是内存泄漏? 内存泄漏是当程序不再使用到的内存时,释放
阅读全文
摘要:LeakCanary 中文使用说明 10 May 2015 10 May 2015 LeakCanary Android 和 Java 内存泄露检测。 “A small leak will sink a great ship.” - Benjamin Franklin 千里之堤, 毁于蚁穴。 --
阅读全文
摘要:LeakCanary: 让内存泄露无所遁形 09 May 2015 09 May 2015 本文为LeakCanary: Detect all memory leaks!的翻译。原文在: https://corner.squareup.com/2015/05/leak-canary.html jav
阅读全文
摘要:之前碰到的OOM问题,终于很直白的呈现在我的眼前:我尝试了MAT,但是发现不怎么会用。直到今天终于发现了这个新工具: 当我们的App中存在内存泄露时会在通知栏弹出通知: 当点击该通知时,会跳转到具体的页面,展示出Leak的引用路径,如下图所示: LeakCanary 可以用更加直白的方式将内存泄露展
阅读全文

浙公网安备 33010602011771号