来由
前几天看玉刚说上的一篇公众号推送,尽管是篇广告,但前半部分的Android学习方法感觉特别实用
学习方法
对于Android的日常学习,要抓住几个重点
以Retrofit为例
- Retrofit常见API的使用
- Retrofit在API层级的扩展,比如Retrofit可以通过添加拦截器来做些事情
- Refrofit的原理,可以考虑分哪些模块,每个模块目标的具体行为
- Retrofit的原理层级的优化,这方面很多优化都是根据特定场景的,从大的方面上肯定该库做的已经够好了
- Retrofit的原理层级扩展,比如修改某个模块替换实现;比如cache模块修改为DiskLruCache等。
刚哥的要求是一般最少能完成到第三点,最好能够完成第四点
我的个人学习思维
日常的Android精进是必要的,不能吃老本,比如简历上写熟悉RxJava的基本使用,那面试官通常会问你用过哪几个操作符,原理是什么,为什么要这样用,扩展来讲,不用RxJava能不能解决…
我通常的学习方法是高中一直以来养成的方法,就是举一反三的发散性思维,举个例子,还是RxJava,通常讲RxJava都会提到异步,函数式编程,那其实就可以扩展开,Android有几种异步方式,有RxJava AsyncTask Handler,底层原理是什么,Handler的通信原理是什么,handler的looper在主线程中是死循环,为什么没有造成线程阻塞,AsyncTask线程池的个数,各有什么优缺点,为什么用这个而不用用另外一个,kotlin的协程能不能异步呢,原理有是什么(当然现在了解并运用协程的人还是不多),可以问出这么多问题,这就是举一反三的发散性思维,可以通过类似的关键字来由点及面的发散问题
另外,其实不止Android学习,学习方法是通用的,可以用的任何领域的学习
后记
好久没写博客了,其实通常自己都是记到云笔记了,前几天还又买了会员,被朋友点醒,为什么不直接写博客呢,是啊,写博客不仅能记录学习路径,更能加深自己对知识的理解,考察对知识的理解程度的一个方法,就是你能把这件事跟对方解释清楚,希望这是个良好的开始,而不仅是三分钟热度
20190917更新
昨天浏览了下张绍文大佬的《Android开发高手课》有感,禁做Android api调用工程师,要多理解底层,底层万变不离其宗,api有可能过时,但底层不会轻易改变