Android Camera子系统之进程/文件View

本文基于Android 4.2.2从进程/文件的角度审视Android
Camera子系统。

AndroidCamera子系统的整体架构分成客户端(Client)和服务器(Server)两个部分,它们建立在Android的进程间通讯机制Binder的基础之上。

查看进程

[email protected]:/# ps

USER  PID
 PPID
 VSIZE
  RSS
 
 WCHAN
  PC
 
 
 
 NAME

media 1012
 
 1
 37484
 8740 ffffffff 4016bfe8 S/system/bin/mediaserver

u0_a142119 1010 162156 31244 ffffffff 4007cee4 S com.android.camera

查看线程

[email protected]:/# ps -t

USERPID PPID VSIZE RSS WCHAN PC NAME

media1012 1 37484 8740 ffffffff 4016bfe8 S /system/bin/mediaserver

media1191 1012 37484 8740 c0042004 4016d108 S AudioCommand

media1192 1012 37484 8740 c0042004 4016d108 S ApmCommand

media1208 1012 37484 8740 c0042004 4016d108 S AudioOut_2

media1209 1012 37484 8740 c02b2ffc 4016bfe8 S Binder_1

media1519 1012 37484 8740 c02b2ffc 4016bfe8 S Binder_2

media2055 1012 37484 8740 c02b2ffc 4016bfe8 S Binder_3

media2362 1012 37484 8740 c0042004 4016d108 S TimedEventQueue

media2363 1012 37484 8740 c0042004 4016d108 S .vorbis.decoder

media2364 1012 37484 8740 c0042004 4016d108 S OMXCallbackDisp

media2365 1012 37484 8740 c0042004 4016d108 S TimedEventQueue

media2366 1012 37484 8740 c0042004 4016d108 S .vorbis.decoder

media2367 1012 37484 8740 c0042004 4016d108 S OMXCallbackDisp

media2368 1012 37484 8740 00000000 4016d6a4 R CameraPreviewTh

media2369 1012 37484 8740 c0042004 4016d108 S CameraAutoFocus

u0_a142119 1010 162156 31244 ffffffff 4007cee4 S com.android.camera

u0_a142122 2119 162156 31244 c0042004 4007d108 S GC

u0_a142124 2119 162156 31244 c0026658 4007c9c8 S Signal Catcher

u0_a142125 2119 162156 31244 c0364f54 4007cbd0 S JDWP

u0_a142126 2119 162156 31244 c0042004 4007d108 S Compiler

u0_a142127 2119 162156 31244 c0042004 4007d108 S ReferenceQueueD

u0_a142128 2119 162156 31244 c0042004 4007d108 S FinalizerDaemon

u0_a142129 2119 162156 31244 c0042004 4007d108 S FinalizerWatchd

u0_a142130 2119 162156 31244 c02b2ffc 4007bfe8 S Binder_1

u0_a142131 2119 162156 31244 c02b2ffc 4007bfe8 S Binder_2

u0_a142134 2119 162156 31244 c0042004 4007d108 S pool-1-thread-1

u0_a142136 2119 162156 31244 c00a5004 4007cee4 S CameraHolder

u0_a142152 2119 162156 31244 c02b2ffc 4007bfe8 S Binder_3

u0_a142375 2119 162156 31244 c0042004 4007d108 S SoundPool

u0_a142376 2119 162156 31244 c0042004 4007d108 S SoundPoolThread

u0_a142377 2119 162156 31244 c0042004 4007d108 S Thread-123

列出binder service

[email protected]:/# service list

63media.audio_policy: [android.media.IAudioPolicyService]

64media.camera: [android.hardware.ICameraService]

65media.player: [android.media.IMediaPlayerService]

66media.audio_flinger: [android.media.IAudioFlinger]

查看进程虚拟地址空间

media 1012
 
 1
 37484
 8740 ffffffff 4016bfe8 S/system/bin/mediaserver

[email protected]:/# cat /proc/1012/maps

401f7000-40215000r-xp 00000000 00:11 637 /system/lib/libbinder.so

40215000-4021a000r--p 0001d000 00:11 637 /system/lib/libbinder.so

4021a000-4021b000rw-p 00022000 00:11 637 /system/lib/libbinder.so

4025a000-4025b000r-xp 00000000 00:11 524 /system/lib/libhardware.so

4025b000-4025c000r--p 00000000 00:11 524 /system/lib/libhardware.so

