年底咯,写个总结

本文分享了一年内完成三个O2O应用项目的经历,包括技术挑战、学习成果及遇到的具体问题,如华为手机透明状态栏设置、全屏模式下软键盘遮挡等,并讨论了代码设计模式的应用和个人成长。

项目:

这一年,写了3个项目,全是o2o的app,1个外包,2个自己公司项目. 技术上来说,没有多少难点,但还是碰到过一些疑难杂症. 本来有个小伙伴,年中的时候第一个项目做完被ko了,然后就成独苗咯(\_/)

学习到的东西:

1.mvp 2.rxjava 3.retrofit 4.接触了几个设计模式:策略,单例,组合,builder,工厂,抽象工厂,适配器,装饰. 代码开始考虑使用什么样的设计模式去抽取封装. 5.一些控件开源库(感觉没什么意义). 6.通过ViewDragHelper对自定义控件有了基本的认识. 7.开始注重性能优化,代码的规范,美观. 8.fragment的大量使用,对fragment的一些操作和处理. 9.年中的时候开始翻看源码,知道了很多问题的起因. 10.开始想要将碰到的问题,学习的东西记录下来. 11.不再随便的去使用别人的开源库,开始考虑性能,大小,稳定性,实用性. 12.自己折腾了几个bug一堆,有待优化的控件- -. 13.开始使用5.0的新控件,Recyclerview从最开始的摸索使用,到现在的轻车熟路.

看的书:

<Android源码设计>
<Android开发艺术探索>

碰到的问题:

1.华为手机设置透明状态栏(emui3.1不起作用)

公司没有测试机,一直用自己的,而我当时的手机是华为4a(便宜货) 发现在style里面设置colorPrimary,colorPrimaryDark不起作用 想要出沉浸效果只能设置全屏模式 然后就碰到了第2个坑.

2.在全屏模式下,软键盘弹出webview无法上推造成遮挡,这个bug当初折腾了很久.

原因是在全屏模式下,软键盘弹出不会触发onSizeChanged().
怎么解决,我的建议还是不要设置windowTranslucentStatus,会有很多问题
如果实在要这样设置
AndroidBug5497Workaround,可以搜一下这个类.
部分需要全屏的页面,比如启动页,可以用代码设置window.
复制代码

3.application类保存全局变量.

这个坑碰到的比较早,是app上线后,通过统计发现的. 原因是,app在后台时会被杀掉,内存不足会回收一些对象,回到前台时会重启,保存的一些静态变量就被初始化了.也就不存在保存一说了. 共享的数据推荐shareprface保存,或者存到磁盘上. 当前页面的数据完全可以用bundle保存.

4.RecyclerView的增删改操作

由于RecyclerView自带没有点击事件,所以自己就写接口实现,但是会有个问题,就是bindviewholder里面的position是不准确的,应该使用ViewHolder的getLayoutPosition方法来获取item的角标.这个在源码里面有解释.

5 一些内存泄漏的坑

有点多.....说个比较烦的,InputMethodManager引起的内存泄漏,这个是系统级的bug.但leakcanary工具总是提示,然而这个泄漏其实没什么影响,看了内存监测,回收完全正常.

还有很多坑,就是使用开源库碰到的了...

我想说,如果你自己都没测试好,就不要把东西传上去<推荐>别人使用.即使传上去了也应该提醒一下待完善嘛.- -

6 自己曾经的项目

最近开始迭代很久以前公司就丢在一边的一个项目 感到绝望- -.还好,看得懂,不算很毒.就是封装的太差了.有得忙了 想一想,以后再看自己现在写的项目,是不是还是这个感觉呢.哈哈

纠结的地方

一个人开发有时候还是有心无力. 简单的非体力代码会浪费时间.没时间去学习新技术. 技术完全自学,效率低. 对于app架构的设计,封装,经验不足.边写边改. copy过多的后遗症,很多时候即使知道,也还是得去搜一下copy代码.

新年的学习目标

c艹,ndk,源码.把2本书啃完.组件化,插件化 计划赶不上变化,学到的东西可能会更多吧.- -

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值