
面试
devstrongzhao
这个作者很懒,什么都没留下…
展开
-
Android View 重绘和更新invalidate 和requestLayout
Android View 重绘和更新invalidate 和requestLayoutinvalidate() 看如下源码,当view可见时只能在UI线程调用并且重绘。View绘制分三个步骤,顺序是:onMeasure,onLayout,onDraw。当这个view不是容器时比如是个普通的TextView 经代码亲测,log输出显示:调用invalidate方法只会执行onDraw方法;调原创 2018-01-28 18:03:38 · 755 阅读 · 0 评论 -
Android 性能优化之布局优化
Android 性能优化之布局1.避免过度OverDraw Overdraw就是过度绘制,是指在一帧的时间内(16.67ms)像素被绘制了多次,理论上一个像素每次只绘制一次是最优的,但是由于重叠的布局导致一些像素会被多次绘制,而每次绘制都会对应到CPU的一组绘图命令和GPU的一些操作,当这个操作耗时超过16.67ms时,就会出现掉帧现象,也就是我们所说的卡顿,所以对重叠不可见元素的重复绘制原创 2018-01-08 16:27:49 · 241 阅读 · 0 评论 -
Activity生命周期和启动模式
Activity生命周期和启动模式启动Activity: onCreate()——onStart() ——onResume() ,Activity 进入运行状态。Activity退居后台:当前Activity转到新的Activity界面或者Home键回到主屏:onPause()——onstop(),进入停滞状态。Activity返回前台,onRestart()——onStart()——o原创 2018-02-01 08:29:59 · 202 阅读 · 0 评论 -
Android 横竖屏切换小结(实践)
Android 横竖屏切换小结(实践) 首先我们先创建一个Activity 名为Main2Activity 写出相应的Activity 的生命周期,并且在Androidmanifest.xm中什么都没有配置如下:activity android:name=".land_portrait.Main2Activity">activity>首先测试下不设置方向时横竖屏切换走的生命周期,手原创 2018-02-01 16:20:59 · 4415 阅读 · 0 评论 -
Java线程面试题
面试之总结1. 什么是线程? 线程是操作系统能够进行运算调度的最下单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成任务只需要10毫秒。,java在语言层面对多线程提供了卓越的支持,它也是一个很好的卖点。 2. 线程和进程有什么区别? 线程是进程的子集转载 2018-01-28 15:54:11 · 356 阅读 · 0 评论 -
Android 自定义view的测量
Android 自定义view的测量首先在自定义view的时候,你需要告诉系统该画一个多大的View。这个过程在onMeasure()方法里进行的。Android系统给我们提供了一个设计短小精悍却功能强大的类——MeasureSpec类。通过它可以帮助我们测量view。 MeasureSpec是一个32位的int值,其中高2位为测量的模式,低30位为测量的大小,在计算中使用位运算的原因原创 2018-01-29 11:15:01 · 479 阅读 · 1 评论 -
java集合小结
java 集合简介Java集合大致可以分为Set、List、Queue和Map四种体系。其中Set代表无序、不可重复的集合;List代表有序、重复的集合;而Map则代表具有映射关系的集合。Java 5 又增加了Queue体系集合,代表一种队列集合实现。Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)“丢进”该容器中。从Java 5 增加了泛型以后,Jav...原创 2018-02-25 19:42:37 · 480 阅读 · 1 评论