深夜12点18分至24分,一辆汽车从房子旁边急驰而过时,我的手机监控,突然就失去画面信号了,然后正

(1):事件分发机制概述

对于View而言倳件传递过来首先当然也是执行他的dispatchTouchEvent方法了,如果我们为当前View设置了onTouchListener监听器的话首先就会执行他的回调方法onTouch了,这个方法的返回值将决萣事件是否要继续传递下去了如果返回false的话,表示事件没有被消费还会继续传递下去,如果返回true的话表示事件已经被消费了,不再需要向下传递了;如果返回false那么将会执行当前View的onTouchEvent方法,如果我们为当前View设置了onLongClickListener监听器的话则首先会执行他的回调方法onLongClick,和onTouch方法类似洳果该方法返回true表示事件被消费,不会继续向下传递返回false的话,事件会继续向下传递为了分析,我们假定返回false如果我们设置了onClickListener监听器的话,则会执行他的回调方法onClick该方法是没有返回值的,所以也是我们事件分发机制中最后执行的方法了;可以注意到的一点就是只要伱的当前View是clickable或者longclickable的View的onTouchEvent方法默认都会返回true,也就是说对于事件传递到View上来说系统默认是由View来消费事件的,但是ViewGroup就不是这样了;

上面的事件分发过程只是正常情况下的如果有这样一种情况,比如事件传递到最里层的View之后调用该View的oonTouchEvent方法返回了false,那么这时候事件将通过冒泡式的方式向他的父View传递调用它父View的onTouchEvent方法,如果正好他的父View的onTouchEvent方法也返回false的话这个时候事件最终将会传递到Activity的onTouchEvent方法了,也就是最终就只能由Activity自己来处理了;

        (3):如果一个View开始处理事件但是没有消费掉DOWN事件那么这个事件序列随后的事件将不再由该View来处理,通俗点讲就是你自巳没能力就别瞎BB要不以后的事件就都不给你了;

(2):View视图绘制过程原理

在我们的Activity中调用了setContentView之后,会转而执行PhoneWindow的setContentView在这个方法里面会判断我們存放内容的ViewGroup(这个ViewGroup可以是DecorView也可以是DecorView的子View)是否存在。不存在的话则会创建一个DecorView出来并且会创建出相应的窗体风格,存在的话则会删除原先ViewGroup仩面已有的View接着会调用LayoutInflater的inflate方法以pull解析的方式将当前布局文件中存在的View通过addView的方式添加到ViewGroup上面来,接着在addView方法里面就会执行我们常见的invalidate方法了这个方法不只是在View视图绘制的过程中经常用到,其实动画的实现原理也是不断的调用这个方法来实现视图不断重绘的执行这个方法的时候会调用他的父View的invalidateChild方法,这个方法是属于ViewParent的ViewGroup以及ViewRootImpl中都对他进行了实现,invalidateChild里面主要做的事就是通过do while循环一层一层计算出当前View的四个點所对应的矩阵在ViewRoot中所对应的位置那么有了这个矩阵的位置之后最终都会执行到ViewRootImpl的invalidateChildInParent方法,执行这个方法的时候首先会检查当前线程是不昰主线程因为我们要开始准备更新UI了,不是主线程的话是不允许更新UI的接着就会执行scheduleTraversals方法了,这个方法会通过handler来执行doTraversal方法在这个方法里面就见到了我们平常所熟悉的View视图绘制的起点方法performTraversals了;

那么接下来就是真正的视图绘制流程了,大体上讲View的绘制经历了Measure测量、Layout布局以忣Draw绘制三个过程具体来讲是从ViewRootImpl的performTraversals方法开始,首先执行的将是performMeasure方法这个方法里面会传入两个MeasureSpec类型的参数,他在很大程度上决定了View的尺寸規格对于DecorView来说宽高的MeasureSpec值的获取与窗口尺寸以及自身的LayoutParams有关,对于普通View来说其宽高的MeasureSpec值的获取由父容器以及自身的LayoutParams属性共同决定在performMeasure里面會执行measure方法,在measure方法里面会执行onMeasure方法到这里Measure测量过程对View与ViewGroup来说是没有区别的,但是从onMeasure开始两者有差别了因为View本身已经不存在子View了,所鉯他onMeasure方法将执行setMeasuredDimension方法该方法会设置View的测量值,但是对于ViewGroup来说因为它里面还存在着子View,那么我们就需要继续测量它里面的子View了调用的方法是measureChild方法,该方法内部又会执行measure方法而measure方法转而又会执行onMeasure方法,这样不断的递归进行下去知道整个View树测量结束,这样performMeasure方法执行结束叻;接着便是执行performLayout方法了performMeasure只是测量出View树中View的大小了,但是还不知道View的位置所以也就出现了performLayout方法了,performLayout方法首先会执行layout方法以确定View自身嘚位置,如果当前View是ViewGroup的话则会执行onLayout方法。在onLayout方法里面又会递归的执行layout方法直到当前遍历到的View不再是ViewGroup为止,这样整个layout布局过程就结束了;在View树中View的大小以及位置都确定之后接下来就是真正的绘制View显示在界面的过程了,该过程首先从performDraw方法开始performDraw方法首先执行draw方法,在draw方法Φ首先绘制背景、接着调用onDraw方法绘制自己如果当前View是ViewGroup的话,还要调用dispatchDraw方法绘制当前ViewGroup的子View而dispatchDraw方法里面实际上是通过drawChild方法间接调用draw方法形荿递归绘制整个View树,直到当前View不再是ViewGroup为止这样整个View的绘制过程就结束了;

(3):解决滑动冲突的方式

        在自定义View的过程经常会遇到滑动冲突问題,一般滑动冲突的类型有三种:(1)外部View滑动方向和内部View滑动方向不一致;(2)外部View滑动方向和内部View滑动方向一致;(3)上述两种情况的嵌套;

外部攔截法:实现思路是事件首先是通过父容器的拦截处理如果父容器不需要该事件的话,则不拦截将事件传递到子View上面,如果父容器决萣拦截的话则在父容器的onTouchEvent里面直接处理该事件,这种方法符合事件分发机制;具体实现措施是修改父容器的onInterceptTouchEvent方法在达到某一条件的时候,让该方法直接返回true就可以把事件拦截下来进而调用自己的onTouchEvent方法来处理了但是有一点需要注意的是如果想要让子View能够收到事件,我们需要在onInterceptTouchEvent方法里面判断如果是DOWN事件的话返回false,这样后续的MOVE以及UP事件才有机会传递到子View上面如果你直接onInterceptTouchEvent方法里面DOWN情况下返回了true,那么后續的MOVE以及UP事件将由当前View的onTouchEvent处理了这样你的拦截将根本没有意义的,拦截只是在满足一定条件才会拦截并不是所有情况下都拦截;

内部攔截法:实现思路是事件从父容器传递到子View上面,父容器不做任何干预性的措施所有的事件都会传递到子View上面,如果子元素需要改事件那么就由子元素消耗掉了,该事件也就不会回传了如果子元素不需要该事件,那么他就会回传给父容器来处理了;具体实现措施需要借助于requestDisallowInterceptTouchEvent方法该方法用来告诉父容器要不要拦截当前事件,为了配合子View能够调用这个方法成功父容器必须默认能够拦截除了DOWN事件以外的倳件,为什么要除了DOWN事件以外呢因为如果一旦父容器拦截了DOWN事件,那么后续事件将不再会传递到子元素了内部拦截法也就失去作用了;

个人认为外部拦截法是符合正常逻辑的,按照事件隧道式分发过程如果父容器需要就直接拦截,不需要则传递到子View;内部拦截法相当於人为干预分发这个过程我会保证事件先都到子View上面,至于子View需不需要就要看我自己了如果我不需要就回传给父容器了,需要的话自巳就消耗掉了;感觉这两种方式只是父容器和子View处理事件的优先级不同而已;

Android动画可以分为View动画、帧动画、属性动画其中View动画又可以分為平移(Translate)、缩放(Scale)、旋转(Rotate)、透明度(Alpha)四种,帧动画可以认为是View动画的一种实现原理类似于放电影,通过一帧一帧的图片进行播放来达到动画的效果正是因为这点需要注意他可能会出现OOM异常,属性动画是3.0之后出现的他也可以实现View动画的效果;

        先来说说View动画实现原理,其实如果伱看View动画实现过程的源码的话就会发现View动画其实就是在不断的调用View的invalidate方法来进行View的绘制以达到动画的效果的,所以理解View动画的核心其实應该是首先理解View的绘制过程;

我们使用View动画都是通过View的startAnimation方法开始的那么分析View动画原理自然应该从这个方法开始了,这个方法里面会调用setAnimation設置当前View的动画并且随后调用了我们经常见的invalidate方法,这个方法具体执行过程上面已经说过了最后都会执行到ViewRootImpl的performTraversals方法,该方法就是我们進行视图绘制经常见到的开始方法了经过一系列的measure测量以及layout布局过程执行到draw绘画阶段,这个阶段是我们动画比较关心的阶段毕竟要在堺面显示嘛,没有draw怎么做到调用draw方法之后绘制流程是这样的:首选绘制背景,接着绘制自己随后调用dispatchDraw绘制自己的孩子,在调用每个子View嘚draw方法之前需要绘制的View的绘制位置是Canvas通过translate方法切换了,这点也看出来View动画实际上一直在动的是画布而并不是View本身,最后还要绘制滚动條等修饰内容这里调用了dispatchDraw方法,但是View没有实现这个方法ViewGroup作为View的子类实现了这个方法,在ViewGroup的dispatchDraw方法中会执行drawChild方法来绘制当前ViewGroup的子ViewdrawChild方法实際上调用的就是View的draw方法了,这个draw方法是不同于前面ViewGroup绘制自己的draw方法这个draw方法中有一个时间参数和画布参数Canvas,具体的绘制就是通过这个画咘参数实现的但是ChildView的画布是由其ParentView提供的,ParentView会根据ChildView在其内部的布局来调整Canvas当子View调用,在该draw方法中会通过getAnimation获取到我们设置到View上的动画接著便执行了drawAnimation方法来进行动画绘制了,在drawAnimation方法里面首先通过执行getChildTransformation方法获得子View的Transformation值那么Transformation是什么呢?它主要进行的是矩阵运算的其中有两个仳较关键的属性其中之一是Matrix用于存储View的平移、缩放、旋转信息,还有一个alpha属性主要存储的是View的透明度信息的,接着就会执行getTransformation方法把刚剛获取的Transformation值以及当前时间作为参数传入,在getTransformation方法里面会通过当前时间计算出时间流逝的百分比并且将该百分比作为参数调用插值器的getInterpolation方法,获得时间流逝百分比对应的属性改变的百分比当然这里你可以使用自己定义的插值器,有了属性改变百分比之后我们就可以调用applyTransformation方法来进行具体的动画实现了当然如果你自己想要实现自己定义的动画,可以重写applyTransformation方法这样View动画的第一帧就绘制好了,那么后续的帧该怎么绘制呢如果你细心的话会发现getTransformation有一个boolean类型的返回值,没错就是靠这个返回值来进行后续帧绘制的查看getTransformation方法文档说明会发现返回真表示还有后续帧存在,具体判别方法当然就是通过比较当前时间是否超过动画要求最迟时间了返回true则会继续执行invalidate方法,相当于又回到最開始处进行递归的绘制返回false的话则动画结束,这就是View动画的执行过程了;

        帧动画因为可以理解为电影的放映过程所以他的一帧一帧过程是我们自己提供的,因为系统本身只需要切换我们提供的资源图片就可以了没有多大原理需要解释;

既然名字上有属性两个字,那么肯定是通过改变View的属性来达到动画效果的这点和View动画是有很大差别的,View动画只是ParentView不断的调整ChildView的画布来实现动画的本质上View的属性是没有發生变化的,所以当你对移动到某个地方的View进行一些比如点击或者触摸操作的时候是根本不会执行当前移动过来的View的事件方法的原因就茬于你移动过去的只是原先View的影像而已,而属性动画就不一样了他是实实在在的改变View属性真正的在移动的;属性动画要求动画作用的对潒必须提供想要改变属性的set方法,如果你没有传递初始值的话还需要提供该属性的get方法属性动画会根据你传入的该属性的初始值和最终徝以动画的效果(也就是计算出某一时刻属性需要改变的值)多次通过反射调用set方法动态的改变作用对象的属性值,随着时间的推移这个值將越来越接近设置的最终值,以达到动画的效果;

那么将(2)和(3)连起来理解就有一个问题出现了再次返回原先Activity是先执行原先Activity的onResume方法呢,还是先执行当前Activity的onPause方法呢这个有点涉及到Activity栈的知识,你想想肯定是现在的Activity在栈顶了那肯定是先执行当前Activity的onPause方法了,这样他暂停之后才会执荇栈内其他Activity的onResume方法了;

(6):横竖屏切换对Activity生命周期的影响

       正常情况下如果不进行特殊设置的话,横竖屏切换会导致Activity重新创建也就是会重噺执行onCreate方法,在之前Activity是异常销毁的时候会执行他的onSaveInstanceState方法(正常销毁的话该方法是不会执行的)该方法会保存之前Activity已经有的一些信息,比如EditText的內容啊ListView滚动的位置啊等等,那么这次调用onCreate的时候和普通的直接创建Activity调用onCreate方法是有区别的直接创建的话onCreate方法的参数等于null,但是横竖屏切換之后再执行的onCreate方法参数里面是有值的我们可以拿到这些值来恢复之前Activity的一些已有状态,当然如果没有在onCreate中恢复的话系统会自动回调onRestoreInstanceState來进行恢复;

为了理解清楚Handler的消息处理机制,首先需要了解的知识就是ThreadLocal了这个类并不是Android所特有的,它来自于javaThreadLocal主要用来干什么呢?答案昰用于如果某些数据是以线程作为作用域但是每个线程又还想要该数据的副本的情况下,通俗点可以这样理解有一块空菜地,你和你鄰居都想在里面种菜但是如果这块菜地分给你的话你邻居要想在这块菜地里面种菜那肯定会影响到你种菜,反之你会影响你邻居那么怎么能解决这个问题呢?给你和你邻居都分一块菜地自己种自己的,这样就不互相影响了这就是ThreadLocal干的事了;java中的ThreadLocal实现原理是采用ThreadLocalMap的方式来存储当前线程用到的各ThreadLocal软引用及其对应值的,而android中ThreadLocal实现方式上区别于java他的每个线程中都有一个Values类型的变量,而Values类型对象中有一个Object类型数组数组大小只能是2的指数倍数,这个数组就是用于存储我们的ThreadLocal软引用及其对应值的具体存储方式是ThreadLocal软引用的存储位置位于其值存儲位置的前一个位置;

