android
杀猪刀-刕
岁月是把杀猪刀,没了感觉、丢了激情、少了情操。
展开
-
View 的绘制流程
当一个Activity接收焦点,它将被要求画出它的布局。Android框架将处理画图,但Activity必须提供根节点布局的层次结构。 从图的根节点开始布局(绘制),然后开始测量和绘制布局树。 通过遍历树和渲染来绘制每个视图,相交无效区域。反过来,每个视图组负责请求它的每个孩子绘制(draw() method)和每个视图负责绘画本身。因为树是遍历顺序,这意味着父母将被先绘制,孩子视图后原创 2016-08-05 11:24:22 · 241 阅读 · 0 评论 -
热加载
介绍热加载之前,首先要介绍一下类加载的机制:类加载通过classloader实现,android中默认使用pathclassloader作为加载器(继承BaseDexClassloder并重写了其findclass()方法),而BaseDexClassloder中的findcalss()方法使用new出来的DexPathList对象的findclass()方法,作为真正的实现方法。De原创 2016-08-26 09:38:21 · 373 阅读 · 0 评论 -
RemoteViews的用处
remoteview:远程视图,能获得不同进程中的对象。1.用在AppWidget中,即手机桌面上的小窗口工具,如音乐播放器控件。 使用:创建AppWidgetProvider的子类,而AppWidget与程序之间的交互就是通过Remoteview完成的。2.用在自定义notification中,因为notification的定义和显示不再一个进程中。使用:创建remotevie原创 2016-08-26 09:55:10 · 173 阅读 · 0 评论 -
view的优化
1.onDraw中不要做内存分配工作2.在初始化或动画间隙做内存分配工作3.不要在动画正在执行使做内存分配工作4.尽量减少onDraw的重画次数,即减少invalidate的调用次数5.尽量使用4个参数的invalidate,因为这个方法不会重新绘制整个view6.自定义viewGroup去执行requestlayout操作原创 2016-08-26 10:00:43 · 182 阅读 · 0 评论 -
view刷新机制
1.首先由viewRoot对象调用draw()绘制整个view树2.每次绘制时,只绘制需要重绘的view3.view内部有一个标志位DRAW,需要绘制就添加该标志位。调用的流程:1.绘制背景2.渐变框准备3.调用onDraw绘制view本身,调用disptchDraw方法绘制子视图。原创 2016-08-26 10:17:06 · 290 阅读 · 0 评论