电视机(机顶盒)开发记录
-
在手机Android开发时,要运行我们的程序,可以选择使用模拟器或者USB连接手机来运行。但是在做电视机(机顶盒)版本开发时,由于现在电视机(机顶盒)普遍的输出分辨率都在720P以上,用模拟器模拟并不是很方便,而采用数据线连接的方式,同样也不方便,客观上受到数据线长度和电视机(机顶盒)上接口的限制,而且这次在我们的开发之前进行调研的时候,发现使用数据线连接无法识别设备(也许和驱动有关)。总的来说,之前在手机上开发所用的方法,在电视(机顶盒)上并不好用。 这里为大家介绍几个在电视机(机顶盒)我在本次开发中发现非常实用的几个adb 命令了: adb connect [ip]:使用这个命令,可以连接指定ip的设备。有了这个命令,之前讲的问题就迎刃而解了,只要将我们的电脑和电视机(机顶盒)连入同一个局域网,就可以连接到相应的设备了,然后就可以在eclipse里直接运行或调试程序了。 adb uninstall [package]:看名字相信大家也知道,这个命令可以用来卸载应用。在电视机(机顶盒)上卸载应用并不如我们在手机上方便,全部都要用遥控器来操作,使用这个命令就方便多了。而且这次开发过程中,由于我们设备有限,几个人使用一台电视机,经常需要卸载别人安装的不同签名的程序,这个命令省去了我们不少时间。 adb shell input text:这个命令的功能看字面儿相信也能猜得出来,就是用来输入文字的。我们在调试程序的时候,很多情况下要键入文字,这在手机上可能并不是个问题,可到了电视上,用遥控器按键盘真的会让你崩溃的,这个命令简直就是福音 关于焦点,在手机开发中,我们可能更多关心的是某个控件在焦点变化时的逻辑处理。而在电视机(机顶盒)上做开发时,每个控件只有获得了焦点,才能对其进行操作,因此,确保需要操作的控件能够获得焦点、控制焦点的前后顺序是一个非常重要的问题。例如,在一个布局中有多个控件,在点击遥控器的上下左右方向键时,焦点会移到哪一个控件,哪些控件仅仅做显示,但不需要获得焦点等等问题 我们开发的时候,有一台42寸的电视盒两个机顶盒,电视最高支持4k分辨率,盒子只能输出720p分辨率。按照我们的适配策略,在电视和机顶盒上测试,都证明是正确的。然而,开发结束,送到测试那边时,他们使用的是32寸的1080p电视,就出现问题了,程序直接崩溃,无法运行,通过查看日志,发现是OOM问题。经过同事的分析,觉得是因为测试的电视虽然是1080p,但尺寸小,dpi高,是的所有图片都会被压缩,导致OOM。最后,更改了适配策略,采用了drawable-sw1080dp;drawable-sw720dp;相应地,提供对应分辨率下的尺寸: values-sw1080dp;values-sw720dp。 为了界面的美观与动感,在电视APP设计中,往往会用到倒影和阴影的效果,开发中,我负责模块需要实现倒影和阴影,本来是想让美工来切图,但是美工不愿意,让我们用程序来实现,交涉许久无果之下,只得自己来了。倒影的生成,由另外一个同事写了一个公用方法实现了,这里就不和大家分享了,其原理基本上就是将原图倒置,画在画布上,然后加上一个半透明的蒙版,就搞定了。
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