Android camera framework7.0和6.0 主要差异

目前差异主要体现在接口封装和进程分离方面。

1.代码结构
1).android6.0代码
头文件:
Android camera framework7.0和6.0 主要差异
源文件:
Android camera framework7.0和6.0 主要差异
  可以发现在Android6.0上,接口都是在native层以源码方式实现了。由于以I开头的文件都具有binder通信作用。所以在android7.0中,这些接口都以aidl文件来描述,不过它们本质上没什么区别,用起来都是一样的。

2).android7.0代码
头文件:
Android camera framework7.0和6.0 主要差异
源文件:
Android camera framework7.0和6.0 主要差异
Android camera framework7.0和6.0 主要差异
  前面也提到过,7.0把具有binder通信的接口都用aidl文件来描述。但是这里不会像java那边把aidl文件编译成.java文件,这里的aidl由编译系统编译成.h和.cpp文件。

编译后的产物:
1.头文件:
路径:obj/SHARED_LIBRARIES/libcamera_client_intermediates/aidl-generated/include
Android camera framework7.0和6.0 主要差异
2.源文件:
路径:obj/SHARED_LIBRARIES/libcamera_client_intermediates/aidl-generated/src
.
└── aidl
  └── android
     └── hardware
        ├── camera2
        │  ├── ICameraDeviceCallbacks.cpp
        │  ├── ICameraDeviceCallbacks.o
        │  ├── ICameraDeviceUser.cpp
        │  └── ICameraDeviceUser.o
        ├── ICameraService.cpp
        ├── ICameraServiceListener.cpp
        ├── ICameraServiceListener.o
        └── ICameraService.o

2.功能差异
1)android6.0  cameraService服务驻留在mediaserver进程中
2)android7.0  cameraServer单独成一个进程,暂时与mediaServer撇清关系了,cameraService服务驻留在cameraserver进程中


参考:http://blog.csdn.net/armwind/article/details/78321247