4025c000-4025d000rw-p 00001000 00:11 524 /system/lib/libhardware.so

40451000-40467000r-xp 00000000 00:11 585 /system/lib/libcamera_client.so

40467000-40468000---p 00000000 00:00 0

40468000-4046d000r--p 00016000 00:11 585 /system/lib/libcamera_client.so

4046d000-4046e000rw-p 0001b000 00:11 585 /system/lib/libcamera_client.so

40581000-40586000r-xp 00000000 00:11 636 /system/lib/libhardware_legacy.so

40586000-40587000r--p 00004000 00:11 636 /system/lib/libhardware_legacy.so

40587000-40588000rw-p 00005000 00:11 636 /system/lib/libhardware_legacy.so

4059c000-405d4000r-xp 00000000 00:11 655 /system/lib/libcameraservice.so

405d4000-405d8000r--p 00037000 00:11 655 /system/lib/libcameraservice.so

405d8000-405d9000rw-p 0003b000 00:11 655 /system/lib/libcameraservice.so

405d9000-405dc000r-xp 00000000 00:11 582 /system/lib/libcamera_metadata.so

405dc000-405dd000r--p 00002000 00:11 582 /system/lib/libcamera_metadata.so

405dd000-405de000rw-p 00003000 00:11 582 /system/lib/libcamera_metadata.so

40b12000-40b1f000r-xp 00000000 00:11 569 /system/lib/hw/camera.sama5d3-ek.so

40b1f000-40b20000r--p 0000c000 00:11 569 /system/lib/hw/camera.sama5d3-ek.so

40b20000-40b21000rw-p 0000d000 00:11 569 /system/lib/hw/camera.sama5d3-ek.so

41eb5000-41eb7000r-xp 00000000 00:11 565 /system/lib/hw/gralloc.sama5d3-ek.so

41eb7000-41eb8000r--p 00001000 00:11 565 /system/lib/hw/gralloc.sama5d3-ek.so

41eb8000-41eb9000rw-p 00002000 00:11 565 /system/lib/hw/gralloc.sama5d3-ek.so

42264000-42426000rw-s 3f200000 00:0b 554 /dev/video1

u0_a142119 1010 162156 31244 ffffffff 4007cee4 S com.android.camera

[email protected]:/# cat /proc/2119/maps

40130000-4014e000r-xp 00000000 00:11 637 /system/lib/libbinder.so

4014e000-40153000r--p 0001d000 00:11 637 /system/lib/libbinder.so

40153000-40154000rw-p 00022000 00:11 637 /system/lib/libbinder.so

40154000-401e5000r-xp 00000000 00:11 598 /system/lib/libandroid_runtime.so

401e5000-401e6000---p 00000000 00:00 0

401e6000-401ea000r--p 00091000 00:11 598 /system/lib/libandroid_runtime.so

401ea000-401f0000rw-p 00095000 00:11 598 /system/lib/libandroid_runtime.so

404e9000-404ff000r-xp 00000000 00:11 585 /system/lib/libcamera_client.so

404ff000-40500000---p 00000000 00:00 0

40500000-40505000r--p 00016000 00:11 585 /system/lib/libcamera_client.so

40505000-40506000rw-p 0001b000 00:11 585 /system/lib/libcamera_client.so

44cfe000-44cff000r--s 003c4000 00:11 160 /system/framework/framework.jar

44cff000-456f2000r--p 00000000 00:12 107/data/dalvik-cache/[email protected]@[email protected]

456f2000-457b3000rw-p 00000000 00:04 1203 /dev/ashmem/dalvik-aux-structure (deleted)

4939a000-493a2000r--s 0010c000 00:11 195 /system/app/LegacyCamera.apk

493a2000-493ef000r--s 000bc000 00:11 195 /system/app/LegacyCamera.apk

493ef000-493f7000r--s 0010c000 00:11 195 /system/app/LegacyCamera.apk

493f7000-49447000r--p 00000000 00:12 485/data/dalvik-cache/[email protected]@[email protected]

49447000-49450000rw-p 00000000 00:04 3819 /dev/ashmem/dalvik-aux-structure (deleted)

Android Camera子系统之进程/文件View,码迷,mamicode.com

时间: 2024-10-21 09:57:15

Android Camera子系统之进程/文件View的相关文章

Android Camera子系统之Linux C应用开发者View

