Android S: SurfaceFlinger指Surface.java的用途

Handle onto a raw buffer that is being managed by the screen compositor.
Surface是一个句柄,该句柄是指向由屏幕合成器管理的原始缓冲。

A Surface is generally created by or from a consumer of image buffers (such as a
Surface通常被图像缓冲区的消费者创建或来自于其。
{@link android.graphics.SurfaceTexture}, {@link android.media.MediaRecorder}, or
{@link android.renderscript.Allocation}), and is handed to some kind of producer (such as
然后交给生产者在其原生缓冲区中绘画,最终显示。
{@link android.opengl.EGL14#eglCreateWindowSurface(android.opengl.EGLDisplay,android.opengl.EGLConfig,java.lang.Object,int[],int) OpenGL},
{@link android.media.MediaPlayer#setSurface MediaPlayer}, or
{@link android.hardware.camera2.CameraDevice#createCaptureSession CameraDevice}) to draw into.

Note:A Surface acts like a
{@link java.lang.ref.WeakReference weak reference} to the consumer it is associated with. By
itself it will not keep its parent consumer from being reclaimed.
注意:Surface是一个弱引用到与之管理的消费者,就其本身而言,它不会阻止父类消费者被回收。

47  /**
48   * Handle onto a raw buffer that is being managed by the screen compositor.
49   *
50   * <p>A Surface is generally created by or from a consumer of image buffers (such as a
51   * {@link android.graphics.SurfaceTexture}, {@link android.media.MediaRecorder}, or
52   * {@link android.renderscript.Allocation}), and is handed to some kind of producer (such as
53   * {@link android.opengl.EGL14#eglCreateWindowSurface(android.opengl.EGLDisplay,android.opengl.EGLConfig,java.lang.Object,int[],int) OpenGL},
54   * {@link android.media.MediaPlayer#setSurface MediaPlayer}, or
55   * {@link android.hardware.camera2.CameraDevice#createCaptureSession CameraDevice}) to draw
56   * into.</p>
57   *
58   * <p><strong>Note:</strong> A Surface acts like a
59   * {@link java.lang.ref.WeakReference weak reference} to the consumer it is associated with. By
60   * itself it will not keep its parent consumer from being reclaimed.</p>
61   */
62  public class Surface implements Parcelable {
11-23 18:08:42.224 1995 4914 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: AppDeath #1 11-23 18:08:42.224 1995 4914 E AndroidRuntime: android.view.Surface$OutOfResourcesException: NO_MEMORY 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at android.view.SurfaceControl.nativeCreate(Native Method) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at android.view.SurfaceControl.<init>(SurfaceControl.java:1665) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at android.view.SurfaceControl.<init>(Unknown Source:0) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at android.view.SurfaceControl$Builder.build(SurfaceControl.java:1321) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.WindowContainer.setInitialSurfaceControlProperties(WindowContainer.java:804) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.Task.setInitialSurfaceControlProperties(Task.java:3420) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.WindowContainer.migrateToNewSurfaceControl(WindowContainer.java:840) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.Task.migrateToNewSurfaceControl(Task.java:2607) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.TaskOrganizerController$TaskOrganizerState.removeTask(TaskOrganizerController.java:481) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.TaskOrganizerController$TaskOrganizerState.-$$Nest$mremoveTask(Unknown Source:0) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.TaskOrganizerController.onTaskVanished(TaskOrganizerController.java:1048) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.Task.sendTaskVanished(Task.java:4944) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.Task.setTaskOrganizer(Task.java:4964) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.Task.setTaskOrganizer(Task.java:4950) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.Task.removeImmediately(Task.java:3105) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.Task.removeIfPossible(Task.java:826) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.Task.removeChild(Task.java:1730) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.Task.removeChild(Task.java:1666) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.WindowContainer.removeImmediately(WindowContainer.java:1052) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.WindowToken.removeImmediately(WindowToken.java:362) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.ActivityRecord.removeImmediately(ActivityRecord.java:5348) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.WindowToken.removeIfPossible(WindowToken.java:267) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.ActivityRecord.onRemovedFromDisplay(ActivityRecord.java:5411) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.DisplayContent.removeAppToken(DisplayContent.java:1737) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.ActivityRecord.removeFromHistory(ActivityRecord.java:4966) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.ActivityRecord.handleAppDied(ActivityRecord.java:5325) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.WindowProcessController.handleAppDied(WindowProcessController.java:1709) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.wm.ActivityTaskManagerService$LocalService.handleAppDied(ActivityTaskManagerService.java:7504) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:3723) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.am.ActivityManagerService.appDiedLocked(ActivityManagerService.java:3909) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.am.ActivityManagerServiceExtImpl$2.run(ActivityManagerServiceExtImpl.java:2466) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.DeathRecipientTaskExecutors$1.lambda$newThread$0(DeathRecipientTaskExecutors.java:51) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at com.android.server.DeathRecipientTaskExecutors$1$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0) 11-23 18:08:42.224 1995 4914 E AndroidRuntime: at java.lang.Thread.run(Thread.java:1119) 安卓上层JE重启,这堆栈分析得出什么
11-25
11-25 11:41:53.853 27223 27223 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: main 11-25 11:41:53.853 27223 27223 E AndroidRuntime: android.view.Surface$OutOfResourcesException: NO_MEMORY 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at android.view.SurfaceControl.nativeCreate(Native Method) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at android.view.SurfaceControl.<init>(SurfaceControl.java:1665) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at android.view.SurfaceControl.<init>(Unknown Source:0) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at android.view.SurfaceControl$Builder.build(SurfaceControl.java:1321) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at com.android.server.wm.WindowContainer.setInitialSurfaceControlProperties(WindowContainer.java:804) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at com.android.server.wm.WindowContainer.createSurfaceControl(WindowContainer.java:800) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at com.android.server.wm.WindowContainer.onParentChanged(WindowContainer.java:781) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at com.android.server.wm.WindowContainer.setParent(WindowContainer.java:753) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at com.android.server.wm.WindowContainer.addChild(WindowContainer.java:983) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at com.android.server.wm.DisplayAreaPolicyBuilder$PendingArea.instantiateChildren(DisplayAreaPolicyBuilder.java:963) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at com.android.server.wm.DisplayAreaPolicyBuilder$HierarchyBuilder.build(DisplayAreaPolicyBuilder.java:607) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at com.android.server.wm.DisplayAreaPolicyBuilder$HierarchyBuilder.-$$Nest$mbuild(Unknown Source:0) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at com.android.server.wm.DisplayAreaPolicyBuilder.build(DisplayAreaPolicyBuilder.java:352) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at com.android.server.wm.DisplayAreaPolicy$DefaultProvider.instantiate(DisplayAreaPolicy.java:136) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at com.android.server.wm.DisplayContent.<init>(DisplayContent.java:1405) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at com.android.server.wm.RootWindowContainer.setWindowManager(RootWindowContainer.java:1394) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at com.android.server.wm.ActivityTaskManagerService.setWindowManager(ActivityTaskManagerService.java:1185) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at com.android.server.am.ActivityManagerService.setWindowManager(ActivityManagerService.java:2257) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at com.android.server.SystemServer.startOtherServices(SystemServer.java:1944) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at com.android.server.SystemServer.run(SystemServer.java:1074) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at com.android.server.SystemServer.main(SystemServer.java:709) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:613) 11-25 11:41:53.853 27223 27223 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1052) 这段上层JE重启分析出什么
最新发布
11-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值