【Charmliu原创,欢迎转载,转载请注明原文出处】
4.0的SDK已放出:
http://developer.android.com/sdk/android-4.0.html
新增了一些UI上面的操作,对通讯录和camera进行了增强,增加了拼写检查,文字朗读,WIFI直连,蓝牙的health profile,NFC推送,温湿度传感器等新功能。本文主要对可能涉及到硬件,内核及HAL的信息进行一些分析和整理,纯属抛砖引玉。
从该网页可以获取和驱动有关的信息如下:
1、 Social APIs in Contacts Provider
这里和驱动可能有关的就是Large photos项,4.0支持在通讯录中使用大分辨率的照片(从原来的96x96扩展到256x256),硬件肯定是可以支持的。
2、 Multimedia
这个模块和驱动的关系比较大。
1) Media Effects
a) 可处理图像和视频,如修复red-eye,彩图转灰阶图,调节亮度,饱和度,旋转,鱼眼效果等。这些特效处理均需通过GPU
b) 特效处理通过GL_TEXTURE_2D接口。
c) 网页描述了应用如何调用接口,并更改设置的方法。
d) 在EffectFactory中定义的特效均支持(All effects listed in
EffectFactory
are guaranteed to be supported),这个需要check 一下GPU提供的接口,应该也是没有什么问题的。2) Media types
增加对如下格式的支持
a) HTTP/HTTPS live streaming protocol version 3
b) ADTS raw AAC audio encoding
c) WEBP images
d) Matroska video
其他支持的媒体格式见Supported Media Formats
3、 Camera
增加这些API:面部识别,对焦控制,参数测量
1) Face detection
应用的接口Camera.Face类包括如下内容,驱动需要注意
a) 一个矩形框,根据camera当前的取景范围,指定人脸范围。
b) 一个1到100的整数,来告知系统当前对象是否人脸。
c) 一个唯一的ID来追踪多张人脸。
d) 多个point对象来指明眼睛和嘴的位置。【这个不知道是否包括在ISP的面部识别中】
e) 面部识别不是必须的,可通过
getMaxNumDetectedFaces()
查询,眼、嘴的识别也不是必须的,可以注空相关函数。但ice cream sandwich新增了面部解锁功能,因此如果是定位中高端的产品,这个功能肯定是必须的。2) Focus and metering areas
a) metering areas指的是白平衡和自动曝光的测量。
b) Camera.Area类包括矩形区域和该区域的权重(an integer)。
c) 应用会先查询
getMaxNumFocusAreas()
或getMaxNumMeteringAreas()
。3) Continuous auto focus for photos
a)
passFOCUS_MODE_CONTINUOUS_PICTURE
tosetFocusMode()
b) When ready to capture a photo, call autoFocus()
c) Your Camera.AutoFocusCallback immediately receives a callback to indicate whether focus was achieved.
d) To resume CAF after receiving the callback, you must call cancelAutoFocus().
在录制视频是,连续自动对焦需要调用FOCUS_MODE_CONTINUOUS_VIDEO
4) Other camera features
a) 在录像时可以调用takePicture()来保存一幅图像而不中断录像,查询接口isVideoSnapshotSupported()判断硬件是否支持。
b)
锁定自动曝光值和白平衡,setAutoExposureLock()
和setAutoWhiteBalanceLock()
c) 在预览时可以调用
setDisplayOrientation()
来改变显示方向。5) Camera broadcast intents
提供给第三方camera应用的接口,和驱动没什么关系。
4、 Android Beam(NDEF PUSH with NFC)
这个主要是将应用怎么用NFC(近场通讯)去完成NDEF数据业务的,和驱动没什么关系。
5、 Wi-Fi Direct
WiFI直连,支持Android设备和其他设备之间不通过hotspot和internet的P2P。【这样看来,似乎没有蓝牙什么事了。。。】
6、 Bluetooth Health Devices
支持蓝牙中的Health Profile,可以连接如心率计,血压计,体温计等。【需要check Bluez协议栈】
7、 Accessibility
提供了对视觉障碍用户的支持,及新的explore-by-touch模式,主要是UI上的东东,和驱动关系不大。
8、 Spell Checker Services
拼写检查,这个和驱动没什么关系。
9、 Text-to-speech Engines
文字朗读引擎,这个和驱动也没什么关系,只要alsa正常应该就可以,但是可能会牵涉到音频并发。
10、 Network Usage
和驱动无关。
11、 RenderScript
和绘图有关,属于应用层范围,和驱动无关。
12、 Enterprise
为企业级用户提供VPN services,Device policies和Certificate management。和驱动无关。
13、 Device Sensors
1) 新增两个sensor类型:
a) 温度传感器,
TYPE_AMBIENT_TEMPERATURE
: A temperature sensor that provides the ambient (room) temperature in degrees Celsius.b) 湿度传感器,
TYPE_RELATIVE_HUMIDITY
: A humidity sensor that provides the relative ambient (room) humidity as a percentage.2) 文章提到Android的三个重要sensor:gravity sensor (
TYPE_GRAVITY
),rotation vector sensor (TYPE_ROTATION_VECTOR
),linear acceleration sensor (TYPE_LINEAR_ACCELERATION
)得到了极大的提升,现在他们拥有更低的延迟和更平滑的输出。这些sensor是依赖陀螺仪来提升的,因此so the sensors appear only on devices that have a gyroscope【这些sensor只能在有陀螺仪的设备上出现?也就是说陀螺仪是Android设备的必选?】
14、 Action Bar
和驱动无关。
15、 User Interface and Views
基本和驱动无关。
新增
TextureView
来显示content stream,如视频或OpenGL场景。属于应用范围,和驱动无关。
16、 Input Framework
1) Hover events
和驱动关系不大。
2) Stylus and mouse button events
Android now provides APIs for receiving input from a stylus input device such as a digitizer tablet peripheral or a stylus-enabled touch screen
这段话中新增的stylus input device不知道是什么,估计是触控板,压感笔这种外设吧。可支持如下属性:
TOOL_TYPE_UNKNOWN
,TOOL_TYPE_FINGER
,TOOL_TYPE_MOUSE
,TOOL_TYPE_STYLUS
, andTOOL_TYPE_ERASER
对鼠标设备的按键定义入下:
BUTTON_PRIMARY
,BUTTON_SECONDARY
,BUTTON_TERTIARY
,BUTTON_BACK
, andBUTTON_FORWARD
。为方便起见,对某些还有前后键的鼠标,映射其前后键为KEYCODE_BACK
andKEYCODE_FORWARD
。驱动需要注意。【从这里可以看出google的野心了,微软危险啊,哈哈】
17、 Properties
和驱动关系不大
18、 Hardware Acceleration
硬件加速功能在Android 4.0开始得到全面应用,应用程序通过它可以得到更平滑的动画,更平滑的卷屏,更好的performance和更快的响应。
19、 JNI Changes
和驱动无关
20、 WebKit
和驱动无关
21、 Permissions
和驱动无关
22、 Device Features