内存及布局
lxn_李小牛
Where you spend your time on,The Time will let you become what kind of person
展开
-
Android Studio 使用 lint 优化代码
一.概述Android Lint是在ADT 16(和 Tools 16)引入的一个新工具,可以扫描Android 项目源码中潜在的bug 。例如:缺少翻译(和未使用的翻译)布局性能问题(老的layoutopt工具会用于查找所有这样的问题,和除此之外更多的问题)未使用的资源不一致的数组大小(当在多个配置中定义数组)可访问性和国际化问题(硬编码字符串,缺少contentDescription等原创 2016-01-23 20:24:07 · 3077 阅读 · 0 评论 -
Android内存泄露之Context
一.概述最近想研究一下Android中的内存泄露,今天我们先看看最简单而且比较容易发生的一种内存泄露情况,Context泄露,最近也看了几篇文章,下面分析一下:先作个总结: 1.getApplicationContext()可以取到Application对象,而getContext()通常认为返回Activity对象(当然,事实上并不局限于Activity)。 2.对于Application,从原创 2016-02-20 13:46:38 · 426 阅读 · 0 评论 -
Android App 内存泄露之Handler
一.概述Handler是我们开发中经常用到的一个类,其实Handler是造成内存泄漏的一个重要源头,主要就是因为和Activity的生命周期不一致导致的,Hanlder引用Activity会造成内存泄漏。看一下如下代码开发工具提示我们,这个Hanlder类应该声明为静态的,否则可能发生内存泄漏。 为什么会出现这样的问题?Handler的生命周期和Activity不一致当Android应用启动的时原创 2016-02-02 09:40:07 · 707 阅读 · 0 评论 -
Android为什么要设计出Bundle而不是直接使用HashMap来进行数据传递?
Bundle内部是由ArrayMap实现的,ArrayMap的内部实现是两个数组,一个int数组是存储对象数据对应下标,一个对象数组保存key和value,内部使用二分法对key进行排序,所以在添加、删除、查找数据的时候,都会使用二分法查找,只适合于小数据量操作,如果在数据量比较大的情况下,那么它的性能将退化。而HashMap内部则是数组+链表结构,所以在数据量较少的时候,HashMap的Entry转载 2016-03-27 10:22:18 · 931 阅读 · 0 评论 -
Android使用MAT分析内存泄露
一.概述首先来普及一下什么是内存泄露: 内存泄露是指对象的内存在分配之后无法通过程序的执行逻辑释放对该对象的引用,导致不能回收该对象所占内存。 内存泄露会导致一下情况: 1.程序卡顿,响应速度慢(内存占用高时JVM虚拟机会频繁触发GC) 2.莫名消失(当你的程序所占内存越大,它在后台的时候就越可能被干掉。反之内存占用越小,在后台存在的时间就越长) 3.直接崩溃(OutOfMemoryErr原创 2016-02-21 15:44:22 · 526 阅读 · 0 评论 -
HierarchyViewer结合merge标签优化布局结构
今天给大家介绍一下一种优化Android布局的方法,我们这里需要用到一个工具,HierarchyViewer,这是Android自带的一个布局结构查看器,位于sdk的tools文件夹下,当然,我们要使用这个工具,直接在开发工具里面使用就可以了。我们先把代码写出来,然后看看布局结构是啥样,先上效果图 最顶部是一个TextView,下面是一个自定义的LinearLayout 主界面布局:<Fra原创 2016-02-23 23:35:05 · 580 阅读 · 0 评论 -
关于Android的Lint检查的一些结果分析
前言在安卓开发中,Lint可以用来帮助我们检查代码中存在的一些问题,使用方法也很简单,Analyze---Inspect CodeLint检查完成后,可以在Inspection Results中看到检查结果下面总结一些常见的lint问题 1.Image without contentDescription,没有给ImageView指定原创 2018-01-25 10:29:22 · 1988 阅读 · 0 评论 -
Android 布局优化总结
1.减少布局的嵌套,这一点也是最重要的搞android的都知道,android的整个UI布局文件最后也是要一层一层的解析成View对象的,如果层次太深的话,对导致递归的层次太深而极大的影响解析速度,所以,我们一定不能让布局文件的层次太深,要想做到布局文件的层次不深,通常用到的手段有:1)使用RelativeLayout代替LinearLayout。2)编写完布局文件时,可以使用HieracyV原创 2016-02-15 14:46:46 · 801 阅读 · 0 评论 -
GPU过渡绘制和GPU呈现模式分析
概述今天学习App的优化,转载几篇别人的文章,方便自己的学习,顺便自己总结一下Android性能优化之GPU过度绘制与图形渲染优化你真的了解过度绘制吗GPU过渡绘制接下来总结一下过度绘制的优化措施1.在Theme中给activity设置背景,这样不算一次绘制,可以减少层级2.减少不必要的背景,可以减少层级,如果一个View和它的Layout有相同的背景,则指定一转载 2018-01-27 22:14:07 · 1508 阅读 · 0 评论