个人介绍
本人深度从事软硬件结合的安卓项目,熟悉软硬件通信,如串口通信,USB通信,蓝牙通信,局域网UDP或HTTP协议通信。
本人性格慢热,待人友好,为人诚实谦虚,有良好的团队协作精神,能够虚心接受同事的意见或建议,工作认真负责,遇到任务未能及时完成或项目有紧急处理能够自主安排加班时间,有源码阅读习惯,有较强的学习能力。
工作经历
2019-11-01 -2023-04-01厦门三点墨网络科技有限公司安卓开发
负责多个收银app的定制化开发(部分是定制化从零开发),以及后续都功能迭代和维护 1.项目背景:国家在全国多省都有出台农贸市场改造相关政策,比如十四五期间的“全国农产品产地市场体系发展规划”。公司在这个背景下主要的服务对象是超市、便利店、社区生鲜、农贸市场等,主要目标是为零售商家提供数字化服务,打造高效的经营场景。 2.工作内容 负责双屏安卓收银秤通用版“佰伦斯管家”收银app的功能开发与维护。 负责安卓收银秤国内部分市场或合作方定制版“佰伦斯管家”收银app的功能开发与维护。 负责用于农贸市场商户摊位用于展示的广告屏app开发。 负责“佰伦斯智能生鲜AI识别”的安卓SDK开发(功能包括生鲜识别、学习、秤盘AI标定、设备间学习成果同步,硬件固件更新等),SDK的使用demo开发以及接口文档编写。 负责收银秤自带秤台的称重相关功能(如串口重量读取,去皮,置零,零重学习,满重学习等)的安卓SDK封装,SDK的使用demo开发以及接口文档编写。 负责收银秤自带的小票打印机的打印相关指令功能的安卓SDK封装,SDK的使用demo开发以及接口文档编写。 参与智慧农贸ERP系统中的手机端应用“胖
教育经历
2015-09-01 - 2019-06-01厦门理工学院软件工程本科
2015.09-2016.07 获得院级二等奖学金 参加学校暑期全国计算机大赛的志愿者活动,获得优秀志愿者证 校外国语学院的java课程外教助教
技能
负责标准版项目的定制化开发,已有项目的功能迭代或优化 项目用到的技术栈: 1.项目架构:mvp 2.通信方式:https,USB通信,websocket 3.数据持久化:mmkv,本地文件,greenDao 4.网络框架:retrfit2+rxjava+glide 5.Framwork:CameraManeger,WindowManeger,ActivityManager,PackageManager等 包含的模块: 1.摄像头模块:后台录像、预览、抓拍、人脸比对、活体检测 2.广告模块:广告图片的上传、删除、设置轮播时间 3.证件读取模块:身份证、社保卡、IC卡、银行卡 4.信息交互模块:展示柜员信息、评价器、密码键盘、叫号牌 5.外围设备模块:指纹采集,指纹比对,语音播放,扫码 6.签名模块:文档预览,关键字签名,点击位置签名,指定位置签名 7.显示屏模块:安卓截屏传PC,PC截屏传安卓,安卓同屏至PC,安卓设备录屏 8.设置模块:PC设置安卓,设置音量,屏幕亮度,导出程序运行日志等 遇到的问题: 1.录像画面声音不同步,声音比画面慢 解决:在录象打开后再打开录音,并重置时间戳 2.摄像头模块拍照后自动关闭页面,程序闪退 原因:单例中持有context,页面关闭后context未被GC回收,内存泄漏导致内存溢出崩溃 解决:使用静态内部类+弱引用的方式
1.负责多个收银app的定制化开发(部分是定制化从零开发),以及后续都功能迭代和维护 2.项目用到的技术栈: 项目架构:MVP 通信方式:https(AES+RSA加密),UDP,串口通信,USB通信,蓝牙通信 网络框架:retrofit+rxjava+glide 数据库框架:objectBox(是高性能的NoSQL数据库(在关系型数据库和对象之间做了一个映射,测试过10W条数据的增删改都是毫秒级的),使用起来更简单) 硬件相关框架:FastBLE(蓝牙),SerialPort(串口) 3.包含的模块: 用户模块:商户绑定,收银员的登录和交接班 商品模块:商品全量更新,增量更新,商品分类,改价,改数,改重, 数据统计模块:订单记录,订单查询(按日期,按流水号,会员号等),一定时间内的商品销售统计 副屏模块:展示商户收款码,营业执照,成为会员二维码,购物车中已添加商品信息,市场广告轮播 支付模块:现金支付,扫码支付,组合支付,退款 硬件模块:AI识别,小票打印,开钱箱,商品扫码添加到购物车,重量读写 遇到的问题: 1.后台下载要更新apk时界面卡顿严重 原因:下载的文件整个写入到内存中,下载完才写入文件系统,导致内存负荷过大 解决:在retrofit请求中加上@Stream注解(原理是响应数据会用字节流的形式返回),可以边下载边写入文件系统,缓解内存压力 2.内存优化: 1.retrofit请求时参数列表用weakhashmap存放比较合适,系统会在请求之后自动将不用的值回收 2.较为频繁使用到的工具类改为单例