- 博客(6)
- 收藏
- 关注
原创 view刷新机制
1.首先由viewRoot对象调用draw()绘制整个view树2.每次绘制时,只绘制需要重绘的view3.view内部有一个标志位DRAW,需要绘制就添加该标志位。调用的流程:1.绘制背景2.渐变框准备3.调用onDraw绘制view本身,调用disptchDraw方法绘制子视图。
2016-08-26 10:17:06 295
原创 view的优化
1.onDraw中不要做内存分配工作2.在初始化或动画间隙做内存分配工作3.不要在动画正在执行使做内存分配工作4.尽量减少onDraw的重画次数,即减少invalidate的调用次数5.尽量使用4个参数的invalidate,因为这个方法不会重新绘制整个view6.自定义viewGroup去执行requestlayout操作
2016-08-26 10:00:43 188
原创 RemoteViews的用处
remoteview:远程视图,能获得不同进程中的对象。1.用在AppWidget中,即手机桌面上的小窗口工具,如音乐播放器控件。 使用:创建AppWidgetProvider的子类,而AppWidget与程序之间的交互就是通过Remoteview完成的。2.用在自定义notification中,因为notification的定义和显示不再一个进程中。使用:创建remotevie
2016-08-26 09:55:10 177
原创 热加载
介绍热加载之前,首先要介绍一下类加载的机制:类加载通过classloader实现,android中默认使用pathclassloader作为加载器(继承BaseDexClassloder并重写了其findclass()方法),而BaseDexClassloder中的findcalss()方法使用new出来的DexPathList对象的findclass()方法,作为真正的实现方法。De
2016-08-26 09:38:21 379
原创 activity的四种状态以及内存回收优先级
1.activiti的四种状态 活动状态:在屏幕的前台,获取了焦点,可以响应用户操作暂停状态:activity失去焦点,但对用户可见,(如在其上有一个Toast或者alertDialog),此状态的活动是存活的,它保留着所有状态和成员信息,在内存极小时候可能被杀掉停止状态:完全被另一个activity所遮挡,但他保留了所有信息,只是对用户不可见,其他地方需要内存往往被杀掉非活动状态
2016-08-26 09:37:08 1358 1
原创 View 的绘制流程
当一个Activity接收焦点,它将被要求画出它的布局。Android框架将处理画图,但Activity必须提供根节点布局的层次结构。 从图的根节点开始布局(绘制),然后开始测量和绘制布局树。 通过遍历树和渲染来绘制每个视图,相交无效区域。反过来,每个视图组负责请求它的每个孩子绘制(draw() method)和每个视图负责绘画本身。因为树是遍历顺序,这意味着父母将被先绘制,孩子视图后
2016-08-05 11:24:22 243
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人