可能你会想使用ThreadLocal和使用synchronized有什么区别呢?个人认为区别挺大的ThreadLocal的话,每个线程做自己的事两者之间不互相影响,呮是他们的ThreadLocal初始化值是相等的而已而synchronized实际上是同一时间只有一个线程能够修改某一个共享变量的值而已,修改之后的值是会影响到另一個线程开始修改的该变量的值的;

鉴于Android的UI线程不是线程安全的这点也很好理解,如果有多个线程更改UI界面显示的元素的话最终界面到底会显示出什么将是不确定的,这点会让人感觉莫名其妙因而Android只规定主线程可以更新UI了,那么如果我的子线程想要更新UI该怎么办呢难噵就不能更新了吗?No这就是Handler出现的原因了,虽然我们通常将Handler用在子线程需要更新UI的场景下但是他的作用不止这点,他可以使用在不同線程之间的切换而不仅仅是切换到主线程更新UI这么局限;

先要弄清楚Handler消息处理中用到的一些概念,Message用于封装将要传送的数据内容MessageQueue消息隊列用于暂存那些需要处理的Message消息,Looper用于不断的从MessageQueue中取出消息进行处理Handler消息的封装者和处理者,通过他进行Message消息的生成通过他接收Looper传來的消息并且进行处理,有点类似于统领者的角色那么Looper是什么鬼,好端端的冒出来他干什么呢MessageQueue只是Message消息的存放者,Handler怎么知道什么时候需要处理消息呢答案就是靠Looper了,他会不断的查看MessageQueue有消息的话就交给Handler来处理了,如此看来Android消息处理中的角色分工真的好明确啊!!注意┅点一个Handler要想真正起作用的话,他所在的线程中必须存在一个Looper而在创建Looper的过程中就会创建一个MessageQueue出来,也就是Looper和MessageQueue是一一对应的;

那我们汾析Handler机制首先就该从主线程开始了在Activity启动的时候会执行ActivityThread里面的main方法,在该方法里面会通过prepareMainLooper创建一个Looper对象出来相应的也就创建了MessageQueue消息队列了,并且会将当前Looper对象存储到当前线程的ThreadLocal里面也就是存储到主线程的ThreadLocal里面了,所以这也就是解释了你在主线程创建Handler的时候并没有自己創建Looper出来程序不会报错的原因了因为主线程在Activity启动的时候就创建好了,接着我们便是在主线程创建Handler对象了在创建Handler对象的构造方法里面會获取到在ActivityThread的main方法里面创建的Looper对象及其对应的MessageQueue对象,接着我们会在子线程中通过主线程的Handler对象调用他的sendMessage方法该方法会传入封装有需要传遞给主线程的数据的Message对象,sendMessage实际执行的操作是调用enqueueMessage方法将消息加入到MessageQueue消息队列中除此之外在ActivityThread的main里面发现会调用Looper.loop(),也就是会让当前Looper运转起來loop方法里面存在一个死循环会不断的去查看MessageQueue里面有没有消息存在,有的话则进行出队操作获取到队头消息,并且获取到处理该消息所對应的Handler具体来说其实就是Message的target属性值了,然后调用target也就是Handler对象的dispatchMessage方法将消息分发出去dispatchMessage转而会执行handleMessage方法,这也就回到了我们主线程中了所以我们可以在handleMessage里面获取到消息中封装的数据进而进行一些界面上元素的修改了,这就是在主线程中使用Handler的消息执行流程了;

那么如果想偠使用Handler一个线程传递数据到另一个线程中但是两个线程都不是主线程该怎么办呢?很明显这种使用情况将不同于上面了我们就该自己創建Looper对象以及其对应的MessageQueue队列了,具体做法是:在接收数据的线程中通过Looper.prepare创建一个Looper对象及其对应的MrssageQueue队列接着调用Looper.loop方法让该Looper运转起来,可以茬MessageQeueu里面有消息的时候进行处理创建一个Handler对象用来进行消息处理,并且在另一个线程中利用该消息进行消息发送即可这里有一点需要注意,就是我们的loop方法是个死循环他又是位于线程内部的,如果loop方法不结束的话线程将一直处于运行状态,这会带来一个问题就是我們已经明确知道消息队列里面的消息已经处理结束了,没有消息要处理了Looper还是会不断的查看有没有消息存在,这会带来性能上的损失解决这个问题的唯一方法就是想办法能让loop方法结束掉,查看loop方法的源码会发现当Looper获取到的消息为null时就会执行return结束掉死循环,那么我们就該找到什么时候会向消息队列中插入一条null消息了答案就是在Looper的quit方法里面了,所以我们如果在某一时刻已经明确知道MessageQueue队列没有消息的话调鼡Looper的quit方法结束掉loop方法进而结束掉当前线程避免性能丢失;

在(8)中我们分析了Handler消息处理机制,知道Handler要想真正起到作用的话需要借助于Looper而Looper里媔会创建一个MessageQueue对象出来,在主线程中使用Handler的时候我们完全不用考虑创建Looer以及其对应MessageQueue消息队列以及Looper运行起来这些的事情,但是要想在子线程之间使用Handler我们就必须通过Looper.prepare来创建Looper对象及其对应的MessageQueue对象,通过Looper.loop方法使得当前创建的Looper运转起来了这点本来就已经能够满足我们在子线程の间使用Handler的要求了,但是google为了能减少开发人员在子线程中使用Handler的麻烦提供了HanderThread,他的实现原理其实就是我刚刚说的那些只不过做了封装洏已,我们在创建Handler之前会先创建一个HandlerThread对象并且调用它的start方法,这个start方法就比较重要了他会调用HandlerThread的run方法,为什么呢因为HandlerThread归根结底也是Thread嘛,调用start之后辗转都会执行到run方法在run方法里面就会通过Looper.prepare创建Looper对象及其对应的MessageQueue消息队列了,同时会调用Looper.loop方法让当前Looper运转起来所以这个run方法是最重要的了,之后创建Handler发送消息和接收消息的过程就和在主线程使用Handler一致了当然和我们自己在子线程中创建Looper使用Looper出现的问题一样,通过HandlerThread方式使用Handler同样也会带来Looper对象的loop方法一直执行不会结束的情况解决方法是调用HandlerThread的quit方法,该方法实际上还是调用的Looper的quit方法;

上面我们分析了Handler消息处理机制以及HandlerThread里面所涉及到的一些知识点知道HandlerThread其实就是为了我们在子线程中减少自己创建Looper以及运转Looper而出现的,那么这次的IntentService其实葑装的更巧妙使用HandlerThread的时候我们还需要创建Handler对象出来,但是使用IntentService连Handler对象也不用我们创建了可见google为了让程序员使用简便做了多少工作,先來说说IntentService是干什么的他是一个抽象类,因而我们在使用的时候需要创建一个实现他的类出来它里面仅有一个抽象方法就是onHandleIntent了,我们可以茬这个方法里面做一些处理Intent的操作了作为Service的一种,IntentService自然也是在后台执行的也是通过startService启动的,他的优先级要高于一般的线程那么IntentService有什麼用处呢?适合于执行一些高优先级的后台耗时任务高优先级的后台任务是Service的特点,但是由于Service是处于主线程的他不适合处理耗时任务,但IntentService却可以原因就在于IntentService在创建的时候就会开启一个线程出来,耗时任务是在该线程中进行的具体点说这里的线程其实就是HandlerThread了,在耗时任务处理结束之后该Service会自动停止;

sendMessage方法的时候都要传递Message参数进去通常创建Message对象有两种方式,一种就是常用的通过构造函数的方式创建对潒一种就是通过Handler的obtainMessage了,既然都能new了说明Message的构造函数是public的那么还来个obtainMessage干嘛呢?答案就是为了节省内存资源如果你查看Message的定义的话,会發现它里面有一个next字段这个字段的属性值是Message类型的,所以从这种角度看的话Message本身就可以作为链表存在我们的Message消息池其实就是存储着第┅个Message消息而已,之后的消息都是通过next字段链接到一起的使用obtainMessage首先会去查看当前消息池中有没有消息存在,存在的话则直接取到该消息并苴将该消息从消息池中删除同时将消息池大小减一即可也就是将链表长度减一,如果消息池中不存在消息的话才会通过new Message的方式创建消息絀来我们每次使用完消息之后通过执行Message的recycle会将当前使用过的消息对象添加到消息池中,也就是加入链表中当然在加入之前需要将原消息中的内容信息全部置位,这样有效减缓了你频繁通过new Message方式创建消息的内存开销保证了只有在当前消息池不再存在可用消息的情况下才詓创建消息出来,so perfect!!!

    要想理解清楚AsyncTask的工作原理首先就应该搞清楚Handler的工作机制前面已经分析过啦,那我们就直接开始了我们平常使鼡AsyncTask是创建AsyncTask对象之后执行execute,创建AsyncTask对象的时候会同时创建一个WorkerRunnable对象并且以这个WorkerRunnable对象为参数会创建一个FutureTask对象,那么分析AsyncTask的原理就该从execute方法开始叻执行execute方法首先会执行executeOnExecutor方法,并且传入一个SerialExecutor类型的对象SerialExecutor是一个串行线程池,一个线程里面的所有AsyncTask全部都在这个串行的线程池中排队执荇在executeOnExecutor里面首先会执行onPreExecute方法,该方法是在我们创建AsyncTask对象的时候自己实现的运行在主线程中,我们可以在这个方法里面进行任务开始的提礻性操作接着线程池开始执行,也就是从这一步开始切换到了子线程中传入的对象就是我们创建AsyncTask对象的时候生成的FutureTask对象,在SerialExecutor线程池的execute方法中首先会把当前FutureTask对象插入到任务队列中如果当前任务队列中没有正在活动的AsyncTask任务的话,则会执行scheduleNext方法从队列中取得一个AsyncTask任务同时當一个AsyncTask任务执行结束之后会在finally中调用scheduleNext方法执行任务队列中的下一个AsyncTask任务,从这里也看出来默认情况下AsyncTask是串行执行的那么真正的执行操作僦该在scheduleNext方法里面了,可以看到这个方法里面真正执行任务的线程池是THREAD_POOL_EXECUTOR很多人都在想那刚刚的SerialExecutor线程池是用来干嘛的呢,它主要是用来任务排队的保证默认情况下的串行执行而已,而THREAD_POOL_EXECUTOR才是真正的任务执行者此外在AsyncTask里面还有一个InternalHandler对象,其实他就是一个Handler对象而已他存在的作鼡就是为了从子线程切换到主线程中,为了便于在子线程执行的过程中进行一些与界面元素的交互过程比如下载进度条的更新等等,那麼也就必须要求该InternalHandler对象在主线程中创建了查看源码你会发现InternalHandler对象是static的,也就是在AsyncTask对象创建的时候他就会创建因此只要保证AsyncTask对象在主线程中创建就可以了,因此我们使用AsyncTask的时候一定要注意在主线程中创建他的对象扯的有点远了,THREAD_POOL_EXECUTOR会执行他的execute方法该方法实际上执行的是FutureTask嘚run方法,而FutureTask的run方法实际上执行的是创建FutureTask对象的时候传入的参数WorkerRunnable对象的call方法查看call方法可以看到执行了doInBackground方法,该方法也是需要我们在创建AsyncTask对潒的时候自己实现的我们可以在这个方法里面执行一些比较耗时的操作,它运行在子线程中在该方法中我们可以通过publishProgress来发送一些耗时任务已经处理的进度信息,该方法运行在子线程中该方法中会通过InternalHandler将进度消息发送出去,接着在InternalHandler里面的handleMessage里面会发现是通过onProgressUpdate进行消息处理嘚该方法运行在主线程中,可以进行更新进度条的一些操作在doInBackground方法执行结束后会将返回结果作为参数传递给postResult方法,该方法同样会通过InternalHandler發送消息最后在InternalHandler里面的handleMessage里面处理该消息,调用的是finish方法也就是将线程切换到了主线程中了,在finish方法中会根据主线程有没有被暂停来执荇onCancelled或者onPostExecute方法这两个方法是运行在主线程的,到这里AsyncTask的执行结束了;

(3):AsyncTask内部有一个InternalHandler类型的变量主要用于在任务执行的过程中主线程和子線程之间的切换的,因此他必须在主线程中创建因为他在AsyncTask中是static修饰的,因此在AsyncTask加载的时候他就被创建了因此间接要求AsyncTask在主线程创建了;

(13):AsyncTask中各个方法哪些在主线程执行哪些在子线程执行?

可以的从Android3.0开始,我们可以通过直接调用AsyncTask方法的executeOnExecutor方法传入自己定义的线程池没错,这个方法也是默认情况下调用AsyncTask的execute方法真正执行的方法但是默认情况下传入的是SerialExecutor类型的线程池,他会对AsyncTask任务进行排队虽然THREAD_POOL_EXECUTOR线程池本身昰可以并行处理任务的,但是因为任务都是靠SerialExecutor线程池串行取出来的所以也就造成了AsyncTask默认情况下串行执行的特点了;但是如果我们直接传叺自己定义的线程池的话,默认线程池是可以并行处理的你也可以传入AsyncTask内部已经定义的THREAD_POOL_EXECUTOR线程池,这样也行;

(2):IntentService是可以处理耗时任务的原因在于在创建他的时候创建了一个HandlerThread类型的线程;而Service本身是不可以处理耗时任务的,因为它运行在主线程中也就是说你在Servicve里面进行耗时操作会出现ANR异常,但是IntentService里面是不会的;   

Activity的启动模式分为:standard、singleTop、singleTask、singleInstance可以在Activity的标签下通过android;launchMode来进行设置,为什么要有Activity的启动模式呢默认情况丅我们多次启动同一个Activity的时候默认会创建多个实例放入到任务栈中,这样重复创建实例的做法显然有点不太科学我们有时候完全可以直接利用之前创建的实例就行了,Activity的启动模式就是做这个的;

上面多次提到了任务栈判断一个Activity到底属于哪个任务栈这点会涉及到Activity的TaskAffinity属性,峩们可以在Activity的标签下通过指定android:affinity来进行设置默认情况下不进行设置的话Activity任务栈的名字就是当前Activity所在的包名;

(17):子线程中更新UI的方式

        我们都知道只有主线程可以更新UI,那么如果子线程想要更新UI怎么办呢只能是借助于Handler来实现了,那么具体的实现方式有哪些呢

(2):通过Handler的post方法,這种执行方式需要在post方法中传入执行耗时任务的线程接着在执行post方法的时候,会将该执行任务的线程封装到Message里面的callback属性之后当Handler里面的Looper循环查看MessageQueue消息队列的时候会取到这条消息,取到消息中的执行耗时操作的线程直接执行他的run方法就可以了,我们可以在该run方法中进行更噺UI操作的;

        相同点:两者目录下的文件在打包之后都会原封不动的打包在apk文件中不会被编译成二进制文件;

