目录
2019年工作总结
项目 | 工作内容 | 掌握知识 |
---|---|---|
意大利项目 | iTV开发维护、文档整理 | 焦点拦截处理、ObjectAnimator、视频时移、rxjava、lifecycle、底层接口封装、软件项目流程管理、文档归纳整理。 |
陕西项目 | 开发RMS系统、适配系统版本文件、验收测试、部署升级 | IntentFilter、弱引用、双重锁定、ProcessBuilder、观察者模式、工厂模式、IPC通信、SQLite、okhttp、PackageManager、java反射。 |
乐租小窝 | 定位开发 | 高德sdk开发;popupwindow;华为机型在高德sdk定位不兼容;华为机型在AS的调试;butterknife、retrofit。 |
甘肃咪咕项目 | 适配终端、更新IPV6补丁 | SDK的集成和开发、shell、makefile、TCP流分析过滤、IPV6业务逻辑、编译so文件 |
山东咪咕项目 | 零配置功能开发、调试 | MVP模式 |
意大利项目
项目背景
项目基于Android 9平台,应用Hisi芯片方案。
iTV开发维护
iTV apk项目采用rxjava和Lifecycle等开源框架来优化代码。菜单界面的应用开发,比如菜单跳转 、遥控器事件的拦截响应、菜单弹出的动画效果;视频录制回访的时移等。DVB-C应用界面的开发,如调节不同频率和带宽进行搜台;搜台模式设置,手动还是自动获取。
文档整理
协助写HIDL层接口的接口文档,发布中间版软件,学习项目的结项流程、申请主观测试的流程、申请项目延期的流程等以及相应的文档资料的整理。
掌握的知识
焦点事件的拦截处理;视频时移功能实现;ObjectAnimator的再次封装使用,属性设置实现动画效果;rxjava在异步通信中传输数据,在子线程发布数据,主线程订阅数据进行UI更新的具体应用;lifecycle开源框架对于Activity生命周期管理,防止内存泄漏问题的具体应用;底层接口的封装,依据业务需求重整应用;软件项目流程管理;文档归纳整理。
陕西咪咕项目
项目基于Android 4.4平台,用于陕西现网存量盒子升级。
开发RMS系统
实现机顶盒能够对接网管系统,网管系统能够实时读取机顶盒各项参数,对其进行各项指令测试和升级部署。
RMS apk采用rxjava,okhttp等开源框架优化代码,采用合理的设计模式实现业务逻辑,如对于高并发调用需求的接口采用双重锁单例模式实现。对于具体实现业务逻辑时采用工厂设计模式,实现接口的可扩展性和降低耦合性。
此项目的技术难点主要在于使用AIDL+service连接远程服务;ContentProvider+SQLite提供本地数据库给远程服务端访问。
适配系统版本文件
依据咪咕、省移动、第三方厂商更新的适配需求,对机启服务、系统apk、开机广告、应用apk预置到系统中。或依据更新的jar包、so文件更新原有一些apk的业务接口。
主要解决问题:网管下发升级任务后,机顶盒能核对MD5值后确认是否升级;设备在升级、安装和卸载,正确向网管平台上报结果;机顶盒开机时自动向平台上报已经安装的所有应用;u盘升级降至现网版本,开机广告后可以正常进入launcher界面;开机时语音搜索直播节目可以有正常返回结果;适配接入贝尔更新的中间件,并调整业务接口代码;在机启时正常拉起探针的所有服务进程。适配开机广告,接收下发开机广告,预置默认开机广告。
验收测试
自测部分主要完成了完成IPV6测试、组播测试、RMS自测、牌照方节目播放测试、开机广告测试、软探针测试。第三方(讯飞语音、软探针、网管、咪咕)验收测试。
部署升级
主要是和咪咕沟通计划逐步升级盒子的数量,实时汇报更新升级数量,跟踪维护已经升级盒子反馈的问题。
掌握的知识
IntentFilter自定义发送广播;简单工厂模式应用;弱引用模型对工具类进行管理;高并发场景下双重锁定对资源的同步和限制访问;ProcessBuilder封装简化linux命令的执行;以观察者模式单独对广播进行封装管理;简单工厂模式对业务接口进行封装;AIDL和Service访问远程服务的接口;ContentProvider和SQLite建立本地数据库,提供给远程服务端进行访问;okhttp开源框架在请求网络资源的应用;使用PackageManager或java反射方式访问系统信息。
乐租小窝项目
项目背景
乐租小窝主要提供一个平台让全国用户可以发布房源招租或者在上面找房子租用。项目在应用界面的开发上主要应用butterknife,rxjava,retrofit,okhttp等开源框架让代码更高效简洁。定位实现导入高德sdk。
定位开发
解决高德sdk接口不兼容华为手机导致定位不准,在华为机型上PopupWindow跳转Activity出现黑屏或卡顿的问题。
掌握的知识
高德sdk在apk开发的配置和接口应用;popupwindow弹出地图黑屏问题的解决,回调方法中跳转属性设置;华为机型在高德sdk定位不兼容问题的解决,华为机型在AS的调试日志输出。Butterknife简化控件布局的代码;retrofit开源框架请求服务端数据做UI展示。
甘肃咪咕项目
项目背景
Android 4.4,甘肃现网存量盒子升级
工作内容
适配终端、集成基地服务框架、合并IPV6更新补丁、集成系统播放器
掌握的知识
适配终端、集成基地服务框架、集成系统播放器的工作中主要掌握sdk集成、makefile、shell脚本、编译so文件等技能。
在合并IPV6补丁时掌握IPV6业务逻辑的实现,主要是联网、DNS解析、IPV6解析三个部分。
联网,终端实现以IPV6协议接入网络,包括DHCP、PPOE、IPOE、LAN;测试方法:有线方式成功接入网络之后,能够返回IPV6的信息,如IP地址,DNS地址,默认网关等信息。
DNS解析,终端向DNS服务器请求资源,DNS服务器下发IPV6地址,终端能解析IPV6地址,从而获取到请求返回的资源,如图片、TS流等。
IPV6请求,终端播放器能主动向DNS发起TS流请求,DNS返回地址,终端对地址进行解析得到IPV6地址,终端用IPV6地址再次向DNS发起请求,得到TS流进行播放。测试方法:在终端成功联网之后,播放视频,抓取网络包,使用TS、MPEG作为过滤条件过滤得到视频请求的TCP流,如果源地址和目的地址都是IPV6地址,且视频能正常播放,则说明终端支持IPV6播放功能。
过滤TS流,使用语法过滤,只要服务器返回数据类型为video/mpeg,就是在请求视频资源。http contains "Content-Type: video/mpeg"可以使用此命令进行过滤。
文档梳理
文章详情请见:Claire-CSDN博客
sdk系统集成
init.rc设置机启脚本、dumpsys命令、搜索文件/字段、top、pm、全编译系统、编译jar包、adb、makefile、sdk系统信息。
Android
高德sdk实战、PopupWindow弹出地图黑屏、Messenger通信实现、Socket通信实现、java反射、AIDL调用PackageManage接口、焦点处理、动画。
Git控制
git基础、git stash、git cherry-pick、error : If no other git process is currently running、git log、git reset。
Java
死锁问题、FileTime格式化显示、如何在stream().map()中抛出并且捕获自定义异常、JVM模型和垃圾回收、HashMap、ArrayMap源码分析。
算法和设计模式
23种设计模式、红黑树、儒略历、时区和夏时令、复利计算、树型结构除重、构造PagedList数据结构。