年末咯,写个总结

项目:

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

学习到的东西:

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

看的书:

<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的角标.这个在源码里面有解释.bash

5 一些内存泄漏的坑

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

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

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

6 本身曾经的项目

最近开始迭代好久之前公司就丢在一边的一个项目 感到绝望- -.还好,看得懂,不算很毒.就是封装的太差了.有得忙了 想想,之后再看本身如今写的项目,是否是仍是这个感受呢.哈哈工具

纠结的地方

一我的开发有时候仍是有心无力. 简单的非体力代码会浪费时间.没时间去学习新技术. 技术彻底自学,效率低. 对于app架构的设计,封装,经验不足.边写边改. copy过多的后遗症,不少时候即便知道,也仍是得去搜一下copy代码.组件化

新年的学习目标

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

相关文章
相关标签/搜索