摘要: Invalidate:To farce a view to draw,call invalidate().——摘自View类源码从上面这句话看出,invalidate方法会执行draw过程,重绘View树。当View的appearance发生改变,比如状态改变(enable,focus),背景改变, 阅读全文
posted @ 2018-11-24 23:28 庚拓天下 阅读(859) 评论(0) 推荐(0) 编辑
摘要: 1、android ui操作为什么一定要在主线程中执行? 答:Android UI操作是单线程模型,关于UI更新的相关API(包括invalidate())都是按照单线程设计的,对于多线程运行时不安全的,即在非主线程调invalidate()刷新界面出现异常。所以android禁止在非主线程更新UI 阅读全文
posted @ 2018-11-24 22:43 庚拓天下 阅读(803) 评论(0) 推荐(0) 编辑
摘要: 1.双重检查锁 & volatile保证可见性(变量值改动后及时从工作内存写回主内存)和有序性(指令不可重排) 现在我们分析一下为什么要在变量singleton之间加上volatile关键字。要理解这个问题,先要了解对象的构造过程,实例化一个对象其实可以分为三个步骤: (1)分配内存空间。 (2)初 阅读全文
posted @ 2018-11-24 22:02 庚拓天下 阅读(132) 评论(0) 推荐(0) 编辑
摘要: compileSdkVersion(Eclipse中叫做build target) minSdkVersion targetSdkVersion Android 高版本API方法在低版本系统上的兼容性处理 阅读全文
posted @ 2018-11-24 21:53 庚拓天下 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 一张图片资源要占用多大内存,可以用下面的计算公式计算 4 * withPixel*(targetDensity /sourcedensity) * heightPixel*(targetDensity /sourcedensity) 4的意思是RGBA8888要占用4个字节widthPixel和he 阅读全文
posted @ 2018-11-24 21:47 庚拓天下 阅读(1223) 评论(0) 推荐(0) 编辑