Android开发艺术探索笔记前言
之前虽然会android,但是理解不深,做的工作也不深,所以要想突破技术瓶颈还要脚踏实地的面对现实,一点一点努力,写博客也是,不开始永远不会写的很好,所以现在起步开始写自己的博客,见证自己的成长历程,如果此笔记或者以后的笔记对你有帮助,请点赞。
1.成长路线:
初级:
基本知识点:比如四大组件如何使用、如何创建Service、如何进行布局、简单的自定义View、动画等常见技术
中级:
- AIDL:熟悉AIDL,理解其工作原理,懂transact和onTransact的区别;
- Binder:从Java层大概理解Binder的工作原理,懂Parcel对象的使用;
- 多进程:熟练掌握多进程的运行机制,懂Messenger、Socket等;
- 事件分发:弹性滑动、滑动冲突等;
- 玩转View:View的绘制原理、各种自定义View;
- 动画系列:熟悉View动画和属性动画的不同点,懂属性动画的工作原理;
- 懂性能优化、熟悉mat等工具
- 懂点常见的设计模式
学习方法
阅读进阶书籍,阅读Android源码,阅读官方文档并尝试自己写相关的技术文章,需要有一定技术深度和自我思考。在这个阶段的学习过程中,有2个点是比较困扰大家的,一个是阅读源码,另一个是自定义View以及滑动冲突
高级:
- 继续加深理解”稍微深入的知识点“中所定义的内容
- 了解系统核心机制:
1. 了解SystemServer的启动过程
2. 了解主线程的消息循环模型
3. 了解AMS和PMS的工作原理
4. 能够回答问题”一个应用存在多少个Window?“
5. 了解四大组件的大概工作流程
6. …
- 基本知识点的细节
1. Activity的启动模式以及异常情况下不同Activity的表现
2. Service的onBind和onReBind的关联
3. onServiceDisconnected(ComponentName className)和binderDied()的区别
4. AsyncTask在不同版本上的表现细节
5. 线程池的细节和参数配置
6. …
- 熟悉设计模式,有架构意识
2.技术细节例子:
在onCreate方法里面开启子线程处理UI不会报错是因为,看源码得知rootView在activity的onResume方法之后才建立,在这之前无法检查开启的线程是否为ui线程,所以不会报错崩溃。ui线程是枷加锁的,在rootview建立之后是线程安全的,所以我们不能在子线程修改ui
3.学习路线和形成自己的知识体系
知识体系 通过这些方式形成自己的知识体系通过以上这些方式,加上自己的总结,经常总结,形成自己的知识体系,让自己的大脑里有一个很清晰的知识体系架构,脑子里有一个从上到下的流程图。
4.要有目标,不要今天学这一点明天学那一点,要有计划。
写博客,写笔记,增加成就感。贵在坚持,想要突破技术瓶颈就是要克服懒惰,积极学习。这才是真的努力。
5.android源码下载
windows下:http://www.cnblogs.com/xiaoluo501395377/p/3404628.html
Linux下:http://www.mobile-open.com/2015/89655.html
第一次写博客,还请多多支持,有不好的地方可以评论指出来,以后会写的越来越好。
我的github:https://github.com/yufan2014