
Android高级
ifengouy
这个作者很懒,什么都没留下…
展开
-
Android性能优化之布局优化
1、布局原则1.1、使用RelativeLayout和LinearLayout尽量多使用RelativeLayout和LinearLayout。在布局层次一样的情况下,建议使用LinearLayout代替RelativeLayout(因为LinearLayout性能要稍高一点);在结构层次复杂的时候建议使用RelativeLayout(因为RelativeLayout能简单实现Li原创 2016-05-11 21:22:38 · 341 阅读 · 0 评论 -
自定义View解析之自定义View实战(四)
前面我们对自定义View的理论有所认识,接下来,我们通过几个自定义View的例子来加深对自定义View的理解。1、定义带有删除按钮的EditText需求分析:如下图 其实就是在EditText右边加入一个小图标,当点击小图标就可以清楚输入框里面的内容,因为android系统中不存在这样的控件,因此,我们需自定义一个控件实现上面的功能。在自定义控件时主要有如下功能:1)添加图原创 2016-05-05 17:35:14 · 439 阅读 · 0 评论 -
Android自定义View解析之自定义View类型(三)
自定义View的实现方式可以可以分为三种,自定义控件、自定义组合控件、以及自定义已有控件的子类。1、自定义控件自定义控件就是自定义一个android控件中不存在的view,这个View上所展现的内容全部都是我们自己绘制出来的。绘制的代码是写在onDraw()方法中的。2、自定义组合控件不需要自己去绘制视图上显示的内容,而只是用系统原生的控件就好了,但我们可以将几个系统原生的控件组合原创 2016-05-05 17:27:53 · 456 阅读 · 0 评论 -
Android自定义View解析之LayoutInflater类(三)
1、LayoutInflater介绍顾名思义,LayoutInflater主要是用于加载布局的,在Activity中加载布局的任务通常都是通过调用setContentView()方法来完成的。其实setContentView()方法的内部也是使用LayoutInflater来加载布局的。获取LayoutInflater的实例,有两种方法:1)LayoutInflater layou原创 2016-05-05 17:23:14 · 737 阅读 · 0 评论 -
Android自定义View解析之视图状态及视图重绘(二)
1、最常用的几种视图状态1. enabled表示当前视图是否可用。可以调用setEnable()方法来改变视图的可用状态,传入true表示可用,传入false表示不可用。它们之间最大的区别在于,不可用的视图是无法响应onTouch事件的。2. focused表示当前视图是否获得到焦点。有两种方法可以让视图获得焦点,即通过键盘的上下左右键切换视图,以及调用requestFocus原创 2016-05-05 17:18:13 · 1825 阅读 · 0 评论 -
Android自定义View解析之View的绘制流程(一)
1、View的绘制流程在了解自定义View之前,首先需要知道View系统的绘制流程是从ViewRoot的performTraversals()方法中开始的,然后在其内部调用View的measure()方法对View进行测量,在measure()方法结束后,继续会在该方法内调用View的layout()方法来对视图进行布局,在layout()结束后,便会继续在该方法内调用View的draw()方原创 2016-05-05 17:01:44 · 527 阅读 · 0 评论 -
Android事件分发机制(下)
1、ViewGroup的事件分发ViewGroup一组View的集合,是Android中所有布局的父类或间接父类,像LinearLayout、RelativeLayout等都是继承自ViewGroup的。ViewGroup实际上也是一个View,只不过比起View,它多了可以包含子View和定义布局参数的功能。ViewGroup的事件分发主要涉及三个函数:1)dispatchTouch原创 2016-05-05 15:35:34 · 387 阅读 · 0 评论 -
Android事件分发机制(上)
1、Android事件分发简介运用的前提是掌握,掌握的前提是理解。只有对事件分发的原理理解了,才能在开发工程中熟练的运用事件分发机制。1.1、两大基础控件类型View和ViewGroup。View即普通的控件,没有子布局的,如Button、TextView. ViewGroup继承自View,表示可以有子控件,如Linearlayout、Listview等。1.2、点击事件原创 2016-05-05 15:34:00 · 385 阅读 · 0 评论 -
Android性能优化之Java代码优化
1、降低执行时间1.1、使用缓存缓存主要包括对象的缓存、IO缓存、DB缓存、网络缓存,对象缓存能减少内存的分配,IO缓存减少磁盘的读写次数,网络缓存减少网络传输,DB缓存较少Database的访问次数。因为在内存、文件、数据库、网络的读写速度中,内存是最优的,且速度数量级差别,所以尽量将需要频繁访问或访问一次消耗较大的数据存储在缓存中。Android中常用的缓存:1)线程池原创 2016-05-11 21:49:58 · 417 阅读 · 0 评论 -
Android性能优化之内存优化
1、内存溢出的原因1.1、内存泄漏内存泄漏和内存溢出的区别:内存泄漏:程序中存在对无用对象的引用,导致GC无法回收。内存泄漏最终会导致oom。内存溢出:程序在申请内存时,没有足够的内存空间供其使用,出现out of memory。1.2、保存多个耗用内存过大的对象应用的某些逻辑操作消耗掉大量内存(譬如加载一张不经过处理的超大超高清图片等)导致超过阈值。2、内存优化2原创 2016-05-08 18:02:40 · 1135 阅读 · 0 评论