2016年已经过去也不少了,迟迟没能下笔写一写,总结总结,回顾回顾,2016的目标达成了吗?2016的经历够充实吗?2016的收获够多吗?这些都是可以拿出来讲一讲的,毕竟也是一个整年啊,是来这家公司的第三个年头了。
其实已经忘记年初自个儿的宏图大志了,因为感觉总是差了那么一点点,以前读大学的时候也一样,每次都说好好学习,但是又真正哪几次的寒暑假是真正拿来学习过呢,屈指可数吧。所以,就没有很好的制定目标,觉得走一步是一步,一步一个脚印,也是一个很好的经历。比如,今年学到了Android上更好的设计模式,MVP,MVVN;Android内存分析,内存泄漏技术的增长;系统的学习了设计模式;对java的线程有了进一步的了解;Android原生Launcher的学习;Android安全分析等,总体来说就是这些最让我收获颇丰的。当然啦,还有就是自己的气场更强了,今年开始有机会面试一些新员工,从面试中总结经验,提升自己,也在适当的时候给别人一些意见建议。
年初的设计模式,mvp,mvvm,到现在差不多学到了很多,很想在项目中实践,但是因为项目现在是维护状态,而且公司里也倡导稳定优先的原则,所以只好放弃了。但是,在MVC的设计模式里,项目组根据j2ee的架构,其实分的也很清晰明朗,严格遵守了MVC的模式,还是 很值得一赞的。也是我学到架构印象最深的一次。上礼拜,两个同事还因为新项目的组织架构,进行了一次激情碰撞,我在旁边看的不亦乐乎。
紧接着就该谈谈内存泄漏吧。6月份的时候,部门大boss的Mate7经常在我们的程序(邮件程序)上用着用着就前台崩溃重启,没有任何的崩溃栈出现。还有有一个问题,就是在刷新草稿箱的时候,会导致崩溃,抓取的崩溃栈竟然在系统层,网上查了说是硬件加速的原因,于是又把硬件加速给关闭,结果概率是降低了,但还是会出现。这两个问题都没解决,做过很多努力。就在这期间,对Android的内存泄漏专门研究了很久。用过MAT,Systrace,Memory Monitor,Allocation Tracking,LeakCanary,也确实发现了不少项目中存在的问题。还比如Handler的内存泄漏,线程的内存泄漏,收获颇丰的。
Android原生Launcher的学习,并根据客户需求新增功能。我们的客户要求先登录,才显示已安装的app,并且app的数据是根据我们平台上获取的数据来显示,而不是直接读取系统数据库。通过和师傅一个月的努力,终于完成。期间,对Launcher的纯MVC解耦阵阵惊叹,google的工程师设计理念真的很值得学习,当然啦,人家毕竟是牛逼工程师,不然为什么作者不是我,而是他们呢,是吧。还有里面的自定义控件,滑动自定义控件,事件分发的典型案例,数据库的增删改,一个Launcher有将近10万行代码,虽然没有全看完,但是通过工作能学到这些已经是我莫大的荣幸了。这期间还有一个插曲,在学习的是,看到网上有个大牛曾经很透彻的研究过,我就抱着试试看的心态给他发了封邮件,没想到他第二天一大早就回复了,并且给出了中肯的建议,比起那些论坛上的提问靠谱多了。现在这个学习还在进行中。
公司对安全这一块又很严格的要求,所以在上个月底,又做了一次项目级的安全排查,有Android层面的,比如广播和服务接受的安全,拉起Activity的安全,内存泄漏,外部校验输入的安全排查,确实很多,当然这些就是为了防止各种层面的攻击而准备的。比如项目里提供了一个广播的对外接口,那如果没设置好权限,已经没有对输入进行安全性校验,就很容易被攻击者攻击,导致程序崩溃。说到崩溃,程序抛出的异常一定不能抛出到工作台, 如果导致崩溃,抓出来的崩溃栈会被查出哪个模块出问题,也是泄漏信息的一部分。
当然,上面的几个是我这一年了感受最深的几个记忆,我觉得我还是太笨了,没有对印象深的事情做总结。其实,在夏天的时候,我有买过域名, 开过博客,开过公众号,但是因为种种原因,没来得及做各种更新,一直在那边被我遗忘。所以,借此机会,我想让自己来年开始维护这些东西,好记性不如烂笔头 ,用电子的记忆也是作为IT人该有的技能之一吧,键盘就是你的笔,博客就是你的纸,为来年开个好头,加油。
步入工作三个年头了,一直在从事Android开发,很多时候,三年是一个坎,该往高级的方向上靠了,去年看的书也不少,新买的书其实也挺多的,有几本还没来得及看,2017年一定要全看完。毛估估,还有2本。坚持每天阅读,是一种习惯。我每天提早半小时到公司,专心看会儿书,是一天中最幸福的时候。2017,还想入门一款游戏,像郭霖那种专家,写代码和打游戏都是高手,让我羡慕不已呢。郭大神一直都是android迷妹,迷弟们的神,哈哈。
2017,我彻底准备好了。今天是8号,也是个吉祥的日子,步入新生活咯