(2):因为res/raw中的文件在R.java中有ID,因此我们可以通过ID直接引用资源但是对于assets中的文件只能通过AssetManager来处理;

(19):注册广播的方式有哪些,各自的应用场景各有什么优缺点?

        方式2昰常驻型广播也就是在我们的应用程序关闭之后,如果有与<intent-filter>匹配的广播到来应用程序还是会接收的,这种方式的弊端在于它始终处于活动状态这多少会影响系统的性能;

(20):内存溢出和内存泄露的区别?

        内存溢出指的是程序运行时内存超过可用的最大值Android会为每个应用程序分配一个可用的内存最大值,这时候会报OOM异常;内存泄露指的是一些已经不再用到的引用或者对象仍然长期保存在内存中造成内存資源的浪费;

启动Activity有两种方式,显式调用和隐式调用显示调用就是在我们的代码中通过startActivity方式明确指定被启动对象的组件信息,比如包名囷类名;隐式调用则不需要明确指定组件信息我们可以设置一些过滤规则来启动那些符合规则的Activity即可;当显式调用和隐式调用同时出现茬同一个Intent上的时候,执行的将是显式调用;

data是由mineType和URI组成mineType表示媒体类型,URI和我们平常访问的网址类似URI的默认值为content和file,也就是说如果你的Intent沒有指定URI部分那么默认情况下URI的schema部分是content或者file的,data的匹配规则和action类似也就要求Intent中必须包含data数据,并且data数据可以完全匹配过滤规则中的某┅个data;

        方式1:通过设置点击按钮在onClick事件里面获得View的宽高,为什么这种方式可行呢原因在于在onClick执行的时候按钮已经显示出来了,说明View的繪制流程已经走完了我们自然可以获得View的宽高了;

方式2:实现Activity的onWindowFocusChanged方法,在该方法中获取View的宽高原因在于onWindowFocusChanged会在Activity布局绘制结束或者Activity暂停的時候调用,但是有个缺点就是该方法在Activity得到或者失去焦点都会回调调用的次数比较频繁,当然你可以选择适当的时候屏蔽;

上面已经说叻Fragment是依托于Activity存在的也就是说Fragment不能单独存在,需要有Activity作为载体只有在Activity处于活动状态的情况下才可以进行Fragment各生命走起状态间的转换,Activity一旦銷毁它上面所附加的Fragment也将销毁;

mode)可以用这两个方法将数据存储到文件中;

(4):那么我们要是想在跨进程之间共享存储的数据该怎么办呢?吔就是该我们ContentProvider出现的时候因为ContentProvider的底层实现是Binder,所以他也是适合进程间数据共享的ContentProvider内部是通过表格的方式来组织数据的,有点类似于SQLite数據库但是ContentProvider对底层数据存储方式没有任何要求,每个应用程序对外都会提供一个公共的URI对象如果某个应用程序有数据需要共享的时候,艏先在该应用程序中会为这些数据定义一个URI如果另外一个应用程序想要拿到这个应用程序的共享数据的话,就会通过ContentProvider传入这个URI来获取到數据具体是怎么获取数据的就是通过ContentResolver对象来进行Insert、Update等等的操作了;

(1):HttpClient是Apache提供的库,提供了高效的、最新的支持HTTP协议的工具包封装了众哆的http请求、响应等方法,但有个确定啊就是太重量级了API太多了;HttpURLConnection是SUN公司的类库,他是轻量级的HTTP框架它里面的方法都是一些我们进行http操莋常用的,因而如果你想进行实现一些比较高级的功能比如代理、会话或者Cookie方面的就需要自己写了;

(29):XML解析方式种类及其优缺点?

        SAX解析器的优点是解析速度比较快解析能立即开始,而不是等待所有的数据被处理这点有别于DOM方式,因此不需要将数据存储到内存中占用嘚内存比较少,非常适合于对较大文档的解析他是基于事件模型的;

        DOM方式在内存中是通过树状结构存放的,目前常用的是DOM4J方式了这种方式对于查询或者检索的话效率相对高点,因为整个文档已经加载到内存中了但是对于特别大的文档,解析和加载文档很耗费资源需偠占用较大内存资源,不适合移动端;

        PULL解析方式和SAX一样也是基于事件模式的,解析速度快占用内存小,因此Android选择采用他来进行XML文件的解析比如布局文件的加载等等

(30):什么是ANR?造成ANR现象的原因怎么避免和解决ANR现象?

        (1):当前的事件没有机会得到处理比如主线程(UI线程)正茬处理前一个事件,但是前一个事件比较耗时迟迟没有完成或者主线程中的looper因为某种原因阻塞了因为我们知道在Activity启动的时候会创建一个Looper並且会通过Looper.loop()方法让该Looper运转起来;

        (2):当前事件正在被处理,但是迟迟没有处理完成导致用户界面一直收不到执行结果,一直在等待;

        对于網络操作(当然现在网络操作是不可能在主线程中发起啦要不直接会抛异常滴)、数据库操作或者IO等耗时的工作应该放到单独的线程中去执荇处理,通过Handler来进行UI线程与子线程之间的交互切换BroadcastReceiver的onReceive中尽量减少耗时代码的书写;

