工作内容:
1. 字库和OSD设计;
2. 用户基本功能的业务逻辑更改;
3. 软件整改和技术服务。
编程语言:
C和C++
产品平台:
Mstar平台TV软件项目
项目示例
1. AndroidTV板卡自动测试
项目简介:
自动测试是工厂对成品板卡软硬件的状态和功能检测,判断成品合格的依据。
它是纯机器完成的,人工仅做一些测试架安装工作,这使得测试更全面,速度更快,
测试结果更客观,产品直通率在99.7%以上。
自动测试分两部分:一部分是电脑和采集盒子,负责声音图像和自动测试UI
的采集和判断,硬件状态检测并发出遥控命令等,这部分设备需外购。另一部分是
被测试的android板卡,我负责的就是板卡这部分。
功能要求:
(1)开机读取U盘启动文件,读取到则进入自动测试状态;
(2)打开测试界面,检测并指示各通道信号状态;
(3)显示主要客制化配置项、软件版本信息;
(4)通过读写每个USB口来检测U盘连接情况;
(5)自动升级MAC地址(支持U盘文件升级和扫码枪扫码升级两种);
(6)测试有线和无线网卡模块的连接和数据传输。
自动测试(android板卡端)UI效果图:
基本技能:
(1) Wifi和Ethernet的部分接口及网卡自动测试方法;
(2) MAC地址的烧录,读取;
(3) 文件读写操作;
(4) 存储设备状态的获取;
(5) 线程同步技术及线程池的原理和使用;
(6) TV驱动层信源通道和状态识别,切换等。
2. 网络视频加载器
项目简介:
从Youtube开放网络平台上获取各种类型的视频,并在Launcher中展示播
放,以达到公司在没有同网络电视运营商合作前提下产品仍然为用户提供各种类型
的视频,电影等,达到节约成本目的。效果图如下
功能要求:
(1) 解析youtube主页获取各种类型的视频频道及网络地址;
(2) 解析每个类型的视频的网络地址,获取其中的视频资源地址及存储;
(3) 获取每个视频的简介,缩略图及背景图等存储;
(4) 启动youtube应用播放视频。
基本技能:
(1) OkHttp异步网络请求,线程间同步和通信等;
(2) 网络数据解析,JSON解析;
(3) Glide图片加载机制、Presenter框架的使用。
3. 遥控兼用鼠标功能
项目简介:
AndroidTV在多种应用程序中需要鼠标指针操作,而遥控器本身不具备这个功能。
如果配置鼠标则增加了成本,而且在电视上使用不方便,因此需要遥控自身具有鼠标
指针操作功能。
功能要求:
(1) 按下遥控上的鼠标键后屏幕出现鼠标指针,即打开鼠标功能。
(2) 此时按遥控方向键,鼠标指针可上下移动,按确认键起到鼠标单击作用,
翻页起滚动作用;
(3) 再次按下鼠标键,指针消失,遥控上的方向键恢复原有功能(item焦点选择)
基本技能:
(1) 掌握native层服务端和客户端的设计、服务端注册和获取过程;
(2) 掌握JNI机制的应用和动态库的加载;
(3) 熟悉鼠标事件的原理等。
4. AndroidTVLauncher开发
项目简介:
Launcher相当于PC的桌面系统。电视厂家为了吸引客户,尽可能的将集成
的强大功能及丰富多彩的在线视频、网络应用和个性化设计展现出来。
功能要求:
(1) TV通道列表及切换功能;
(2) 显示国外常用的几款视频播放器;
(3) 显示常用的应用;
(4) 显示当前网络连接,日期和时间等信息;
(5) APP列表页面。
视图的布局要求如下图:
基本技能:
(1) 熟悉基本View动画的使用;
(2) 熟悉包管理器PackageManager的功能及使用;
(3) 熟练应用RecyclerView;
(4) 进一步掌握文件读写,文件内容解析;
(5) 各种Jar包的导入和使用;
软著
1. SmartBuffer数据结构和算法
这是个人设计的一种优于红黑树的数据结构和算法。它的核心思想是通过逐步
检索键值的十六进制位来实现数据的定位,而不是红黑树的二分查找,它的好处是在
插入和删除元素时无需做旋转和平衡等操作,因此对于大规模数据的场合,其增删改
查速度快于红黑树,同时占用的内存也比红黑树少很多。该算法已经用代码实现并获
得软件著作权证书。
2. 内存分配器算法
这也是个人设计的一种动态内存分配的算法。它的核心思想是使用一种数据结
构管理空闲内存块,如红黑树或SmartBuffer,对于大规模内存分配采用后者;使用
隐式链表管理所有内存块,目标是对于内存块的分配和回收,都能做到无需遍历链表
即可实现,从而提高内存分配效率。
同时,该算法能精准地按需分配内存,无需补齐等操作,从而比现有算法更节
约内存。该算法也已用代码实现并获得软件著作权证书。