从Android5.0开始,Android有了TV版本Android TV,同时增加了Android TV Input Framework(TIF),TIF简化了实时内容在Android TV上的分发。Android TIF为厂家提供了标准API,创建用于控制Android TV的输入模块。下面这张图展示了TIF的架构
TV Input:TV中一般都包含多个输入端口,比如HDMI、Component, Composite等,每种输入端口在Android中表示为一个TV Input,TV Input在系统中为一个Service,继承自TvInputService, TV App要访问TV Input,首先要通过TvInputManagerService创建一个session,然后通过 session访问。
TvInputManagerService: TvInputMangerService是Android TIF的核心服务,它负责TV app和 TV Inputs之间的交互。TV app访问每一个输入端口,都需要通过TvInputManagerService创建一个session。TvInputMangerService维护着TV中所有的端口的状态信息,如果Tv App注册了TvInputCallback,那么TV Input的状态改变或者增加或者 移除TV Input都可以被通知。
TvInputHardwareManager: TvInputManagerService通过TvInputHardwareManger来获取TV上的TV Inputs的各种信息, TvInputHardwareManager向下通过TvInputHal来访问硬件。
HdmiControlService: HdmiControlService负责TV上HDMI相关的操作,包括HDMI端口上设备的拔插,HDMI CEC通信等等。