BambooSlips' blog

Tags · Android

Home

About

Archives

loading..
Android

Android Camera

An Overview of Activation of Android CameraWhen a Android device boots up, the kernel will be loaded first. And then, CameraProvider will load CameraHAL, after which CameraService is able to communicate with CameraProvider to make use of CameraHAL. When a APP trys taking control of the camera, Camera2 API will try getting CameraService, which will activat..

Read more
loading..
Android

HIDL

OverviewCamera框架分为五层,即APP、Service、Provider、Driver及Hardware: 由上图可知,HIDL位于Service和Provider层之间。HIDL即HAL接口定义语言(Hardware Interface Definition Language, 发音为“hide-l”),它是用于指定HAL和用户之间接口的一种接口描述语言(IDL)。但根据google官方资料,从Android之后,HIDL已被废弃,Android将在其所有位置改用AIDL。 HIDL旨在用于进程间的通信(IPC),它成功地将Camera Hal MOdule从Camera Service中解耦出来,并承担着对Camera HAL的封装工作,减轻并降低了开发者的工作量和开发难度。 HIDL开发..

Read more
loading..
Android

CamX & Chi

OverviewCamX-CHI架构是为了更精细化控制底层硬件,同时方便手机厂商自定义一些功能而提出的。它将一些高度统一的功能性接口抽离出来放到CamX中,将可定制化的部分放到CHI中供厂商修改以实现各自独有的特色功能。这样做的好处是:即便开发者对CamX不是很了解,也可以很方便地加入自定义的功能,从而降低开发者在高通平台的开发门槛。 目录结构 图中CamX代表了功能性接口的代码实现集合,CHI则代表了可定制化需求的代码实现集合。CamX对上作为HAL3接口的实现,对下通过V4L2框架与Kernel保持通讯,并以互相dlopen so库的方式与CHI交互以获取对方的操作接口。 各个目录的用途待续…… 各个部件UsecaseUsecase是CamX-CHI中最大的抽象概念,其中包含这多条用于实现特定功能的Pi..

Read more
loading..
Android

Android Anatomy

Android三窥首先,分别从Android的层次结构、服务模型和源代码这三个不同的角度一窥Android系统。 Android Layer Cake下图是Android系统的层次模型,其左半部分可以看作一个如同Ubuntu的一般的Linux发行版本,而右半部分则是Android系统的特定组成部分。 该模型将Android分为四个主要层次,每一层都基于其下一层,从下至上依次是:硬件层、Linux内核层、系统库层以及应用和系统服务层。目前,大多数的Android开发者主要的工作集中于上图的“Android Applications”区域,他们将时间用于学习和利用Android系统提供的环境。而本文的主要内容是关于如何自定义Android系统本身以使其适用于新的硬件。 硬件层硬件层即物理设备,它处于当前模型..

Read more