Android深入浅出之Surface[1]
Android深入浅出之Surface 一 目的 本节的目的就是为了讲清楚Android中的Surface系统,大家耳熟能详的SurfaceFlinger到底是个什么东西,它的工作流程又是怎样的。当然,鉴于SurfaceFlinger的复杂性,我们依然将采用情景分析的办法,找到合适的切入点。 一个Activity是怎么在屏幕上显示出来的呢?我将首先把这个说清楚。 接着我们把其中的关键调用抽象在Native层,以这些函数调用为切入点来研究SurfaceFlinger。好了,开始我们的征途吧。 二 Activity是如何显示的 最初的想法就是,Activity获得一块显存,然后在上面绘图,最后交给设备去显示。这个道理是没错,但是Android的SurfaceFlinger是在System Server进程中创建的,Activity一般另有线程,这之间是如何...如何挂上关系的呢?我可以先提前告诉大家,这个过程还比较复杂。呵呵。 好吧,我们从Activity最初的启动开始。代码在 framework/base/core/java/android/app/ActivityThread.java中,这里有个函数叫handleLaunchActivity [---->ActivityThread:: handleLaunchActivity()] private final void