
Android读书笔记
文章平均质量分 65
陈美圆
软件工程师
展开
-
团队管理经验
过去3年来,MIUI所取得的成绩,除了与很好的产品思路有关,还与团队的执行效率密不可分。MIUI团队采用扁平化的管理方式,没有复杂繁冗的管理流程,极大地降低了沟通成本,提高了团队执行力。设计主管任恬坦言,他们没有像其他公司的一些奇怪的管理流程。在有些公司中,设计稿完成后,要用文档写明页面结构是什么样、某个界面要放到哪里、间距是多大等交给工程师,工程师接到设计稿后要先进行评估,然后才开始做。原创 2014-01-10 16:26:23 · 981 阅读 · 1 评论 -
Android的Canvas学习笔记
第1节clipRect()和translate()区别初步研究得出了一些结论,首先在自定义View的onDraw()方法的代码如下: @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Drawable drawable = getResources().getDrawable(R.draw原创 2013-12-24 16:40:25 · 750 阅读 · 0 评论 -
View的层次结构
setContentView(R.layout.activity_main)这行代码添加的是我们自定义的视图,那它的上层都是些什么呢?从最上面开始ViewRootImpl | DecorView |LinearLayout |FrameLayout | 你的视图View view原创 2013-12-20 16:17:38 · 823 阅读 · 0 评论 -
计算视图大小(measure)的过程
视图是无穷大的,layout_wdith和layout_height是指父视图分配给子视图的布局大小。视图分两类,内容型视图和图形型视图。内容型视图的布局大小一般由内容的多少决定。图形型视图的布局大小一般由父视图给子视图分配的布局大小决定。1、measure内部调用过程分析上图中了描述了measure的调用过程,分析如下:(1)过程开始于ViewRoot类中的per原创 2013-12-05 16:25:36 · 1337 阅读 · 0 评论 -
View的布局(layout)过程
1、View的布局(layout)过程分析首先ViewRoot类的performTraversals()函数中调用host.layout(),host是一个View对象,layout()方法和measure()方法一样,是final类型,不能被重载。下面是View中的layout方法代码: public final void layout(int l, int t, int r,原创 2013-12-05 17:30:39 · 698 阅读 · 0 评论 -
Path类API详解
public void addArc(RectF oval, float startAngle, float sweepAngle);添加椭圆的一部分作为新的轮廓。 mPath.reset(); RectF rectF = new RectF(5, 5, 100, 60); mPath.addArc(rectF, 0, 360);原创 2013-12-09 13:50:41 · 872 阅读 · 0 评论 -
Framework概述
Framework框架,同样包含三个部分:服务端、客户端和Linux驱动。服务端包含两个重要的类ActivityManagerService.java 管理应用程序中的ActivityWindowManagerService.java 管理窗口 客户端中重要的类DecorView是FrameLayout的子类,DecorView是PhoneWindow的内部类Win原创 2013-11-26 15:33:41 · 626 阅读 · 0 评论 -
Binder框架
Binder是一种架构,包含服务端接口、Binder驱动、客户端接口三个模块。Binder服务端,实际上就是一个Binder类的对象。该对象一旦创建,内部会启动一个隐藏线程 ,该线程负责接收Binder驱动发送来的消息。Binder驱动中包含一个Binder mRemote对象,在服务端对象创建时相应创建。mRemote对象重载了transact(),实现了IPC通信:1、向服务端原创 2013-11-26 15:25:01 · 737 阅读 · 2 评论 -
创建窗口的过程
过程概述从WmS的角度来看,一个窗口并不是Window类,而是一个View类。WmS接收到用户消息后,按一定规则判断哪个窗口处于活动状态,然后把消息给该窗口的W类,W类再把消息传递给View变量,剩下的消息处理由View对象完成。窗口分类1、应用窗口,即Activity窗口2、子窗口,有父窗口的窗口3、系统窗口,属于系统级别,如Toasttoken变量的含义在创建窗口时原创 2013-11-26 16:40:55 · 730 阅读 · 0 评论 -
View工作原理之触摸消息派发过程
1、触摸消息总体派发过程和按键消息派发过程类似,当底层读取到触摸消息,会回调ViewRoot内部的mInputHandler对象的dispatchMotion()方法来发送一个异步消息,该消息被函数deliverPointerEvent()处理。执行完该函数后,调用finishInputEvent()向消息获取模块发送一个回执,以便进行下一次消息派发。下面来分析deliverPointer原创 2013-11-30 10:59:44 · 973 阅读 · 0 评论 -
View工作原理之按键消息派发过程
1、按键派发总体过程ViewRoot中定义了一个InputHandler对象: private final InputHandler mInputHandler = new InputHandler() { public void handleKey(KeyEvent event, Runnable finishedCallback) { st原创 2013-11-29 11:50:22 · 1073 阅读 · 0 评论 -
Android插件化基础--Binder机制
Binder是一套基于CS的架构。下面以一个极简的例子来学习Binder。1.首先定义一个IMedia.aidl文件。interface IMedia { boolean start(); boolean stop();}2.然后IDE会帮我们自动生成一个IMedia.java文件public interface IMedia extends an...原创 2018-03-16 15:53:43 · 379 阅读 · 0 评论