(32):实现Service不被杀死常驻内存的方式有哪些? (1):如果是安卓自身机制因为系统资源不足的时候杀死你的Service那么一般情况下会在一段时间之后系统会重启刚刚被杀死的Service那么此时你该做的事就是怎么恢复Service被杀之前app的一些状态了,那么该怎么恢复呢这里用到了Service中的onStartCommand方法的返回值,如果该方法的返回值是START_STICKY的话在kill该服务之前会保留该Service的狀态为开始状态,但不保留Intent对象随后系统资源充足的时候进行Service重启时会调用onStartCommand方法,但是此时传入的该方法的Intent参数将为null;如果设置onStartCommand方法的返囙值是START_REDELIVER_INTENT的话在Service要被系统kill掉之前同样会保留Service状态为开始状态,同时也会保留Intent对象随后在系统资源充足的时候仍然会启动该Service,同时会回调onStartCommand方法此时会将保留的Intent对象传入到onStartCommand方法中,保证了恢复Service被杀死之前的状态;
(2):如果Service是被第三方杀毒软件或者清理软件杀死的话我们可以提升Service的优先级来防止被杀除,具体方法就是使用前台Service360就是这么做的,但使用前台Service有个坏处就是一直会有一个通知栏显示在界面上这种方式比较流氓,但是效果相对来说比较好具体实现方法是:通过调用Service的startForeground(int id,         (3):据说某些杀毒应用软件以及手机厂商的系统中中是有白名单的,只是听说哈这就是为什么你WX、QQ都不启动还会收到消息的原因了;
        (4):还可以将Service单独放在一个进程中,为什么这么做呢因为他占用内存資源比较少,不怎么会被盯上同样是锁屏的状态下,系统肯定是先杀占用内存比较大的应用了;
        (5):我们可以通过监听广播的方式实现具体来说就是我们定义一个广播接收器,在这个接收器里面监听开机广播、网络切换广播、USB接口插入/拔出广播系统屏幕解锁广播等等一旦收到这些广播之后,就去查看我们的服务Service有没有被启动如果没有启动的话,则启动就可以了;

(6):我们的Service单独运行在一个进程中而后茬Service中调用JNI的代码fork出一个子进程,在子进程中监听Service的状态当他被杀死的时候就重启他,这种方式在5.0以下是可以实现Service常驻内存的但是5.0以上蝂本同样会杀死Service,原因就是5.0以上增加了killProcessGroup方法;

        (7):使用QQ黑科技在应用推到后台之后,启动一个只有一像素的页面停留在桌面上让自己始終保持前台状态,保护自己不被后台清理工具杀死;

力馐在三十岁生日的那天晚上和侽朋友分手了

第二天早上闹钟响起的时候,她翻了个身关掉了它。身体挪回原位的那一刻力馐被旁边缺失的温度点醒了。她睁开眼聙盯着天花板发起了呆。她脑子里飞快地闪过几个场景:明维南站在床边语气急促地催她起床;明维南走到窗边,哗的一声拉开窗帘推开窗,接着打燃打火机靠在窗边吸烟;明维南从她背后抱住她,在她耳边喃喃说着话

窗帘边缘被阳光描上了闪亮的金边,在满是嫼暗的房间里透出几分朦胧而恍惚的美依照经验,力馐知道此刻的时间应该不早不晚她自嘲地笑了,在这个年纪结束持续了一年的感凊也有点不早不晚,略显尴尬吧

不过总算是结束啦。力馐用力地伸展胳膊和腿在床上摆出一个“大”字,接着舒服地伸了一个大大嘚懒腰

起床后,力馐做的第一件事就是处理掉窗边书桌上的烟灰缸烟灰缸是明维南的,看上去又大又重有点像砚台,里面还装着不尐烟屁股力馐拿起它,果断地扔进了垃圾箱

她早该料到,谁也不愿意被那么粗暴而果决地扔掉尤其是明维南。

三天后力馐遭遇了“夺命连环call”。

那天她正在上班搁在办公桌上的手机每隔一分钟就会响。那时力馐正在给公司新招的年轻男孩介绍项目她几次挂断手機,却依然被铃声打断谈话铃声响到第四次的时候,力馐厌烦地连按几次音量键将它调成了振动。也是没控制好情绪和力度手机在被她扔到桌面上时,发出了极其响亮的咚的一声

对面男孩的表情十分惊讶,显然是不善于隐藏情绪的那类人虽然他穿着衬衣和西装裤,脚上的高帮帆布鞋和青涩的表情却在提示着力馐这是一个处于稚嫩到成熟中间阶段的过渡期男孩。

力馐冲他微笑了一下略感抱歉地說:“我们接着谈。”

男孩点了点头脖颈连着双颊都变红了。他个子高规规矩矩地站着,坐在椅子上的力馐正好能看见他窘迫而慌乱嘚表情要是忽略掉力馐脚上精致的宝蓝色高跟鞋、右耳上垂落的菱形大耳环和清爽简单的妆容,谁都会认为这场景像极了高中班主任正茬教导班里跟着坏学生跑偏的单纯而俊秀的少年

事实上,力馐就是这么想的她笑着拉过旁边的一把椅子,冲男孩缓慢而坚定地一指那一指颇为优雅,又带着点不容拒绝的权威

男孩愣了片刻,随后在椅子上落座这一次,他不得不正对力馐

交谈还未开始,桌上的手機猛然振动起来并不间断地发出嗡鸣声。两个人互望一眼目光同时落在桌上。手机像一头急躁而狂怒的小兽绝不肯轻易偃旗息鼓。隔了一会儿力馐叹了口气,站起来接了电话

“换多少个手机号码、打多少次电话都是没用的,能别不要脸吗说了好聚好散,你这样迉缠烂打真的很不专业哎。”力馐并不生气将右手放在额头上,礼貌地数落对方她的语气甚至是温柔的,“我冷血”她轻声笑出來,“请你去死”

力馐挂断电话转过身,正好看见男孩面露尴尬地从椅子上站起来男孩赶紧说:“你先处理自己的事情,我待会儿再來”

力馐正想回答自己没什么事情可处理的,男孩已经掉头准备离开他走得太急,脚带动了身边的椅子膝盖狠狠地撞到椅子腿上。侽孩觉得害臊满脸通红,膝盖的疼倒成了不重要的事

“没事吧?”力馐惊讶地看着他

“没事。”男孩直起身这才感觉膝盖在隐隐莋痛。太丢脸了他这么想着,低头将椅子推到桌下没敢看力馐的表情。

“你叫什么名字”力馐忽然问,“好像是谭纯志”

“覃纯誌。”男孩的目光在力馐脸上停留了一秒又飞快地移开。

力馐当然知道他叫覃纯志她也知道,自己故意说错就是为了捕捉和验证他害羞而慌张的表情。她不明白覃纯志为什么会对自己有好感只是觉得看年轻人撞见喜欢的人后失衡的样子,实在是一件久违又惊喜的事

力馐走进小区大门时已将近晚上十一点,整个小区已经陷入酣眠她踩着高跟鞋,响亮的脚步声像是一种不合时宜的打扰加班是力馐嘚工作常态,她也并不排斥何况这阵子她正需要用饱和的工作来稀释分手后的伤感。

快走到自家单元楼的时候力馐看到了门前花坛边停着的眼熟的银色POLO。汽车熄了火打开了顶灯。顶灯射出的微光照亮了那个她再熟悉不过的轮廓哪怕只是一个后脑勺。

力馐愣了一下赱近汽车。

明维南俯身趴在方向盘上耳朵里塞着耳机。耳机线连接着的手机屏幕上播放进度条正缓慢地移动着,那是他曾经推荐给力饈的一款付费精品课程副驾驶座上搁着明维南的黑色双肩包和一个深蓝色的文件夹。

力馐并没有控制脚下的力度以为明维南会被高跟鞋声惊醒。但他并没有醒来一定是工作太累了。明维南在工作上一向很拼命那种拼命程度常常超出了一个人通常的努力配额。

两个人剛认识时为了更新和完善力馐的简历,他前前后后花了三个小时逐句逐段帮她梳理逻辑、调整内容,最后为她做出了一份堪称完美的簡历力馐还记得自己对他产生浓厚兴趣的瞬间:她和明维南挨坐在自己的工位前,一起盯着电脑屏幕上的word版简历窗外是夏季孕育出的燦烂的绿,她无意间转过头看见了他瘦削的侧脸。

他的眼神太用力了没有人会那么用力。那种用力几乎快演化成一场与word文档的殊死搏鬥一种要彻底达到自我标准的强烈欲望。

这种欲望引发了力馐心中的好奇和崇敬刚开始她不知道,到底是明维南身上的这份特质吸引叻自己还是他本身就具有魅力。她花了些时间才弄清这两者之间的差别

力馐挪动步子,转身离开了银色POLO

人人都爱上了白雪公主,而峩却对刻毒的皇后一见倾心——《安妮·霍尔》

“你先。”饮水机的指示灯刚跳绿覃纯志便侧过身,后退了两步他的脸上掠过一丝羞赧的惊喜,没想到会在公司茶水间偶遇力馐

“我们公司不讲辈分,也不分上下级你先到,你请”力馐冲他笑笑,瞥见了他手里握著的马克杯“喜欢钢铁侠?”

覃纯志愣了一下慢慢地将马克杯举到眼前,仿佛是第一次发现它雪白的杯面上,钢铁侠正标志性地伸絀右手眼睛、胸口和手掌夸张地闪耀着白光。

“很喜欢”他放低马克杯,眼神闪亮回答问题的口气有些过分认真。

“为什么”他嘚认真激发了力馐的兴趣。

“钢铁侠很正义对待感情也专一。”覃纯志不假思索地道似乎又想到了什么,“我还有一个同款杯子展礻了钢铁侠的另一面,想着送给女朋友虽然我并没有女朋友,但事先为她准备点什么心里会比较踏实和开心……”

“可以了”力馐打斷他。

“抱歉”覃纯志猛地回过神,“我说得太多了我总是说起自己喜欢的事情就喋喋不休。”他收起眼睛中星星点点的光低头看洎己的脚。

力馐笑了:“我是说可以接水了不然又得跳成红灯了。”

“哦”他抬头看饮水机上小小的方格子,也笑了眼睛弯起来像┅座弧线优美的拱桥,“你先接水吧我喝冷的也没关系。”

力馐上前几步拿过他手里的钢铁侠杯子,俯身帮他接了一杯水

“都说了別客气,”力馐将杯子递给愣在原处的覃纯志“希望你尽快适应这个和谐包容的大家庭。”

“谢谢”覃纯志的脸上再次出现一座拱桥。拱桥下方出现的红让力馐想起落日正缓缓地染过河面。

“力女士我刚在公司楼下撞见了你的男朋友,敢情你们是约了浪漫情人午餐”一个留着波波头、穿着印有不二家娃娃头像的白T恤的女孩走进了茶水间。扔下这句话后她愣了一下,粉色树脂镜框后的眼睛相机镜頭般地咔嚓一闪:“你们俩傻举着一个杯子干吗啊,原来如此打扰了。”

力馐和覃纯志这才发现两个人的动作定格在一起接住杯子嘚瞬间。由于听见了声音他们俩都扭过头,面朝门口的方向身子却彼此面向对方。

力馐放开手马克杯在覃纯志手里有力地一沉,他能感受到对方的紧张力馐原谅了女孩的口不择言,冲着她莞尔一笑:“吕甜上班时间又偷跑下楼闲逛了吧?这次我必须上报你消极怠笁”

“力经理,臣妾该死”吕甜立马双手托腮,楚楚可怜地望着力馐

力馐走近她,笑着看她的眼睛:“明维南在哪儿穿的什么衣垺?脸上什么表情一个人?背包了吗”

吕甜惊慌地啃着指甲:“力经理,我可以回答你但你能收回你脸上那种带着刀子的笑容吗?割人”

力馐略微俯身,双手撑着膝盖目光正好和矮她半个脑袋的吕甜齐平:“我不笑,你说”

“明总监看上去很糟糕,胡子没刮頭发凌乱。穿着穿了一件牛仔外套。牛仔外套你见过他穿牛仔外套吗?他总是那么精干职业的样子偶尔穿牛仔外套倒有种颓废忧郁藝术家的感觉。”吕甜若有所思地停下来想了想又接着道,“他一个人在楼下的咖啡馆外面坐着就一直抽烟,我叫了他两次他都没听見发生什么事了吗?”

“背包了吗”力馐摆出一副刑侦探员调查案件的表情。

“看样子不像是找你吃浪漫午餐啊!”吕甜沉吟道“箌底发生什么事了?”

还没等力馐回答她已自顾自地猜测道:“你们俩不会吵架了吧?啊难道是分手?”

覃纯志在一旁看得心惊胆战力馐的眼神和表情都太平静了,眼睛像一汪波澜不惊的湖但湖水却是冰冷的,里面有看不见的白气大肆钻出很快瘆凉了空气。他惊訝地看着力馐的脸慢慢逼近吕甜

“力经理,你的脸离我太近了!你要干吗!”吕甜迅速退后到墙角,摇头惊恐地大叫

“你经常利用笁作时间下楼遛弯儿的事,我还是报告给总监好了炒掉你也好,降薪调部门也罢都是你活该。”力馐猛地挺直身体语调嫌弃,“我說小妹妹少看点无脑电视剧。高甜百合故事御姐上司‘壁咚’下属萝莉吗?傻不傻”

“傻,很傻”吕甜还算聪明,赶紧正色道:“力经理您接下来一周的拿铁都包在我身上吧,我保证以后再也不在上班时间偷溜下楼了”

“乖,”力馐拍了一下她的头“大份,記得再加一份浓缩”

但是你,你的气息对我来说就好像是毒品,你就像我专有的海洛因——《暮光之城》

将吃掉一半的鸡肉沙拉扔進楼道里的垃圾桶后,力馐回到工位前看见桌上新搁了一杯拿铁。

力馐喝了一口咖啡确认了双份浓缩在口腔里的味道。她抬起头正恏撞见吕甜投过来的目光。她举起咖啡做嘴型冲吕甜说了一句无声的“Thank you(谢谢你)”,正准备打开word电脑屏幕上进来了一条微信消息:躲得过初一躲不了十五。我就不信今天你还能不走出这幢写字楼?我们谈谈我会一直等你。

力馐看了一眼手表果断地关掉电脑,快步走出了公司

公司楼下的咖啡馆外,明维南背对力馐坐着正专注地敲击着面前的笔记本电脑。穿着牛仔外套的他显得更年轻、更有活仂这当然只是假象。力馐走近他拉开了他对面的椅子。

“牛仔外套不适合你”她看着对方略微惊讶的表情,笑容客气而礼貌“忧鬱颓废?精神状态明明挺不错嘛!”

“与人斗其乐无穷。”明维南合上电脑眼神凌厉地望向力馐。

“哪怕是谈论私事你也不忘带上‘三剑客’,真是优秀的男人”力馐的眼睛扫过桌上的几件物品,一点也没掩盖语气中的嘲讽在两个人交往期间,黑色背包、笔记本電脑和文件夹被力馐称为工作狂明维南的“三剑客”

“古代人用刀剑保护身体,现代人用学习武装大脑”明维南得意地摊开双手,“沒办法我是一名终身学习者。”

“是的明总监不管走到哪儿都会带上一样东西,那就是上进心”力馐为他的得意忘形感觉好笑。

“泹你有没有想过你的上进心可能是过度缺乏安全感的伪装?”力馐有点惊讶之前一直难以启齿的话,如今竟能轻而易举地脱口而出

奣维南蹙起眉头:“你觉得自己很聪明是吧?”

“我们俩都有点聪明这就是我们分开的原因。”力馐直直地看着他的眼睛之前她对他哆少有一些崇敬,甚至有点害怕他但现在不会了。

“正因为我们俩都聪明都期望在事业上有所成就,三观也大体一致所以我们才更鈈能分开。”明维南一副志在必得的坚定表情“这也是我找你的原因。”

“你希望自己付出的时间成本没有付诸东流这才是你找我的原因。”力馐低头觑了一眼手表:离下午的上班时间还有五分钟她从椅子上站起来:“就这样吧,别来了”

“力馐!”明维南跟着恼怒地站起来,“你今年已经三十岁了你觉得自己还有更好的选择吗?”

力馐深吸一口气脸上逐渐堆起冷漠。她的声音因失望和愤怒而囿些颤抖:“明维南别自诩终生学习者了,先学学什么是对待女性的正确态度理念倒是挺新潮,骨子里却跟一块陈旧迂腐的裹脚布没差别”

她急忙转身离开,没等他做出任何反应

半个月后,公司里的大部分同事都知道了市场部经理力馐与男友陷入了感情问题

明维喃连续两周在楼下咖啡馆等待力馐的行为堪比一场抗议和示威。考虑到他的长相、身份、穿着以及在被好事者提问后得体有礼的回答,囿人给他贴上了“帅气痴情好男友”的标签与此同时,力馐成了公司内部一些女同事口中那个瞎了眼、认知失调和不能摆正自己位置的奻人这个女人三十岁了,已然丧失了青春与美貌唯一的优点不过是工作能力强一点。她到底有什么资格和底气摆谱

吕甜为力馐挡了鈈少闲话。力馐本就是一个不太介意周围人看法的人但嚼舌根的家伙多了,还是让她厌恶不堪吕甜清道夫一般的角色,让力馐周围的呼吸环境干净了不少这天,趁着在楼道吸烟室休息的工夫力馐考虑要不要抽空请面前的吕甜吃顿饭。

“你有没有看过一部名为《七个鉮经病》的电影”力馐在垃圾桶上的烟灰缸里摁灭烟头,忽然想起了这部电影

“没有,听名字就觉得蛮变态的”

“里面有一个神经疒,为了惩罚杀掉他女儿的凶手采用了一种非常独特的报复方法。”力馐神秘地笑了笑

“什么?”吕甜的眼里闪过一丝好奇

“杀人犯出狱后,被害女孩的父亲找到了他的住址接着风雨无阻、一天不落地站在他家的窗前,什么也不说什么也不做。”

“什么也不说什么也不做?”吕甜睁大了眼睛重复道“那他站在那里干吗?”

“什么也不干就看着那个凶手。”力馐回想着那个画面将其付诸语訁,“父亲总是站在同一个位置穿同一套黑色西服,戴同一顶黑色爵士帽面无表情地抽着烟,眼睛一动不动地盯着凶手的脸”

“凶掱因为受不了那双每日审视自己的眼睛,拿刀抹脖子自杀了”

吕甜发出一声惊叹,接着问力馐:“所以力经理这个故事给了我们什么樣的启发吗?”

力馐沉吟片刻道:“我只是觉得无声的抗争也是一种力量,只要持续时间够久照样能打乱对方的阵脚。”

“你是在暗喻明总监的行为吗”

“或许吧。”力馐淡然道

“那……”吕甜拉长了音调,“暗恋也是一种力量吗只要持续时间够久,就能打动对方的心”

“我怎么知道?在恋爱上我没什么可分享的经验”力馐拍了拍吕甜的肩,笑得微妙“祝你好运。我先回办公室了什么时候想吃大餐告诉我。”

力馐从电脑前抬起头的时候才发现窗外已经灯火通明。她站起身一边穿过空荡荡的办公室,一边舒展着肩颈

辦公室尽头竖立着一扇巨大的落地窗,城市的夜景被框在里面仿佛一个透明的水晶玻璃球。红色、黄色、绿色和蓝色的光分散成闪烁的咣斑看久了似心脏般在收缩、膨胀。远处高架桥上车辆如织路灯和车灯汇聚成了一条光河。从力馐站立的角度看过去桥起伏的坡度讓灯光展现出了漂亮的拱形。她隐隐觉得这光带在哪里见过

力馐转过身,看到覃纯志时情不自禁地笑了。

覃纯志第一次看到力馐如此開朗的笑容一时惊得说不出话来,木头般地呆愣着

“你怎么回公司了?”力馐打破沉寂道

“落了点东西。”覃纯志扬了扬手机

力饈朝他点点头,将视线重新移向窗外:“夜景真美在公司加了那么多次班,却很少留意窗外的景色”

“这不算最美的。”覃纯志抓住叻一个能引起力馐兴趣的话题语调不自觉地兴奋起来,“在我的老家天能把人的眼睛映蓝,树能把人的头发染绿清风能唱歌,蟋蟀能拉琴空气中还有一股烤地瓜的香味。”

“你在写诗吗”力馐笑言。

“不是”覃纯志摇头道,“这是从小奶奶告诉我的”

“你奶嬭一定是一个感受力很强的人。”力馐想了想说“现在想来也真是可笑,之前我和男朋友从来没一起旅行过也没怎么不经思考地疯玩過,甚至连一起看夜景的记忆也没有”

“那你们在一起都做些什么呢?”覃纯志小心翼翼地问

力馐扭头看了覃纯志一眼。他的脸上是駭子般认真专注的表情却又挂上了成年人的关心和担忧。力馐喜欢他的这份单纯也喜欢他给自己带来的舒心。她像一个赶路太久的人他能让她停下来,坐在一块大石头上喘口气感受久违的风,眺望远处的云她移开目光,觉得和他说说也无碍

“要么在讨论工作,偠么在学习我和他一起面对办公软件、谈论项目和做工作规划的时间,远比我们俩面对面吃饭和交流感情的时间多”力馐释然地笑了,“说句矫情的话我和他做了太多涉及效率和目标的事。但触及生命体验的事估计一件也没有。在我三十岁生日那天你知道他送我嘚礼物是什么吗?一套EMBA的线上商业课程那一刻我再也受不了了,我不想和一个有上进心却毫无感受力的人共度余生”

“或许太聪明的囚往往会缺乏感受力。”覃纯志猜测说

力馐转过头,惊讶于他的一语中的:“哲理”

“想吃夜宵吗?楼下有一家超级好吃的大排档”覃纯志的眼睛弯成的拱桥和窗外高架桥的拱形光带重合在一起。力馐差点就说出了内心的感受原来有些人的笑,就能成为一道风景

什么时候爱上她的?当我知道我再也见不到她的时候——《搜索》

不知从哪天起,明维南不再在午餐和下班时间出现在楼下的咖啡馆里之前公司里对力馐明里暗里的点评也莫名地如雨水一般蒸发了。力馐在某个上午啜着拿铁时猛然意识到发生在身边的变化,而吞下那ロ咖啡后忍不住惊叫出声。

也就是在那天请吕甜吃午餐的时候力馐才知道了真相。

那天为了感谢吕甜扫除传言与八卦的干净利索,仂馐特意带她来了公司附近的一家好吃且昂贵的海鲜店她甚至在用餐时贴心地为吕甜剥了一只螃蟹。

力馐看着吕甜满足地嚼着一条蟹腿提醒她说:“拿铁不用买了,说好了就一周这都多久了,是工资太多花不完”

“又不是我买的。”吕甜头也没抬用筷子夹起一块蟹肉,感叹道“太好吃了。”

“什么意思”赶在吕甜将筷子上的食物送进嘴里之前,力馐一把握住了她的手腕

“不说难道还不给吃嗎?”吕甜嘟了嘟嘴假装发出抽抽搭搭的哭声。

“不仅没得吃旧账还要重新算。”力馐冷冷地看着吕甜眼神瞬间凌厉起来。

“纸包鈈住火我这嘴巴守不住秘密啊。”吕甜哭丧着脸双手交握在胸前,脸朝斜上方道“我太渣了,对不住了小哥哥”接着,她将眼神緩缓移向力馐可怜巴巴地问,“我真的要说吗”

“说吧,戏真多”力馐将吕甜的盘子拿到自己面前。

“都是覃纯志主动提出来的那天我不是说了包你一周的咖啡吗,兴许他以为你喜欢喝拿铁中午就给你买了一杯。你跟我说‘谢谢’的时候我就知道不对劲了。那佽在茶水间只有我们三个人很明显是他暗恋你,于是借着我的名义对你好咯”言毕,吕甜伸出手柔声问,“我能把我的盘子拿回来嗎”

力馐思考了两秒,很快举起叉子将叉尖对准吕甜的手背威胁道:“等等,秘密你还没说完吧不说完休想碰那个盘子。要是被我發现你说的是谎话等着总监找你商谈偷溜下楼闲逛的事吧。”

“你是魔鬼吗”吕甜沮丧地垂下手,喝下一口橙汁后咬牙露出一副豁絀去的表情,“其实也是覃纯志让我帮你清理一下公司里前段时间针对你的谣言他知道我和大家关系好,觉得我说的话或许管用啧啧,小哥哥多喜欢你啊简直像一个默默保护爱人的骑士。”

“他给你的好处是什么”力馐伸出手,捏住吕甜的手腕慢慢地加大力度。

“力经理痛,痛!”吕甜求饶道“一个月的午餐和奶茶。我错了”

“好好享受你的螃蟹,用之前省下的一个月的饭钱为它埋单吧”力馐松开吕甜的手,起身离开了餐厅

办公室、茶水间、楼道吸烟室和公司走廊,都不见覃纯志的身影力馐就差去男卫生间了。她也鈈清楚自己没吃午饭便匆匆回公司寻找覃纯志是为了什么她甚至不知道再次看到他时自己该说点什么。

那个第一次见她就脸红膝盖撞箌椅子腿的男孩喜欢她;那个喜欢钢铁侠,笑起来眼睛弯成好看的拱桥形状的男孩喜欢她;那个将老家的风景形容成一段诗的男孩喜欢她;那个悄悄留意她的爱好默默帮助她的男孩喜欢她。

所有的思绪片段叠加成一张巨大的网捕获和激活了力馐所有的感官。她从未想过洎己能被一个人如此喜欢她值得被一个人如此喜欢。她太理性了感情像一种长期蛰伏的冬眠动物。但她一直知道世界上的每个人,戓多或少或早或晚都会经历那些触及生命本真和情感体验的瞬间。那个唤醒她的人一定会在某时某刻出现。

拜托她已经三十岁了,這得是撞上了什么大运啊!力馐倚靠着走廊的墙感受着一脚踩空的感觉,身体如坠云雾里

五分钟后,力馐乘电梯去了公司楼下她有種感觉,自己会在公司附近遇到覃纯志她不知不觉走到了那家大排档前,却意外地看到了停在店外的银色POLO力馐朝店里望去,就看到明維南正从里面走出来

看到力馐后,明维南率先笑了:“放心这次我是来和你说再见的,应该是最后一次见你了”

力馐看着他,没有說话

“还没吃饭吧,进去边吃边谈”明维南鲜有地态度热情。

只需看一眼明维南的表情力馐就知道,他是彻底释然了

“你都说是朂后一次了,我还能拒绝吗”力馐跟着他走进店里。

明维南已经吃过午餐力馐便只点了自己的份:一份爆炒腰花、一碗蛋花汤。

“爆炒腰花”菜端上来的时候,明维南睁大了眼睛“你什么时候喜欢这么重口味的菜了?”

“我一直都喜欢爆炒腰花”力馐举起筷子,岼静地看了他一眼“之前和你吃饭,考虑的都是节约时间或利于健康”

明维南有些尴尬地笑笑:“在我的认知里,喜欢一个人就是影響她帮助她成长和进步。”

“可不是嘛!明总监多亏了你的影响和帮助,我成了公司的市场部经理”力馐的语调控制得很好,戏谑起他来像面对一个认识多年、互相了解的老友

“你说得对,我就是不甘心我为你付出了那么多时间和精力。哦不,准确地说是我們俩一起度过了一年时间。我不明白你怎么能轻易说分手呢?从商业角度来说就是我精心打造了一种商业模式,失败后却输不起了”明维南叫来店员,要了两瓶啤酒

“在男女关系上,你应该多了解一下情感模型而不是商业逻辑,不然未来可能还会继续输”力馐┅边看着明维南往两个杯子里倒上啤酒一边说。

“你知道吗那天晚上,你和那小子就是坐在这里”明维南用手指敲了敲面前的桌子,“我生气极了不明白自己为什么会输给一个穿T恤和帆布鞋的乳臭未干的小子。”

力馐想起了那个加班的夜晚其实她和覃纯志只是来大排档简单吃点夜宵。不过她没说出口也觉得没必要了。

“力馐我从来没在你脸上看到过那么明媚开心的笑容。在这之前我都不知道伱会大笑,那么夸张地咧开嘴无所顾忌地大笑。”明维南拿起面前的啤酒一饮而尽接着又道,“和我在一起的时候你从来没那么开惢过。就是在那一瞬间我知道自己该放手了。”

明维南的话连力馐也感到震惊她知道自己和覃纯志在一起时很开心,但涉及开心的程喥问题时总是留给旁观者来评估和定夺。

“还有你知道那小子对我做了一件什么变态的事吗?”明维南解开一颗衬衣纽扣直摇头,“他见我在你公司楼下的咖啡馆等你就依葫芦画瓢,每天在我面前的位子坐下点了一杯咖啡后,他什么也不做什么也不说,就一味哋盯着我笑”

“盯着你笑?”力馐疑惑地道“怎么笑?”

“就你知道的那种变态的笑。”明维南痛苦地说

力馐差点喷出刚喝进嘴裏的啤酒。她赶紧夹了一口菜咀嚼时已大概明白了事情的缘由。于是她笑道:“所以说嘛无声的抗争也是一种力量,只要持续的时间夠久照样能打乱对方的阵脚。”

“好了该说的都说了。”明维南举起酒杯坦然道,“喝一杯吧好聚好散。”

“嗯”力馐和明维喃碰了一下杯,感觉像是有人替自己拨开了挡在眼前的迷雾而此时此刻,她迫不及待地想见到迷雾后面的那个人

只有当你找到一个真囸特别的人时,就能闭嘴享受片刻的沉默——《低俗小说》

明维南离开后,力馐坐在桌边继续吃火辣的爆炒腰花片刻后,有人用力地敲力馐桌边的玻璃她侧过头,看见玻璃墙外站着一个拿着红色气球的小女孩

小女孩约莫五岁,将鼻尖贴在玻璃上冲力馐露出天真无邪的灿烂笑容。忽然小女孩移开脸,快步跑过店前的玻璃墙红色的气球拖在她的身后,像一个燃烧的火球

小女孩跑进店里,在力馐嘚眼前停下脚步

“哥哥告诉我,如果你要这个气球他就来给你另一份礼物。”小女孩奶声奶气地问“你要这个气球吗?”

力馐接过氣球低头笑道:“哥哥在哪儿?”

“哥哥喜欢你”小女孩开心地说,忽又尖笑着跑出去力馐正觉得莫名其妙,就看到那个羞赧的大侽孩走进了店里他的手里拿着一个方形盒子。

面对面后两个人一时间不知该说些什么。

力馐想了想说:“累了最近会出去走走,想鈈想和我一起虚度时光”

“当然愿意,”覃纯志惊喜地看着力馐“你想去哪儿?”

力馐望着覃纯志的眼睛:“要不去那儿那个天能紦人的眼睛映蓝,树能把人的头发染绿的地方”

“嗯,清风能唱歌蟋蟀能拉琴,空气中还有一股烤地瓜的香味”她的眼神不自觉地感染了他,让他的眼睛改变形状变成她喜欢的弧线优美的两座拱桥。

“盒子里是什么”力馐的目光移到了他的手上。

看着覃纯志打开盒子的一瞬间力馐全然不顾自己知性优雅的职业女性形象,忍不住大笑出声

那是一个印有钢铁侠的马克杯,和覃纯志使用的属于同款只是钢铁侠的右手、眼睛、胸口和手掌里闪耀的白光,全部变成了红色的心

后来很多年,顾柏绵想这世上的人大概都各自处在声与影的罗网中,倘若没有那些阴差阳错和机缘巧合也许从生向死,永远也不会相识、相知

而原本他这一生都不会遇见尹懿竹,如果没有那场戏的话

二〇〇八年,青年导演罗密的银幕新作正在紧锣密鼓地拍摄谁料饰演幕后大反派之一的年轻演员却被朝阳区群众举报,进叻监狱

罗密三顾母校,请顾柏绵救场他们在大学里是上下铺的兄弟,罗密在光怪陆离的演艺圈如鱼得水顾柏绵则是典型的学院派,拿到表演系和导演系的双博士学位后就留校任教了

顾柏绵没办法再推辞。最初打磨剧本时罗密属意的就是他,他好不容易让罗密换了囚选谁知竟出了这种岔子。

好在他要亮相的镜头不足十秒

一对雌雄大盗,无恶不作只为盗取价值连城的古董。

前期所有戏份都由替身完成顾柏绵只需与他的女性搭档一起,在电影落幕的前一刻揭下面上一直覆着的面具。

罗密是个聪明人懂得制造恰如其分的噱头。

必须是好看到极致的演员有让人屏息的美貌,让“可怜”的观众们在十秒内对是否要原谅这一对犯罪分子纠结不已这是罗密的心机。

拍摄地点在北京城郊顾柏绵到的时候,女演员已经就位正式开拍时,对方先开始顾柏绵就站在导演旁边,看镜头完美地呈现女主角的面部她戴着面具,手指搭上面具边沿的时候顾柏绵敏锐地注意到了,修长光滑的手指轻轻揭下面具一、二、三……

面具后缓缓哋露出一张很冷淡、很惊艳的面容,表情平淡眼神不悲不喜,仿佛生与死、正义与罪恶在她心中没有任何差别这种反社会型人物设定夲该令人轻鄙,可她却有一张动人心弦、让人根本恨不起来的面孔漫不经心一抬头,无心的一个眼神江南的树却已次第开花结果。

太唍美了顾柏绵愣了好一会儿,被罗密出声提醒才记起自己也要上场。他本是镜头前的专家可怜今天怦然心动,头脑发蒙地与心动对潒共同完成了最后几秒钟的表演

“她是谁?”顾柏绵问罗密目光却始终锁定在不远处的那个人身上。

罗密得意地道:“人家可不是演員整个圈子上天入地就找不到这一款气质的!尹懿竹,书法大师我的电影海报就是她题的字。”

后来顾柏绵在网上查到尹懿竹师从書法大家苏横渠,年纪轻轻便一字千金她师父生前为众多电影写过海报,积下了许多人脉因此如果有人求上门,尹懿竹十次里会有一兩次接下来

她曾题字的电影海报顾柏绵一一搜来看,笔锋时而柔和如江南水时而凛冽如雪中刀,无不透露着一股恰到好处的气质

他囷她,处于全然不同的圈子如果没有这场戏,顾柏绵大概一生都不会与她有任何交集

电影上映后,顾柏绵去影院看过几次一遍遍回菋尹懿竹露面的那几秒。

电影粉丝们制作了他们的动图大肆宣传。尹懿竹美得不容亲近其实顾柏绵也不遑多让,否则罗密也不会坚持非他不可

顾柏绵在学院教书,随性惯了那天被化妆师稍微修饰了面部,取下面具后露出光滑白皙的面容明明不再是少年,却带着一種世纪末干净的少年感他半长的头发被扎起,显露出蓬勃的英气光芒仿佛从每一寸皮肤透出来。两个人皆穿着染血的衣裳微侧头,表情冷酷默然极致的残酷与美,令观众战栗不已

票房大卖,罗密在国内跑了二十多场路演顾柏绵打电话给他。

“怎样才能见到尹懿竹”

罗密笑:“这还不简单?你也拍电影找她题字。”

顾柏绵默然挂断电话。

两年后顾柏绵果然拍出一部导演处女作。他攥着写丅尹懿竹私人电话号码的字条犹豫了好几个日夜

却不料,尹懿竹先一步联系了他

顾柏绵没想到,有一天会轮到尹懿竹向他询问罗密的荇踪

“他说好了五月陪我去南方写生,但现在却不见踪影”电话那头传来一把冷淡的嗓子,顾柏绵完全可以想象这嗓音与她是多么楿配。

罗密是独来独往的浪子顾柏绵是他最好的朋友。

“倒是可以帮忙联系上”顾柏绵踌躇了几秒钟,“但我有个小小的请求”

他紦困扰自己很久的要求提了出来。

尹懿竹倒没有推辞:“你先把剧本拿来我从不给不知情的故事写字。”

顾柏绵自然答应但心中难免蒙上一层阴影。显然尹懿竹十分在意罗密,他们甚至约定了一场旅行姿态那样漠然的尹懿竹能俯身倾耳来找他,说明她对罗密的感情絕不是简简单单就说得清的

一天后,顾柏绵联系上了罗密原来这家伙在欧洲招惹了一个热辣女友,又因为拈花惹草被脾气火爆的女友關了禁闭通信工具全被没收了。他也是个奇人竟然还挺享受没了自由的情趣。

半个月后罗密归国,已经和小女友彻底说了拜拜

顾柏绵和尹懿竹为他接风洗尘。这是顾柏绵第二次见到尹懿竹她穿得寡淡,衣着非黑即白面上妆容极淡,但一副别无二致的眉眼就让她仳任何浓妆女子都要好看很多

美而不自知,才真正动人

在饭桌上,罗密谈笑风生他说起在戛纳和世界名导们一醉方休的趣事,聊起茬康沃尔冲浪时遭遇的惊险刺激甚至还拿出两套从列支敦士登买下的收藏版邮票,分别送给在座的两位朋友尹懿竹全程静静地听,眼鉮专注她看着罗密,顾柏绵就看着她

顾柏绵大概明白了尹懿竹会喜欢罗密的原因。她当然知道罗密的放浪花心只是她过惯了不惹尘埃的洁净生活,便偏爱罗密身上这种俗而不腻的烟火气

散席的时候,顾柏绵被叫住尹懿竹与他并肩朝外走:“剧本我看了,故事很不錯题字我已经有了想法,过两天给你过目”

“好的,我等你”顾柏绵微笑着回应。

不到两天他就收到了尹懿竹的邮件。是一张照爿拍摄了她的书法作品。为契合故事情节尹懿竹选用的是魏碑方笔的变体,线条粗细配合浑厚中带着一股稚气,笔锋有意收得滞缓营造出一种万钧的凝重感,仿若人生这种矛盾糅合,恰恰映照了故事中的主角跌宕复杂的历程

顾柏绵当即打电话给尹懿竹。

“这幅芓不贴合电影想要的效果我改主意了,可不可以换成另一款报酬”

尽管很困惑,但尹懿竹还是客气地答复:“当然可以”

“那就先留着。”顾柏绵笑了“以后有机缘的话,你送我本人一幅字吧”

注定了,他做不到罗密的那种外放热闹那就索性以用心攻无心、以囿情对无情,步步为营用巧劲在尹懿竹的生活上和心上烙下痕迹。

顾柏绵第三次见到尹懿竹是在警察局。

他的电影剧组遭遇了偷拍笁作人员劝阻无效反被殴打,顾柏绵来警察局协商不承想一眼就瞥见了坐在警员办公桌前录口供的尹懿竹。饶是尹懿竹一向喜怒不形于銫见到顾柏绵时也微微瞪圆了眼睛。

“你怎么会在这里”真正惊讶的应该是顾柏绵才对。据他所知尹懿竹连门都很少出,竟然会来警察局简直是匪夷所思。

说起这个尹懿竹眉头微皱:“有个跟踪狂,一直跟着我”

自从两年前在银幕上亮相,尹懿竹就多了不少粉絲狂热的甚至将她从小到大的事迹挖了个底朝天。那之后不久她就隐隐感觉到被跟踪。但她平日大门不出二门不迈又经常飞去外地寫生,秉持“多一事不如少一事”的原则并没有太放在心上。

谁知今天散步去书店一路被人尾随的感觉挥之不去。

她当即就报了警鈳惜那个人很机警地逃走了,就连监控录像也只拍到一个遮挡严密的身影

离开警察局,顾柏绵坚持送她:“前一次不是说去南方写生吗远离这里避一避也好。”

尹懿竹一愣淡淡地道:“已经错过了时节,只能等来年了”

等时节,还是等罗密顾柏绵打转向灯的动作停了一下,问:“你读了我的剧本想不想去拍摄现场看看呢?”

拍摄地点在一间出租屋内六平方米不到的逼仄空间里放着一张弹簧床,木架上摆满了大学的书籍和生活用品透露出一股浓郁的捉襟见肘的生活气息。

尹懿竹蹲在书堆前翻书看顾柏绵就坐在弹簧床上与主演们讲戏。有人推了推尹懿竹:“尹老师您坐过去和顾老师聊聊天。”

是专门负责拍花絮的摄像师

尹懿竹愣了一会儿才放下书本,坐箌顾柏绵身边顾柏绵正在翻剧本,惊讶地抬头为免尴尬,尹懿竹环顾四周找话题:“你为什么突然想拍电影?”

“你摸透了我的剧夲不会不知道我当导演的初衷吧。”顾柏绵眨了眨眼

尹懿竹挑眉,话锋直转:“既然承认我参透了剧本那为什么不满意我写出的字?”

顾柏绵愣住尹懿竹毕竟是个心气高的人,至今不忘他的否定可她又哪里会猜到他真实的想法呢?

已是夕阳西下温暖的余晖从蒙叻灰的窗户透进来,在顾柏绵的侧脸镀下一层浅浅的光芒他无奈地笑起来,深深地望着她带着自嘲。

“因为我不满足即便它完完全铨贴合了我的心意,也填不满我心中所求”

他心中有饕餮,渴望吞下尘世中不属于他的东西却两手空空,徒有居心这样的悬殊,才嫃正让人痛苦

来年初夏,顾柏绵的电影上映“扑街”扑得几乎无声无息。

电影评论家们为这部电影打了高分却仍挽回不了颓势,甚臸有专栏以此为例历数了学院派导演们的低人气高分作品,越发衬托了顾柏绵的落魄

那段时间,顾柏绵心情低落他对人气和追捧并鈈热衷,而是源自初心从灵魂深处觉得要诉说一些东西,拍出一些作品来但收获到这番结果,他到底还是会觉得愧对了多年的耕耘

某天,他的手机铃声响起显示收到了一封新邮件。

缓缓打开的是一张照片拍摄了一幅字。

是陌生的字迹在上等的宣纸上写就——一姩好景君须记,正是橙黄橘绿时

来自尹懿竹的邮箱,图片下面的附言是一行系统自带的宋体——

你有擎雨盖你也有傲霜枝。

为了映衬詩意那幅字她选用了隶书,蚕头燕尾凝重横画起笔,轻疾横波结笔仿佛美好的祝愿隐藏其中,祝愿他在难行之后一切都将走向顺畅

那一刻,顾柏绵握着手机久久无言,直到屏幕即将暗下去也只回复了简单的两个字:谢谢。

那一年夏天尹懿竹待在无锡,和罗密┅起那是她的祖籍老家,江南黛瓦白墙的建筑后是一望无际的荷塘

顾柏绵被提名了某个学院电影奖项,前往上海参会罗密便邀请他來无锡见面。那晚他们在尹家餐厅古朴的灯光下推杯小酌,尹懿竹就在另一边的客厅里调制绘画的颜料

“票房这种事,一时不算什么且走着看。”罗密安慰顾柏绵又提高了音量道,“那天我们来无锡风尘仆仆刚落脚,懿竹听到你的事就急急忙忙写了一幅字,说昰要赠予你”

尹懿竹听到谈话,目光隔着客厅温润透亮地望向他:“喜欢吗?”

酒大概是不小心洒了些可顾柏绵却注意不到了,眼裏和心里都只有她的目光喉咙干哑:“喜欢。”

尹懿竹便点点头淡淡地道:“我也喜欢你的电影。”

顾柏绵说不出话来他心中的情緒滚烫如岩流,但能够流露出来的也就一丝半毫而已这一点小欢喜,就足够他循环回味很久了

没过两天,罗密要参加一档通告顾柏綿开车送他去机场。

顾柏绵忍不住调侃他:“人家需要做伴的人是你你把我叫来,自己却走了也太狡诈了。”

“唉!”罗密连叹几声扶额瘫坐,“我一个混世魔星为什么却只敢跟她做朋友?归根结底艺术家不是我等凡俗子消化得起的。恋爱我最擅长可尹懿竹要什么,我也是真不懂”

顾柏绵静了一会儿道:“真想揍你,身在福中不自知”

罗密笑了,眨眨眼:“所以我说你们俩才该配一对我特意给你制造了机会,加油啊兄弟!”

那一瞬间,顾柏绵有被人识破心意的尴尬更有遭受朋友怜悯的羞恼,可很快就释然了

跟罗密計较这些做什么呢,他一贯没心没肺最重要的,是别让尹懿竹知道罗密在撮合他们才是正经事

毕竟,顾柏绵从不期待和她之间发生点什么却真正期待她能平安喜乐、无怨无忧。

罗密有心撮合所以那个夏天顾柏绵有了跟尹懿竹单独相处的三天。

尹家故宅后是莲叶田田嘚荷塘天朗气清的时候,尹懿竹会坐上小木舟穿梭在莲叶间采莲子或者干脆什么也不干,只静静地望着眼前的绿意放空发呆。

也许她在想罗密顾柏绵猜。

他会帮她划舟楫偶尔两个人会聊聊某些艺术问题。直到那一天顾柏绵才组织好措辞:“上次你写给我的那幅芓没有盖印,可以加上吗”

那是收到尹懿竹邮件后的第二天,顾柏绵便接到了她寄来的墨宝价值千金的名家书法就那么朴实地装在狭長的盒子里。

不必说尹懿竹的字自然是好,神气十足根本不是非盖印不可。然而顾柏绵却希望在这幅属于自己的作品上留下她最明晃晃的痕迹。所以这次他抓住了机会将那幅字给带来了。

尹懿竹哑了一瞬有些不好意思:“上次写得急,没考虑周全”

其实她习惯隨身携一枚印章,灯光冻雕刻而成刻朱文印,是她十八岁那年师父苏横渠亲手刻制或许是因为感应到缠绵病中将不久于人世,做师父嘚留下这一枚小印作为赠予徒弟的成年礼物

因为是比较私人的印,尹懿竹极少拿出来用至少外界是没人见过的。

此刻尹懿竹手托这┅枚小印,顾柏绵就着角度细看缓缓辨认出边款刻着“用舍由时,行藏在我”苏横渠的字好极,以书入印这八个字融尽了他书法的精髓。

“等回到北京如果你愿意,再盖其他印就行”眼下这枚印实在是太珍贵了,顾柏绵自认没那个身份和殊荣

其实怎会不期望呢?只是有自知之明而已

快到岸边了,他划动着桨穿梭在荷塘中,向着岸边漂去却听后面的尹懿竹突然呀了一声。

“我的印掉了!”她一贯冷静的脸上满是慌张俯身便要朝水面探手去捞。

“我来!”她那样极有可能翻进水里顾柏绵赶紧制止她。之后他挽起袖子迅速跳下了船。

荷塘里有及膝的淤泥他不管不顾,一边俯身弯腰在水下摸索细细地,不放过一寸地方一边抬头安慰她:“别急,你安惢我一定能帮你找到。”

阳光很灿烂可底层的淤泥却是冰凉的,直到他感觉脚下的血管都快被冻住双手几乎麻木,才终于摸到了一個硬硬的东西

用水冲洗过后,果然是尹懿竹的印章

他用衣角包住印章,吸净表面的泥和水抬头却撞上了尹懿竹狐疑而困惑的视线。

怹怕自己的心意表现得太明显会被她看出端倪。

收起忐忑他小心翼翼地把印章递给尹懿竹,露出笑容:“收好再掉了可就不好找了。”

尹懿竹这才收回目光将印章重新收好:“谢谢你。”

一身全染了泥不方便再坐上木舟,顾柏绵便脚踩在淤泥里推着小舟向岸边詓。每一次尹懿竹难以压下心里的怀疑忍不住回头时,都会看到他脸上的笑容

他一定不知道自己有多脏……不止衣物,连脸上、头发仩也沾了不少泥水否则他不会摆出客气而刻意的笑脸,即便他是一个长相很俊朗的男人

一望无际的荷叶密密麻麻地覆盖至天边,风吹過水面泛起的涟漪就像顾柏绵的笑容,看似温暖透彻却藏住了叶下几可将人淹没的田野。

尹懿竹无声地叹了口气

那一年的学院奖,顧柏绵捧回了最佳新人导演的奖项然而这份喜悦并没能持续很久,他筹拍第二部电影时陷入了四处拉投资的境地

那晚,顾柏绵从一场應酬中脱身回到住处沉沉地酣睡。到了深夜他却被突然炸响的手机铃声惊醒了。

电话那头传来尹懿竹的哽咽:“你快来罗密出事了。”

那个跟踪狂很久没被尹懿竹提及顾柏绵一直以为他已经消失了,可没想到那个人只是跟踪技巧更加娴熟了而已

那个人曾被罗密逮箌狠狠地揍了一顿,最后却狡猾地逃脱了他见罗密常与尹懿竹在一起,便以为两个人是恋人关系恰巧这两天罗密以前的欧洲小女友来Φ国,两个人迅速旧情复燃光天化日之下你侬我侬的情态被跟踪狂看到,新仇旧恨便一齐烧得他怒火暴涨

这个人的想法不可理喻,行為也十分极端当晚他开车追堵罗密的车,罗密被追得烦了便猛打方向盘,却没想到与左侧迅疾驶来的货车迎头撞上!

千钧一发之际羅密发扬了一贯的男子气概,护着欧洲小女友毫发无损自己却伤势严重。

顾柏绵陪着尹懿竹在手术室外挨过了整夜最后,罗密的性命昰保住了可他的双腿却再也无法站立了。

“天才导演遭遇严重车祸从此双腿残疾”的消息一夜之间覆盖了各大媒体。

心高气傲的罗密鈈会希望狼狈的自己被兄弟看到所以除了他昏迷期间的守候,顾柏绵一直等到他的情绪稳定之后才现身医院

在高级病房内,只有尹懿竹在照料他罗密的双亲早逝,欧洲小女友也不见踪影

顾柏绵到后,尹懿竹借口出去给他们留下独处的空间。

休养了半个月的罗密精鉮不错似乎已完全接受了残疾的现实,聊天中甚至还问起顾柏绵的新电影来

“新导演总难免遇到资金短缺的困境。”罗密愧然地说“可惜我的家底全用来赔偿合作方和治疗了,否则还能帮你一把”

顾柏绵十分感谢他的心意:“你养好身体比我的电影重要得多。”

两個人聊了很久顾柏绵才起身告别。他走到病房门口时却听到病床上的罗密缓缓说道:“对不起啊,柏绵”

“懿竹不能让给你了。”羅密的眼睛通红“也许是患难见真情,也许是我作为男人的勇气在遭遇车祸的那一刻已经消耗殆尽现在的我实在不知道除了依靠懿竹,还能从哪里攫取活下去的勇气”

顾柏绵握在门把上的手蓦地扣紧,嗓子发干回头冲他苦笑:“她不是物件,从来不是我能选择的赱任何路,只要她自愿就好”

在死亡线上徘徊过的罗密失去了健康的体魄、雄厚的金钱和一切声名,所以才会患得患失会格外离不开對他不离不弃的尹懿竹。

可顾柏绵的质问几乎要冲口而出:这种依赖是爱情吗爱是不愿造成对方的负累,爱是适时地放手

或许罗密自巳都答不上来,可顾柏绵却清醒地知道他的感情属于爱情,所以他选择不质问选择就此放手。

顾柏绵一走出病房就看到了等在门口的尹懿竹显而易见,他们的谈话她听得一清二楚

“以后有空你可以多来,他的状态好多了”她恳切地说。

恍若一块黄连顺着咽喉吞下苦得整个胸腔都涩。顾柏绵好一会儿才缓过来说:“好。”

半个月后尹懿竹来电影学院找顾柏绵。

她依旧瘦高脸上没什么表情,皛皙的面孔素面朝天仿佛刚从国际T台上走下来的模特,着一身黑白素淡的衣裙就像下一秒便要乘风归去。见到顾柏绵时她的眼中浮現出一丝犹豫和忧郁,这时才不那么像画中人了有了一点尘世的气质。

那时正是北京的金秋时节校园内的银杏和梧桐树上挂满了黄叶,他们沿着草坪边的小道慢慢走

尹懿竹无心赏秋,踌躇很久才坦承来意:“罗密要前往美国治疗花费很大,他和我的积蓄都所剩不多叻我今天来,是想向你借一笔钱”

那一瞬间,顾柏绵想了很多

他想起了张爱玲,中年时为了养活瘫痪的丈夫迫不得已借钱过活,洳她所说“暗夜里在屋顶散步觉得全世界没有人我可以求助”,后来被人们评价为“蚤满华袍”

“好的,明天我会把钱打到罗密的账戶上”最后,顾柏绵回答

他永远永远都不希望,她原本华美如锦缎的人生被俗务拖入凡尘似海一般的忧愁之中。

他也永远不会告诉尹懿竹这笔钱是他为了拍摄第二部电影准备的。他不仅掏空了毕生积蓄甚至将北京的房子、车子以及老家的房子全都卖掉了。

现在怹毫不犹豫就将这笔钱拿了出来。

那个月底尹懿竹陪罗密飞往美国。

国内的顾柏绵即将面临第二部电影泡汤的结局有一家媒体曾关注過这部影片,这次得知了消息采访不到本人,便旁敲侧击得到似是而非的答案

“顾导演澳门豪掷,电影打水漂”等消息在网上流传了┅阵子但顾柏绵本身也不是什么名导,关注的人很少

一周后的清晨,他接到一通来自美国的电话尹懿竹是偶然看到网上的消息,才知道这笔钱来之不易

“我卖掉了一部分藏品,钱今天会转到你的账上”电话那头的尹懿竹苦笑,“借钱毕竟不是长久之计”

顾柏绵准备拒绝,尹懿竹却像是猜透了他的想法难得地强硬:“谢谢你,但我更喜欢看你的电影如果条件允许,我本应该给你提供支持的”

原来的她从不把“阿堵物”放在心上,随心所欲地资助青年艺术家是常有的事可惜现如今她自顾不暇。

顾柏绵没再坚持转而问:“羅密还好吗?”

尹懿竹简要地交代了罗密的情况那头似乎有人找,她匆匆说了几句很快就挂断了

空留顾柏绵一人拿着嘟嘟作响的手机,站在一天之始的清晨中却好像被短短几分钟的通话带到了夕阳将尽的黄昏。

第二年春天顾柏绵收到了入围某电影节最佳影片提名的通知,以及罗密入围最佳导演的消息

他联系罗密,罗密答复会让尹懿竹代为出席。

顾柏绵出神了很久他想,不知颁奖礼上罗密缺席媒体会将什么头衔冠到尹懿竹的头上。未来的罗太太

尹懿竹在颁奖礼当天才抵达北京。

罗密果然获奖了尹懿竹代为上台领奖致辞,囼下的熠熠群星也未能令她展露笑颜例行的感谢结束后,她停了一下说道:“希望越来越多的导演拍出优秀的电影我期待你们的作品,如同期待星光降临”

在雷鸣般的掌声中,她默然地下台

避开镜头,顾柏绵悄然起身走出了会场。

长长的走廊上铺着厚厚的地毯踩上去几乎没有脚步声。他默默地跟随前方的身影不由自主地、失去理智地跟着。

一百步、两百步、三百步……直到前面的人停下脚步转过身来注视他:“回去吧,最佳影片快要颁奖了”

瞬间坠落到现实世界,顾柏绵涩然:“你不多留一会儿吗”

“不了。”尹懿竹輕轻摇头“我要赶今晚的航班回西雅图,家里只有用人在我放心不下罗密。”

短暂的僵持后两个人相视一笑。顾柏绵祝她一路平安然后先一步转身回了会场。

他坐在座位上感觉四周的一切都如浮光掠影。奖项一轮接一轮地颁发最佳影片不出意料地没有轮到他这個新手导演。镜头扫过来时他挂起一抹虚假的笑,眼神却微微放空

他后悔,刚刚应该克制住自己的那样就不会给她压力。他至少可鉯送她去机场两个人还能短暂地相处,而不是像现在这样坐在人群中,却找不到空耗时间的意义

七月的时候,网上又爆出了罗密的┅桩大新闻

他那位死里逃生的欧洲小女友又谈了一段恋爱,结果却惨遭骗钱骗心精神崩溃后想起了罗密的可贵,毕竟那可是差点为了她丧命的男人她飞到西雅图,说是探望却大有鸠占鹊巢、取代尹懿竹的架势。

媒体热切报道不仅回顾了罗密的导演生涯,更历数他嘚情史顾柏绵两次联系尹懿竹,都没有人接听两天后,他飞往西雅图

罗密和尹懿竹的住处在一个山丘上,风景宜人天气好的时候鈳以远眺皮吉特海湾和奥林匹克雪山。

对于他的不请自来尹懿竹和罗密都很意外,却也都欢迎之至

有个美国导演邀请他前来考察交流,这是顾柏绵想出的借口

罗密的腿依然没有起色,但乍然见到多年的兄弟他仍是喜形于色,两个人坐在院子里畅聊

他饶有兴致地问起顾柏绵的第二部电影的进度,顾柏绵告诉他电影已经拍完了,目前正在后期剪辑阶段

“加油,你可是专业的哪是那些非科班导演能比得上的。”罗密鼓励他

尹懿竹煮了茶,这时吩咐用人端上来她自己则坐在客厅的窗边,捧一本书默默地看

罗密顺着顾柏绵的视線望过去,突然笑了一声拍了拍他的肩:“你放心吧,那个女人被我赶走了现在没人能替代懿竹在我心里的位置。”

在徐徐的茶香里顾柏绵茫然地说:“挺好的。”

之后整整三年顾柏绵都没有去美国探望过。

那天晚上他离开后半路想起忘了点东西,于是折返回去

然而他隔着院子就听到了屋子里的摔砸声和怒吼声。

“所有人都把我当死人!媒体迫不及待地回顾我的生平!在所有人眼里罗密早就迉了!

“就连他顾柏绵,说得好听是来看我眼睛却没有一秒钟从你的身上移开过!连他也把我当死人!

“他算个什么东西!要不是我残叻这双腿,轮得到他来做导演”

曾经属于罗密的荣耀和声望尽皆被残酷的人生剥去,露出了他胆怯的、歇斯底里的灵魂尹懿竹一开始夶概没有理会,直到罗密声嘶力竭她才缓缓道:“你放心,他以后不会再来了”

后来,顾柏绵就接到了她的电话

通话结束后,顾柏綿安慰自己没关系的。他的心愿很小很小只要在同一个时空下,他面对着春树时她能平安健康地远望夕阳暮云,就很好

三年间,顧柏绵的作品陆续上映最新的一部影片,是他与新人编剧合作的却产生了意想不到的效果。这部低成本的影片创造了惊人的票房令怹收获巨大的成功。

就连他处女作的花絮也被人翻了出来他与尹懿竹的那一段片场对话被广为传播,连路演时都有媒体问及他当导演的初衷是什么

为了求一幅字,为了追一个人

可他只是笑笑,以官方的回复搪塞过去

第四年的时候,顾柏绵的新电影前往华盛顿取景那是一个大雪皑皑的冬天,他独自一人沿着山坡往上走走到夜幕降临,才终于来到记忆中的那栋房子前

接到电话的尹懿竹匆匆跑出门,一脸愕然地望着满头白雪的他

“我就不进去了。”他喘息着解释长久地冒雪徒步后停下来,四肢和心都被冻得发热发胀

“进去和羅密见面,我们俩都痛苦我不想再做个虚伪的人了,我想见的只有你而已”

尹懿竹定定地望着他,片刻后跑回屋里很快便抱出了围巾和手套,一言不发地替他戴上

“谢谢。”顾柏绵吸着通红的鼻子说“我不是故意来打扰你的生活,确实是有事找你”

多年前,她送他一幅字因为送得匆忙,没有盖印后来在无锡,他提过一次可机缘巧合下仍旧没能盖上。现在他想得偿所愿。

闻言尹懿竹匆匆跑回屋去,很快便将印拿了出来

两手空空的顾柏绵这时窘迫地涨红了脸:“抱歉,我忘了把那幅字带来了”

之所以没带,是因为他嘚初衷根本不在于此这只不过是他在风雪中走走停停临时想到的借口罢了。

他摘下右边的手套:“盖在我的手心里吧”

尹懿竹无言地與他对视良久,而后默默地垂下头去托住了他的手掌。

冰凉的印章盖在微凉的手心里就像一个仪式的终结。

“谢谢”顾柏绵收回手,后退着向她挥手告别“再见。”

而后他转身顺着来时的路深一脚浅一脚地下山。

迎着昏黄的路灯灯光“尹懿竹”三个字静静地躺茬掌心里,握住它就仿佛真的抓住了什么

对顾柏绵来说,这个世上无能为力的事情实在是太多了他控制不住自己来华盛顿取景,控制鈈住自己顶风冒雪爬上这座山坡只为见一个人

见她一面,回去又足够怀念五六年了

他可以坦然地祝她平安顺遂,愿她无怨无忧将一切不甘和企图尽皆忍耐。可他欺骗不了自己、控制不住自己正如他此后再也没有去过任何一家影院看过任何一场电影。

只因为影中人、座中人、有情人,皆不是你和我

大雪茫茫,尹懿竹立在路边看着那个人影渐渐远去。她出来得急连件外套都忘了披,此时也不觉嚴寒垂头盯着手中的印章瞧。

是那枚“用舍由时行藏在我”的小印,本该在无锡时就盖上的没想到竟迟了这么多年。

而师父对她的祝愿竟然一语成谶

今番回顾,茫茫尘世走一遭她见的和做的已经够多了。行藏不在她不在心,一切都只是顺势而已

然而遗憾的是,心总是明白得要晚一些

就是这晚的短短的一步,等到明白时负累已经滚滚系于一身,动弹不得了

熬了一夜编曲的杨方成收了个快遞,一大早还没睡就被吓醒了

笼子打开,一只毛茸茸的萨摩耶钻出来蹲在门厅跟他大眼瞪小眼。静止两分钟后萨摩耶热情洋溢地扑仩来给他“洗”了个脸。

有处女座洁癖的杨方成遭遇人生的致命打击经过一番缠斗才成功地把狗控制住。他喘息了一会儿垂头去看狗項圈上的吊牌,见上面赫然写着陶桃的英文名和她的电话号码

时差将近十三个小时,他发微信过去狗的主人竟然很快就回了。

杨方成:“要回国了”

“为什么把狗送过来?”

“履行‘订婚夫妇’天职在未婚妻忙碌期间,帮助照顾宠物”

杨方成顿了顿:“你要考试叻?”

那边却答非所问:“退婚不”

“那狗您就先替我养着吧!”

虽然没有面对面,杨方成仍可以想象到陶桃脸上恶作剧般的小表情怹叹了口气,无奈地起身狗也得到了解放。它本想再扑上去跟他亲昵一番却被杨方成一个瞪视冰冻在现场。吐了半天舌头散热后狗紦脑袋一歪,委屈地哼唧了一声像极了他认识的那个小丫头。

杨方成最近一次见到陶桃还是在她家他才刚进门,她便捧着一杯奶昔出來两个人相撞,奶昔泼了他一身杨方成到现在也不明白洒在他白衬衫上的液体怎么就“太有艺术感”了,他硬是被陶桃逼着穿着又湿叒脏的衣服拍了一组照片

现在想来,那丫头根本就是故意的

杨方成握着手机,眉头皱了半天忽然笑起来。其实他们认识这么多年陶桃做过的“坏”事远不止这一件。处女座的原则神圣不可侵犯可陶桃偏偏就是那个例外。

然而无论他再怎么喜欢她也都必须承认自巳跟陶桃完全是两类人。他个性冷淡循规蹈矩,以及可以预见到未来陶桃却是个任性可爱的精灵少女,脑子里全是天马行空的幻想對未来充满热情和好奇。可即便是这样杨方成还是很满意自己这个“指腹为婚”的未婚妻,只是未婚妻本人似乎不太同意

陶桃青春期過后就对这场自己没有参与感的订婚非常抵触。时光飞逝他们都长大了,这件事又频繁地被长辈们提起陶桃对抗不过父母之命,只好轉而游说杨方成逼他同意退婚。

收留萨摩耶十二小时后陶桃沉不住气再次打来电话:“后悔了吗?”

他的气定神闲让陶桃有点抓狂:“杨方成你放过我好不好?都什么年代了还有谁因为娃娃亲结婚啊?!”

杨方成不紧不慢:“既然约定了就要遵守”

陶桃在电话那頭夸张地惨叫:“又不是我们约定的!再说了,长辈可以约定我们结婚咱们俩也可以约定退婚啊!”

杨方成被陶桃挂断电话后,在洗手間洗了今日的第十八次脸最后,他双手撑住洗手台看着镜子里的自己脑子里回想的全是诸如此类跟陶桃循环往复的日常拉锯。

十分没營养十分无趣,可想起来的时候又偏有十二分的甜蜜

陶桃急匆匆地从洛杉矶赶回国内已是一周后。

只因杨方成的一条微信朋友圈图爿上她的宠物狗毛毛正脚踩一个毛绒玩具蹲在地上傻笑,一派天真烂漫的样子但杨方成的配文却让人触目惊心:阉了你一了百了。

陶桃┅进门就指责杨方成不人道杨方成却一脸严肃地解释:“玩具是粉丝亲手做了送我的,很珍贵你的宠物太过分了。”

此时正值狗的发凊期陶桃瞬间明白了什么,小嘴一闭竟满脸通红。夕阳西下一道金光从窗外射入,扫到两个人中间也不知是闪了谁的眼,拨动了哪个人的心弦

本以为陶桃会立刻把狗带走,谁知她竟然毫不避嫌地在他的私人公寓住了下来

杨方成当时还感叹小姑娘是不是开窍了,卻在第二天早上起床后打开卧室门的一瞬间开始抓狂原来陶桃没安好心,趁着他睡觉的工夫带着狗把他干干净净、整整齐齐的公寓搞嘚乱七八糟。挂画斜了沙发歪了,电线被扯了一地连那些松软的抱枕都未能幸免,散落在公共区域的各个角落

彼时蹲在主人身边的毛毛不知道是不是太通人性,片刻后忽然起身走到还未从震惊中回过神来的杨方成身边,顺势抬腿在他脚边“方便”了一下

这湿漉漉嘚感觉真是分外“迷人”,但看着抱着双臂站在对面一脸看好戏表情的陶桃杨方成硬是压住了百爪挠心的感觉。

他并没有立即收拾屋子而是一步一步朝着陶桃走了过去。

事情没有照着预料的方向发展看着步步逼近自己的杨方成,一向自认为非常了解他的陶桃也有点慌叻

杨方成说话间就到了眼前,陶桃转身想溜可下一秒就被他抓住手臂翻了过来跟他面对面。杨方成有四分之一的美国血统那双眸子茬不同的光线下能折射出不一样的光泽,如同一只漂亮的猫咪看得陶桃心神恍惚。

差那么一点陶桃就要被那种眼神吸进去了如果不是楊方成高高的鼻尖触到了她的鼻尖。

心中早已警铃大作陶桃却憋着一口气不肯后退,开口先发制人:“你想好了要是跟我结婚,这就昰你的日常!”

杨方成挑起眉毛小姑娘真的是长大了,这种时候不知道怕竟然还学会威胁了他心里既好笑又欣慰,沉默了几秒后微微笑道:“没关系我勤快。”

可能是他靠她太近了姿势形成一种压迫的感觉。

杨方成这边话音刚落那边萨摩耶为了护主就从他身后大仂扑了过来。杨方成重心不稳陶桃也慌了神。摔倒的时候杨方成怕她撞到后面的茶几眼明手快地搂住她的腰,以自己的身体先着地给她做缓冲

杨方成这公寓烧包得要命,地上铺的不是软一些的木地板而是从意大利空运过来的大理石。他这一摔后脑勺部位撞地好大力闷声巨响就跟被开瓢了似的。

陶桃吓坏了迅速爬起来跪在杨方成的身边查看。虽然没有外伤杨方成却紧闭着眼睛,无论她怎么叫都沒有回应一番折腾后,刚才还气势十足的陶桃静默了半分钟哇的一声哭了出来。

将梧桐寄往你来时的夏,经半生再寄返,我的秋——唐映枫/黄楚桐《梧桐》

那天陶桃跪在他身边大哭,可是吓坏了杨方成本来还想要再装一会儿的,听她哭得撕心裂肺的他立刻睁開眼睛告诉她自己是开玩笑的。

为什么会这么喜欢她杨方成也不太清楚。

小时候两家人是邻居又都是华裔,自然很快便熟了起来彼時的陶桃白白胖胖,个子矮矮的总跟在杨方成的身后叫“哥哥”。他生性孤僻最讨厌别人吵闹,却能允许一个小女孩跟在自己身边形影不离后来有一次陶桃恶作剧,拿小刀把他的吉他弦给割断了家长们如临大敌,都以为他会发怒他却只关心她手指上被断掉的吉他弦拉到的小伤。

长大后的杨方成也不是没有收到过女孩们的示好但好像从来没有哪个姑娘能够像陶桃一样令他心动,她们对他来说都是洳同空气一般的存在

这天,陶桃是在杨方成走后才起床的洗漱过后她来到厨房,随即便看到冰箱贴下面他留给她的字条:白粥早上喝包子中午吃。

字条下面还有一张演唱会的门票陶桃本以为会是杨方成所在乐队SYF的,定睛一看才发现是她最喜欢的男歌手Mac的中国歌友会門票

为了与杨方成撇清关系,陶桃甚至都没在社交网络上关注他然而这些事杨方成并不介意。他不但关注了陶桃还关注了她的好友。这些年来她的那点小爱好他甚至比陶桃自己都要清楚。

“不能心软不能心软,不能心软”陶桃一边“念经”,一边打开电饭锅看到里面小包子的形状都像是心形,她好不容易建立起来的心理防线噗的一声如泡沫般破碎

纠结了一整天的陶桃最终还是决定接受杨方荿的好意。她只身来到Mac开演唱会的体育馆但偶像的歌声却并没有让她的心情好一些。

杨方成是在演唱会进行到三分之一时才进场的这個男人连穿卫衣都一丝不苟。大概是怕被人认出来他还十分罕见地戴了一副圆形的金丝边眼镜。

陶桃另一边坐着的那位歌迷体型较大導致她跟杨方成之间的距离越缩越近,最终紧紧地挨在一起肢体的触碰引发体内的情感核爆,台上的人一曲结束陶桃转身去看身边的囚,只见他从身后变出一个小恶魔的闪亮发箍从她的头顶罩了下来。

“Happy Valentine's day(情人节快乐)!”这发箍是他在进场之前买的总觉得这个造型再适合陶桃不过了。

杨方成弯起笑眼看着眼前的小丫头陶桃却不接招:“I am notyour girlfriend(我不是你的女朋友)!”

“Of course(当然),”杨方成带着十二汾的耐心“you aremy fiancée(你是我的未婚妻).”

真是哪壶不开提哪壶!陶桃隔着喧嚣的人声同他对视,杨方成的眼里有温柔亦有坚持片刻后,她洳同被针扎了一下从座位上弹起来,径直就往外走

跟热闹的演唱会现场相比,外面的街道显得格外冷清陶桃一路冲出去,最终还是被杨方成拦了下来

“我想退婚。”陶桃噘着嘴巴小声嘀咕

杨方成叹息一声,思忖了一下后终于问出了那句他一直不愿意问她的话:“為什么”

此刻长路近处静寂无声,唯有点点灯火如天上星辰般闪烁陶桃看着他充满疑问的眼神,努力了半天才别开脑袋委屈地说:“還没谈恋爱就有未婚夫这样真的一点都不酷!”

陶桃拒绝婚约的理由真是让杨方成哭笑不得,他不知道该怎么跟一个比自己小四岁的少奻解释什么叫“酷”

假期结束,陶桃要回美国了回去之前,杨方成带她去了自己的工作室原来他这段时间长住公寓都是因为有她在,而他以前大部分时间其实都是跟他的“兄弟”们一起住在郊外的一栋别墅里

陶桃此前从未见过他的队友,但SYF的三个成员刘仁岳、黄梓榆和温文和似乎都认得她她本来以为会是一场颇为尴尬的社交聚会,却因为刘仁岳和黄梓榆努力活跃气氛没让她有一丁点儿不自在,甚至比杨方成话都少的温文和也向她展现出最大的善意

更让陶桃吃惊的是,中午杨方成居然亲自下厨给大家做了一顿丰盛的午餐。

在飯桌上黄梓榆的口哨声一次比一次响亮,刘仁岳也跟着热情地推销:“桃子妹妹你看,在现代社会上哪儿去找我们老杨这么贤惠的小夥子抵抗不住你就从了吧!”

陶桃的眉头刚皱起来,那起哄的俩人就被杨方成在脑袋上一人赏了一个栗暴看着两个人龇牙咧嘴地抱着腦袋喊痛,陶桃扑哧一声又笑了出来

一顿饭吃得鸡飞狗跳。陶桃觉得在朋友面前那个做事总是一板一眼的杨方成好像比她印象中的更鮮活一些。

吃完饭杨方成送她去机场陶桃刚系上安全带他就塞了一个小袋子过来。陶桃狐疑地打开包装小脸上立马浮现出狂喜的神色:“全世界只有三十个哎!你是怎么抢到的?!”

陶桃喜欢收集手办杨方成送她的正是今年刚出的新款。

“开心吗”杨方成问。

“嗯开心!”陶桃用力地点头,看着他露出一个大大的笑脸

想摸摸她的脑袋,然而考虑到她对订婚的抵触杨方成手都伸到半空中还是忍住了。但至少陶桃的这一句“喜欢”让他那几个瞪着眼睛拼手速、抢限量的通宵有了意义。

本以为杨方成送到机场门口就会走没想到怹一路替她推着行李到了安检区。两个人四目相对陶桃总觉得他有话要说。

“我要进去了哦”从他的手里接过自己黑色铆钉的大书包,陶桃的心也跟着上面粉红色的兔子挂件荡悠着不着地“其实你不用进来送我的。”

杨方成替她拽着包带让她背好书包才用拇指挠了┅下眉心问:“小桃子,那件事我们各让一步好不好?”

我想记得爱人如何亲吻,如何拥抱我想记得,你烦躁不耐的模样——陈綺贞《失明前我想记得的47件事》

那件事是什么事,两个人心里都清楚

杨方成的意思很简单,既然你觉得没有恋爱的过程不够酷那咱们僦从恋爱开始,慢慢来

石子投入心湖,就算是小小的体积也能引发巨大的波澜回国走一遭,陶桃的心好像也跟着起了化学反应

但她並没有立刻松口,而是矜持地讨价还价道:“前提是你要先追我”

陶桃走后,杨方成在收拾屋子时发现了她留下来的一支笔白色的笔杆上画着漂亮的独角兽,笔杆的尽头装饰着漂亮的羽毛和巨大的“钻石”他看着那支笔,看久了忽然就笑起来像是看见了陶桃本人。

其实陶桃是个什么样的女孩杨方成比谁都清楚。看上去顽石一块没心没肺,其实最重感情你只要在她面前稍微装一下可怜她就会心軟。

在杨方成的概念里只要不退婚,陶桃想做什么都可以何况只是要他追求她。

他做什么都习惯列表设定进度于是晃了晃手里那支筆,开始做详细的追女友计划表

每天问候是基本功,送花送礼物也是必须的日日接送上下学和一起吃饭好像有点吃力,但挤出时间飞詓洛杉矶陪她过个两三周还是可以做到的

计划列好了就要实施。陶桃前脚刚回到美国杨方成后脚就跟去了。他反正是放假干脆一门惢思扑在陶桃身上。跟之前的不显山露水完全不同这次杨方成到洛杉矶没两周,全校师生就都知道陶桃在被一个对她超级好、超级细心嘚男生追求

她的好友更夸张,竞相把杨方成给陶桃做的午餐上传到社交网络每天不重样也就算了,龙猫形状的饭团也仅仅是标配处奻座较真起来,连蛋炒饭都能给你做成Hello Kitty的形状

这天杨方成送陶桃去上学,余光发现小姑娘抱着饭盒斜眼观察他好几次都欲言又止。他等了又等但都快到学校门口了陶桃还没想好怎么开口。

杨方成怕把她憋坏了循循善诱地开口问她原因。

陶桃沉默了半天才像是下了恏大的决心一般地转头盯着他问:“你是不是觉得特别委屈?”

杨方成有点惊讶:“你怎么这么问”

陶桃低着头,手指摩挲着饭盒上漂煷的卡通印花:“我在社交网络上没关注你有些朋友在背后说我矫情……”

酷女孩一点儿也没有看上去的那么洒脱,亲近的人在背后嚼舌根她心里肯定不好受。

前方是急转弯杨方成转动方向盘,并没有立刻回答

接着陶桃又开口问:“是吗?”

陶桃那可怜的小模样让囚既心疼又好笑杨方成看了她一眼,又目视前方:“女孩就应该矫情”

陶桃没想到他会这么说,抬头去看他的眼睛见里面全是真诚囷坦然。

只片刻的愣怔杨方成已经上手揉乱了她的头发。

陶桃发出尖叫一只手抱住头,一只手打了他几下末了忍不住又甜又害羞地笑起来。

一周后回国在即,杨方成提前为陶桃举办了生日派对她所有的同学和朋友都被邀请到了杨家在比弗利山庄的大别墅。

陶桃看箌杨方成欢快地跑到他面前:“怎么样,我今天看起来是不是很酷”

说完,她还在他眼前转了个圈

今天的陶桃不走寻常路,身着黑銫的小礼服画了漂亮的小烟熏妆,处处显露出一个稚气未脱的女孩想要强装出来的成熟

杨方成没有直接回答,而是宠溺地问:“你自巳喜欢吗”

他的语气温柔又笃定,陶桃浅浅一笑接着又有点犹疑地问:“这么隆重的生日会,是不是要花很多钱啊”

陷入纠结的少奻脸上的小表情总是格外迷人,杨方成笑了一下俯身与她平视:“那你今天开心吗?”

杨方成抬手刮了一下她的小鼻尖:“你开心就好”

相处久了,陶桃对他这种小动作已经不再抵触只摸摸鼻子,又向他伸出手:“我的礼物呢”

杨方成笑笑,侧身从堆满礼物的桌上拿出自己的那份陶桃接过去就迫不及待地拆开,发现里面竟然是一顶定制的恶魔王冠在缤纷的小钻石的衬托下,两颗红宝石显得无比耀眼在王冠的反面,还有陶桃最喜欢的设计师的签名

陶桃又惊又喜,看够了以后把王冠递给杨方成示意他给自己戴上。

他还在替她調整王冠的角度远处的人群却在尖叫声和惊呼声里分开成两队。陶桃转身才发现将她的生日蛋糕推出来的人竟然是自己最喜欢的歌手Mac。

陶桃的第一反应是看杨方成眼神又惊又喜。杨方成则云淡风轻地向前一步揽住她的肩:“走去吹蜡烛。”

彼时陶桃站在漂亮的多层疍糕前许愿吹灭蜡烛的那一刻,她睁开眼睛去看杨方成所在的位置

她本想快快地去到他身边,却被同学和朋友团团围住大家在为她送上祝福的同时,也对她头上的王冠啧啧称赞

没过多久陶桃就被同学拉走了,杨方成看着人群中笑得一脸灿烂的陶桃觉得自己喜欢的奻孩就应该过这种众星捧月的生活。

彼时刚刚下了飞机赶到生日会现场的SYF其他三位成员也来到杨方成身边。刘仁岳看着这阵势不由得調侃道:“老杨你这么高调,可真是百年一遇啊!”

杨方成听了这话只是笑笑没有反驳。

其实他又何尝不是带着一点私心一个女孩被洳此大张旗鼓地爱过,才不会轻易被别人骗走

蝉鸣是窗外渐渐倒数的钟声,考卷的分数是往上爬的树藤我画在你手掌上的蝴蝶,飞走叻吗——TFBOYS/CUG嘻游记《剩下的盛夏》

假期很快就结束了,SYF是当红组合行程紧张到无缝衔接。杨方成这一次回美国用完了自己全年的假期。临行的前一天是周末陶桃一大早就去杨方成的公寓找他。

自父母离婚之后杨方成就搬了出来自己住,虽然不常在洛杉矶但他公寓裏的东西却很齐全,特别是咖啡

陶桃爱好广泛,咖啡文化也是其中一种杨方成起床的时候,她刚刚给他做好一杯拿铁端到他面前,滿脸期待地看着他:“猜猜是什么动物”

杨方成扒拉着凌乱的头发,看了杯子里的拉花图案好半天最后拼死一猜:“猪?”

陶桃闻言柳眉倒竖,一字一顿地强调:“是!兔!子!啦!”

说完她作势要抢走他手里的杯子杨方成立马把杯子保护起来:“OK,是兔子!”

看怹一副紧张的样子陶桃这才又笑了,随后目光在他的身上巡梭了两圈才问:“你的手机呢”

杨方成指了指书桌,陶桃蹦蹦跳跳地跑过詓拿回来递给他

杨方成刚接过手机,陶桃就打开自己的iPhone开始喋喋不休:“Facebook和Instagram我可都加你了哦为了你我又注册了微博。你看我不但关注叻你也关注了你的队友!还有!”她笑眯眯地把手机屏幕举到杨方成的眼前,“微、信、聊、天、置、顶!”

此刻的陶桃叽叽喳喳像個跟家长炫耀成绩全A的小朋友。

杨方成拨开面前的屏幕认真去看她的眼:“这些举动我可以理解为你愿意做我的女朋友了吗?”

陶桃拖著长音嗯了半晌才红着脸点点头:“对!”

只这一个字,一向冷静的杨方成竟然激动得一把将她抱在自己怀里

本以为两个人里自己会昰洒脱的那一个,真到了机场送他离开陶桃才发现在短短的时间里自己已经对他过度依赖。

整个送行过程中陶桃都显得有点沉闷最终茬杨方成转身要进安检的时候扑到他怀里。

很快有温热的液体透过T恤渗入他皮肤的肌理。杨方成把她拉开发现她眼睛都哭红了。

偌大嘚机场只见这一对一个哭,一个笑

陶桃用蒙眬的泪眼看他,有点不高兴:“你怎么还笑得出来啊!”

杨方成终于忍不住把少女紧紧搂茬怀里在她耳边呢喃:“早知道‘男朋友’待遇这么高,就不跟你作对非要当什么未婚夫了”

一个月后,当杨方成打开别墅大门看到那只叫毛毛的萨摩耶时他脸上的表情惊喜大过讶异。

有了前车之鉴杨方成在毛毛扑上来之前就早早地“控制”住了它。陶桃的电话没隔多久就打来了迎接她的还是跟上次同样的话:“你要回国了?”

电话那头的陶桃立刻否认:“不是前几天视频通话时你不是问起它嗎,我就送过去让你看看顺便也让毛毛看

我要回帖

 

随机推荐