我的简历

刘茂林简历

联系方式

  • 手机:18001184827
  • Email:951442843@qq.com

个人信息


工作经历

2017年12月 ~ 2024年3月 中化能源科技有限公司

2016年5月 ~ 2017年12月 北京蜗牛车联网科技有限公司

2015年4月 ~ 2016年5月 宝利至诚(北京)软件有限公司

2014年1月 ~ 2015年3月 上海融视广告传媒有限公司北京分公司

专业技能

  1. 熟练掌握Java语言,拥有面向对象分析设计能力,熟悉常用的设计模式并运用到项目中
  2. 熟悉java多线程开发,自定义注解,动态代理,反射技术
  3. 熟练掌握UI,熟悉自定义View,对UI界面设计和优化有实际工作经验
  4. 对启动优化,内存优化,包体积,网络等app的性能有实际调优经验
  5. 有实际写过JNI代码进行NDK底层代码封装的经验
  6. 熟练掌握okhttp,glide,eventbus等第三方开源框架
  7. 熟悉MVP,MVVM,有MVP架构搭建项目的实际开发经验,并能根据实际项目需要进行调优,
  8. 熟悉JavaScript,小程序,kotlin,ReactNative技术,有小程序,vue,react的实际开发经验
  9. 版本管理、文档和自动化部署工具:Git/jenkins

项目经验

中化油生活(2020 -至今)

油站面向C端用户的加油APP,千万级用户量

使用技术: MVP架构 + okhttp + glide + viewbinding + lifecycle + kotlin+ webview购物商城展示 + Jenkins + 360加固

责任描述:

  1. 给Android app 设计编写架构,研发框架
  2. 封装公共模块功能,解决各种疑难杂症
  3. 对应用启动、流畅度、Apk瘦身等方面的优化;

POS加油收银系统(2022 )

油站面向C端用户的加油pos端

使用技术: MVC架构 + okhttp + viewbinding + webview展示

责任描述:

  1. 给Android app 设计编写架构,封装Webview框架
  2. 与H5端进行交互联调,完成业务需求

技术描述:

mvp架构搭建

客户端采用了面向接口编程思想将View层与Model层进行分离,业务代码和逻辑代码解耦,结合LiftCycle对View生命周期更好地管理.使用注解+反射方式创建Persenter减少模板代码.

图片显示方案:

基于Glide做了图片显示的优化,尤其是对GIF图片的优化,原生Glide加载GIF图片性能低,在原生基础上进行了二次源码层面的优化,内存降低了10M左右. 并整理为文章glide4.11.0封装gfilib优化gif图片加载

性能优化方案:

对app进行性能优化,使用工具检测并结合项目代码针对性优化.采用关闭页面遍历viewTree回收资源的兜底策略,全局单一loading加载框,迁移SharedPreferences到mmkv进行轻量级数据存储.整体优化结束后,内存从300M降至平均180M左右,冷启动从1000ms降至700ms左右

模块化方案:

采用代理模式对okhttp/retrofit进行二次封装,形成独立的module,为应用层提供了丰富的功能接口,使用建造者模式传参,例如get/post/upload/download/显示对话框/显示错误提示等.方便了开发者的使用. 运用代理模式解耦推送模块,网络请求模块.

开发调试模块:

针对前后端联调耗时过多问题,加入自研的调试库,可在应用上实时显示网络请求数据,实时显示Crash日志,也可切换域名,节省了联调时间. 开源后上传到JitPack后可通过gradle引用Android开发帮助工具库

项目安全方案:

因app涉及大量金额交易,为了数据的安全,采用对称加密与非对称加密,公钥私钥结合使用,让数据在传输中更安全,项目上线后未发生一起盗刷事故.

webview 框架模块:

在POS加油收银系统中,针对webview和h5交互的业务逻辑过多,抽取了webview 框架
后采用DSbridge方案,让业务代码和webview解耦,js交互单独封装,让业务更清晰,开发更便捷
开源后上传到JitPack后可通过gradle引用 webview封装框架

日志收集模块:

实现自定义统计功能(无埋点),主要记录用户所有的点击事件,以及时长.并保存本地后上传.开源项目 android自定义(无埋点)收集用户行为统计

项目管理和打包

为了能快速提测发版和上线,使用了Jenkins构建应用,结合Gradle与Shell脚本的配置,搭建了一套可以应用发版、区分环境、自动提测并上传、企业微信提醒、git提交记录展示的项目管理和打包系统。 并整理为文章
1. Jenkins+Gradle实现android 自动打包 并且上传蒲公英
2. 持续集成企业微信提醒

其他项目

  1. 参与硬件手持n900pos设备开发,具有打印小票,蓝牙通信等功能
  2. Android中化油管家/油达人/e站长/能源纪检项目
  3. 智慧大屏(支付宝小程序开发)
  4. 2023年参与B端小化加油后台管理项目(vue) 等前端项目

其他效率开发方面

  • 参与了findviewByMe插件开发(Android Studio插件),增加了搜索功能.
  • 加入了自研的调试工具库,节约了开发人员的沟通成本.
  • 使用mvpAutoCodePlus插件生成mvp模板,节省开发人员编写模板代码的时间

蜗牛货车项目(2016.5 - 2017.12)

官网链接地址

责任描述:

  1. 负责项目日常开发任务
  2. 完成产品功能模块抽取以及迭代

技术点描述

  1. 将卖车上传图片的裁剪相关代码抽取出来, 并且实现自定义比例的裁剪, 这样以后产品对裁剪比例有调整,只需改几行代码即实现需求. 并整理为文章android 自定义比例裁剪图片(拍照 相册)
  2. 集成ReactNative,实现城市列表组件(字母滑动,搜索,排序,页面跳转). 并整理为文章 ReactNative 滑动字母选择城市 以及搜索功能
  3. 写了一些自定义控件,例如 自定义进度条,自定义图表等.并整理为文章 自定义进度条
  4. 使用了leakcanary,引入库后,优化了10余处内存泄露的问题,由原来运行7~8 分钟内存飙升到200M+到现在内存稳定150M左右。

其他技术文章

自我评价

  • 有自我管理、自我驱动、自我优化能力
  • 有技术热情和好奇心、 爱折腾,爱学习,爱总结。
  • 有一定的知识广度,了解后端、运维、测试、跨平台

致谢

感谢您花时间阅读我的简历,期待能有机会和您共事。