AndroidTV机顶盒开发总结
公司是做智能机顶盒产品的,DVB+OTT,(DVB其实就是和传统⼴电合作的,那种有电缆线的,播放直播的流是⼴电提供的,OTT则完全是联⽹的智能机顶盒,就像⼩⽶,天猫魔盒那种),公司业务⽐较杂,客户也⽐较多,公司有那种做底层固件的,主要是在Android底层去兼容公司的那种DVB业务,具体我也不懂,另外就是改改framework,⽐如开机LOGO,开机⼴告啥的。 超声波探测然⽽,我做上层应⽤开发,毫⽆优越感。
机顶盒应⽤说⽩了是⾮基于源码的系统应⽤,其和⼿机普通app有很多区别,界⾯少,嵌套少,动画少,逻辑多,进程通信多,Bug千奇百怪,调试不⽅便。 木纤维袜子哈哈,其实这才是开始
技术层⾯
1.⽐较少的⾃定义view,多的是⾃定义组合ViewGroup较多。最近在看android⾕歌源码,好多都是这种,其实就是java层⾯的封装。
2.焦点问题!焦点问题!焦点问题!重要的事情说三遍,很多电视端的BUG源于此。掌握requestFocus, isFocused等api,以及selector ⽤法,nextFocusDown/nextFocusUp/nextFocusLeft/nextFocusRight等xml属性。
3.掌握ListView/GrideView⼦item焦点,嵌套scrollView按键冲突,掌握Activity/View的onkeyDown,onKeyUp回调⽅法
导电碳浆
4.掌握Android多进程通信,ContentProvider/AIDL,各种应⽤间隐式(Action/Uri)传递,因为你可能不⽌维护⼀个应⽤,多个应⽤之间可能会相互跳转界⾯。5.掌握⼴播,service,这种组件在系统应⽤中很常见,⽐如开机启动⼴播,系统升级!家用食品搅拌机
线性相位
1.MVP模式,很适合电视端这种⼩⽽业务多的app。
2.相对独⽴的功能模块独⽴成⼀个类,⽤单例模式。抗震床
3.⼯⼚模式。对于客户多,业务相似的场景尽量⽤⼯⼚,后期好扩展和维护。
4.观察者。⽤到不多,很简单实⽤,回调特别多,⼀定要掌握。
调试
2.导出成未签名的apk,⽤系统签名,adb push/adb install -r;看⽇志adb logcat -s xxx
3.公司BUG各种各样,有界⾯上的BUG(⽐如焦点),有业务上的,(⽐如和底层的交互,和其他应⽤的交互)。