CharlieCaptain
1月前来过
全职 · 600/日  ·  13050/月
工作时间: 工作日09:30-18:30、周末12:30-18:30工作地点: 远程
服务企业: 3家累计提交: 0工时
联系方式:
********
********
********
聊一聊

使用APP扫码聊一聊

个人介绍

熟悉面向对象编程,有良好的编程习惯熟悉Kotlin语言,协程,多线程编程熟悉Android应用开发,UI设计、网络请求、数据存储,能独立完成Android应用开发熟悉Jetpack组件开发,Lifecycle、ViewModel等熟悉Android性能优化技术方案熟悉View的绘制原理与触摸事件传递机制熟悉Android Binder设计原理,IPC通信,消息机制等底层知识熟悉OkHttp、Glide和Retrofit开源框架的设计原理熟悉HTTP,TCP,UDP网络协议了解AMS部分Android Framework层工作原理,有较好的源码阅读能力和分析源码能力了解JVM内存模型,垃圾回收机制,类加载机制


工作经历

  • 2018-11-01 -2022-02-01早安科技有限公司Android开发

    视频社交App, 我负责Android客户端的相机、聊天模块,熟悉架构设计以及组件化,熟悉性能优化,熟悉相册选图模块,并对相册模块进行优化,做到低延迟数据加载。 相机拍摄模块 背景:画音支持多种拍摄模式,例如拍照、录像、说话就拍,相册选图,文本等。 方案: 运用策略模式,抽象模式类,子类实现具体逻辑,降低耦合,并实现该模块的可插拔 将Camera控制逻辑封装成CameraHelper,并在相机画面渲染GLSurfaceView中管理相机的状态 CameraHelper中将耗时操作都放到HandlerThread中运行,以免影响UI线程 说话就拍是运用状态模式,管理语音识别开启、暂停录制、以及多状态UI,拍摄完成后再加上字幕 相册选图模块 背景:从手机本地相册筛选符合条件的照片或视频,支持多场景,比如Story和Chat,支持多种模式,比如预览、单选和多选,支持视频压缩预览,支持多种手势,支持画面裁剪,支持从相机拍摄(实时预览)。 方案: 抽象RecyclerViewCursorAdapter,支持通过Cursor进行边滑动边加载数据 使用Glide加载数据,并将需要异

教育经历

  • 2015-09-01 - 2019-07-01广东工业大学计算机科学与技术本科

    项目比赛第二名

技能

Android
React
0
1
2
3
4
5
0
1
2
3
4
5
作品
WanAndroid

一款含有有丰富Android开发文章的App,内容每天都会更新。 原网站 http://www.wanandroid.com ,数据内容源至hongyang大神的网址 完成登录注册以及游客登陆 收藏 搜索、搜索历史 分享文章 离线保存用户账号信息,cookies 最新文章,知识体系 搜索热词 用户头像 评论文章(beta) 首页banner 换肤,夜间模式 反馈与帮助 修复bug与提高流畅性

0
2023-04-22 21:41
VTEX

项目简介: V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。 工作内容: 个人独立开发,设计与实现整个App。 项目采用MVVM模式; 使用Jetpack框架以及compose组件初始化UI; 使用OkHttp和Retrofit处理网络请求; 实现Cookie本地管理; 使用LiveData和ViewModel实现数据更新通知; 通过Kotlin协程处理线程任务调度; 使用Navigation实现单Activity的页面之间的跳转; 使用MMKV保存K-V值;

0
2023-04-22 21:42
画音

画⾳(原POP IM),由前*唯⼀ P4 级⼥产品总监 Genie Lin 出品,于 2018 年 9 ⽉正式上线,定位为社交通讯软件,主打功能有「Popper 造型」、「贴纸相机」、「视频短信」、「AR 魔术贴」、「故事墙」等。画⾳曾⼊榜 App Store 社交类 App 热榜前 30 名,获得⻉塔斯曼亚洲投资基⾦ 2000 万美元融资。 项目框架: 项目整体采用MVP模式,主要以Kotlin编码;使用Kotlin协程简化RxJava链式线程切换;通过gRPC协议进行通信;布局使用ViewBinding简洁绑定代码;使用LiveData解决内存泄漏的问题 主要负责、参与的模块节选: 相机拍摄模块 背景:画音支持多种拍摄模式,例如拍照、录像、说话就拍,相册选图,文本等。 方案: 运用策略模式,抽象模式类,子类实现具体逻辑,降低耦合,并实现该模块的可插拔 将Camera控制逻辑封装成CameraHelper,并在相机画面渲染GLSurfaceView中管理相机的状态 CameraHelper中将耗时操作都放到HandlerThread中运行,以免影响UI线程 说话就拍是运用状态模式,管理语音识别开启、暂停录制、以及多状态UI,拍摄完成后再加上字幕 相册选图模块 背景:从*本地相册筛选符合条件的照片或视频,支持多场景,比如Story和Chat,支持多种模式,比如预览、单选和多选,支持视频压缩预览,支持多种手势,支持画面裁剪,支持从相机拍摄(实时预览)。 方案: 抽象RecyclerViewCursorAdapter,支持通过Cursor进行边滑动边加载数据 使用Glide加载数据,并将需要异步获取的信息通过payload通知ViewHolder,不必全量绑定,降低绑定耗时。 通过LoaderManger进行数据的监听和过滤,数据过滤支持排序,文件大小,文件格式等 视频压缩预览是在用户选择分辨率时,视频会在队列线程池进行压缩,成功后回调UI,压缩缓存文件可以用作后续发送,以免多次生成,否则会在定期资源清理时移除 涂鸦文字编辑模块 背景:拍摄后跳转到的是编辑界面,编辑界面功能多彩多样,其中贴纸涂鸦是用户最常用的功能,支持海量的贴纸,贴纸可以拖动放大,以及调整动画出现时间,除了贴纸,还能涂鸦和编辑文字,文字有7种字体,样式可带背景可换竖向排列。 方案: 定义gRPC枚举类型,多端统一,具体实现放在各端,实现视频和贴纸数据分开,使得贴纸预览时高清 通过自定义View来渲染贴纸(Sticker),使用Canvas绘制Drawable,方便拓展和包装不同类型的贴纸,例如动画贴纸 后台静默保存贴纸状态(序列化存数据库),以防App意外退出

0
2023-04-22 21:59
更新于: 2022-08-06 浏览: 131