Android TV开发,设置模块一般是一个菜单树,也即多级联动菜单,我们可以做成配置项文件,这样做的好处是,不需要根据每个客户需求去控制菜单列表里的菜单项显示隐藏,减少项目维护成本。
那么这个配置项怎么去设计比较好呢?因为需求是产品控制的,我们希望配置项文件由产品来编写和维护,对于产品来说,我们让他去编写json配置文件或者xml文件,有点为难人,术业有专攻,他们更喜欢可视化操作,简单、直观,于是我们想到了Excel表格,因为每次测试的buglist或者产品的功能需求矩阵都是以Excel表形式发给我们的。
按道理来说,我们拿到Menu Tree Excel表,程序去解析这个表格,构建菜单实体类就行了,为什么要再解析成json文件呢?因为每次解析Excel表格获取数据,效率肯定很低,目前知道的Java读取Excel的工具有jxl跟poi方式,两个都有数据量大小限制,并且解析大量数据会很耗时,这个会影响UI绘制,所以我们只希望应用首次安装解析一次产品推送在系统中的Excel表格,然后转成json文件,并保存在系统级别目录中, 以后应用每次启动去解析json配置项获取数据就好。
解析Excel,这里采用jxl,是综合了jxl和poi优缺点以及具体的需求来抉择的。jxl稍微轻量级点&#x