Android Camera HAL通过V4L2接口与内核Camera Driver交互.本文从Linux应用开发者的角度审视Android Camera子系统. V4L2应用开发一般流程: 1. 打开设备文件. int fd=open("/dev/videoX″,O_RDWR); 2.取得设备的capability,看看设备具有什么功能,比如是否具有视频输入,或者音频输入输出等.VIDIOC_QUERYCAP,structv4l2_capability 3.选择视频输入,一个视频设备可以有多个

Android Camera子系统之用户View

一.拍照模式 打开原生Camera应用,将出现如下所示拍照界面 左边为预览区域,右边为控制面板. 控制面板分为三部分,从上到下依次为缩略图.快门按钮和模式选择器. 模式选择器中显示当前模式为拍照模式. 按下快门按钮将会执行拍照操作,缩略图区域显示所拍照片的缩略图. 二.录像模式 点击模式选择器区域,选择录像模式,将会进入录像界面,如下图所示 点击快门按钮将会开始录像,再次点击快门,结束录像. Android Camera子系统之用户View,码迷,mamicode.com

Android Camera子系统之源代码View

本文基于Android 4.2.2+Linux3.6.9+SAMA5D3 SoC从源代码的角度审视Android Camera子系统. 应用层 Androd原生Camera应用 /system/app/LegacyCamera.apk http://androidxref.com/4.2.2_r1/xref/packages/apps/LegacyCamera/ Camera应用调用Android应用框架提供的Camera API import android.hardware.Camera;

Android Wifi子系统源代码View

本文基于Android 4.2.2+Linux3.6.9+SAMA5D3 SoC从源代码的角度审视Android Wifi子系统. 软件平台:Linux3.6.9 + Android 4.2.2 硬件平台:Atmel SAMA5 Wifi模组:RTL8723AU(USB接口) Android的WiFi子系统自上而下包括如下一些内容: 应用层 Androd系统自带Settings应用 /system/app/Settings.apk http://androidxref.com/4.2.2_r1/

Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起

本文主要内容是讲解一个视图View或者一个ViewGroup对象是如何添加至应用程序窗口中的.下文中提到的窗口可泛指我们能看到的界面,包括一个Activity呈现的界面(我们可以将之理解为应用程序窗口),一个Dialog,一个Toast,一个Menu菜单等. 首先对相关类的作用进行一下简单介绍: Window 类   位于 /frameworks/base/core/java/android/view/Window.java 说明:该类是一个抽象类,提供了绘制窗口的一组通用API.可以将之理解为

Android 中几个重要的View

SurfaceView, GLSurfaceView, SurfaceTexture以及TextureView是Android当中名字比较绕,关系又比较密切的几个类.本文基于Android 5.0(Lollipop)的代码理一下它们的基本原理,联系与区别. SurfaceView从Android 1.0(API level 1)时就有 .它继承自类View,因此它本质上是一个View.但与普通View不同的是,它有自己的Surface.我们知道,一般的Activity包含的多个View会组成Vi

Android Camera开发讲解

概述 Android手机关于Camera的使用,一是拍照,二是摄像,由于Android提供了强大的组件功能,为此对于在Android手机系统上进行Camera的开发,我们可以使用两类方法:一是借助Intent和MediaStore调用系统Camera App程序来实现拍照和摄像功能,二是根据Camera API自写Camera程序. 基础知识 Android系统提供API来支持自定义相机拍照和系统拍照,以下是有关的类: Camera 该类提供基础API来使用设备上的相机,且该类可以为你的应用提供

Android Camera开发之基础知识篇

概述 Android框架支持设备的相机拍照和录像功能,你的应用可以直接调用系统的Camera应用来拍照或者录像(比如微信拍照),当然也可以利用Android系统提供的API开发一个Camera应用来实现相机拍照和录像功能(比如市面上流行的360相机).此篇文章主要记录相机开发有关的基础知识,以及带着自己的理解翻译Camera官方文档,如有翻译不恰当支出,还请指出改正.当然我会开一个有关相机开发的一个系列,该系列主要内容包括如下: 相机基本预览拍照功能. 实现相机的Flash,Hdr,滤镜,前后摄

android camera 学习

总体介绍 Android Camera框架从整体上看是一个client/service架构.有两个进程,一个是client进程,可以看成AP端 ,主要包括Java代码和一些native层的c/c++代码:另一个是service进程,属于服务端,是native c/c++代码, 主要负责和linux kernel中的camera driver交互,搜集linux kernel中driver层传上来的数据,并交给显示系统(surface)显示.client 和 service 进程通过Binder机