一直准备写SystemUI的文章,但是因为其他原因总是滞后了,蹭现在出差的机会,总结一下对于ics SystemUI的开发。
ics SystemUI相比2.3.3来说要复杂很多,因为它将手机和pad的SystemUI合在一起了。那么先来说说什么是SystemUI吧。对于手机端来说,SystemUI包含StatusBar(状态栏)和NavigationBar(导航栏)。对于pad或者tv端来说,SystemUI包含StatusBar(状态栏)和SystemBar(系统栏)。StatusBar就不用解释了,NavigationBar就是一些导航菜单,SystemBar对应返回,home等菜单。
ics SystemUI的代码结构如下:
从包名大致可以看出每个包的功能和含义。对于开发人员来说,最重要的就是要区分手机端和pad端SystemUI。手机端的SystemUI包名为com.android.systemui.statusbar.phone,相对的,pad端的SystemUI的包名为com.android.systemui.statusbar.tablet。
com.android.systemui.statusbar.phone包下面java代码如下:
com.android.systemui.statusbar.tablet包下面代码结构如下:
弄清了手机端和pad端对应的代码结构之后,可以下载源代码,仔细分析和修改源代码。修改符合自己需要的SystemUI。