林志华_Android

2017-10-22  本文已影响0人  3e0581c2e873

联系方式


个人信息


工作经历


上海三叉戟科技有限公司(原上海小兵更名)(2014/11--至今)


Where(各大应用市场可下载)

项目采用MVP+Databinding的架构,采用RxJava,更灵活的应对流程需求变更。基于RetrofitOkHttpJackson,实现网络层的框架支持。采用objectBox数据库,应对大并发的数据库的读写事务压力。

技术点以及遇到的困难
  1. 继续使用greedDao,开启WriteAheadLogging(sqlite在Android3.0以上支持),读写事务各建立一条sqlite连接,读写操作时,严格使用各自操作的连接。
  2. 使用objectBox,读写事务已经有各自的实现,默认支持读缓存,框架层面支持kotlinrxjava,对于数据迁移和数据结构变动,从框架层面进行支持
    权衡两种方式,均需要对先用的代码逻辑做大的改动,工作量和耗时相差不大。现有框架对rxjava的依赖度较高,以及objectBox的写入及读取速度均超出greendao 3倍以上(实测greendao插入6000条聊天数据,花费时间在2分钟以上,objectBox的数据差不多都是在30秒以内,聊天数据涉及多张表的插入和查询),以及greendao和objectBox出自同一个团队,且团队表明后期重心会再objectBox上,最后选用了objectBox。选用objectBox的风险主要在于,一些非基础的使用场景,还没有提供支持。遇到问题,没有太多可以借鉴的途径。大多数问题只能通过github提issue和作者进行沟通。下图是objectBox和Sqlite的理想情况下的效率对比:
    objectbox-sqlite.png
美丽约
  1. 智能心跳:根据不同网络环境,尝试不同频率的心跳。
  2. 省电优化:通讯管道存在单独的进程中,无数据同步的时候,堵塞线程,减少cpu的资源占用。(对比优化前后,手机后台12小时耗电从10%降到2%左右)
  3. 进程保活:android碎片化,以及系统安全权限的进一步收紧,导致很多以前保活的手段失效。现在这一块主要是减少服务的资源占用,以及考虑通过JobSchedule来尽可能的保证进程有更长的存活周期,对于小米旗下的机型,后台的推送采用mipush来提高消息的送达率
  1. 支持swipeback功能配置
  2. 提供沉浸式体验支持
  3. 在RecycleView的基础上支持多HeaderView和FooterView添加,提供多类型列表的支持。
  4. 提供Item的接口实现,解耦复杂列表数据的实现,Item支持类型注册和数据填充模式
  5. 使用Databinding简化了Item的实现复杂度,实现MVVM架构的支持,分离ui显示逻辑。
  6. 提供网络请求框架,支持大数据的上传和下载,支持上传下载进度的显示需求(网络请求框架接口是12年左右设计的,为了确保兼容,以及优化框架性能,后期在volley的基础上又做了改动实现)
  7. 提供网络异常,无数据,刷新数据等操作的回调包装类,实现点击重新加载,无数据引导发表数据这类的共性需求
考拉伴伴
团队管理
Android架构

协助android工程师更好更快的实现项目需求

上海恺英科技有限公司(2013.1--2014.11)

上海小兵科技有限公司(2011.9 --2013.1)

北京新网互联科技有限公司(2010.10-2011.9)

项目简介


社交类项目:

平台类应用:

新闻类应用:

市场类应用:

其它:

上一篇 下一篇

猜你喜欢

热点阅读