1、Java 基础扎实,掌握 JVM 原理,多线程,网络原理,设计模式,常用的数据结构和算法
2、熟练使用安卓四大组件和基本控件,对组件和控件的使用有一定的心得
3、熟练掌握 MVC、MVP、MVVM 架构以及在项目中的使用
4、深入理解 okhttp、retrofit、glide、rxjava 等开源框架的设计原理和设计模式,对这些开源
框架核心源码有过研究例如 retrofit
5、对于高性能 IO 通信模型以及相关开源组件 Netty 源码有过深度研究,熟悉 Netty 线程模型
6、对优化内存、卡顿、网络、启动速度、布局加载以及异常监控有实际经验
项目:IM
1、使用 Java 语言、MVP 架构、room、okhttp、retrofit、glide
2、使用 Netty、TCP 实现底层通信框架以及粘包拆包问题
3、完善应答机制,保证消息自动重传、消息去重,状态反馈
4、本地消息数据库设计,通过指纹码唯一索引确保存入的数据唯一性
5、通过离线消息分页获取,确保了用户上线线后消息的完整性
项目:直播
1、使用 Java 语言,MVP 架构、okhttp、retrofit、room、websocket、腾讯云直播 SDK
2、自定义腾讯播放器,调用画质接口,实现了不同画质的展示
3、使用 room 保存关注的主播以及赛事,通过 livedata 对外暴露,避免了大量的事件总线
传递
4、通过 websocket 实现了赛事数据实时性,通过全局 livedata 对外暴露,解决了切换页面
后 fragment 仍然能收到数据的问题,同时 websocket 也实现了主播上线的通知
5、设计并实现了主播房间的礼物赠送动画效果,聊天室等互动效果