本学习路线共有 17 关,如下。
第一关:四大组件(建议学习时间:一周)
知识点:四大组件的使用、Activity启动模式、Service的start和bind
学习资料:
① Android 四大组件 - 简书 【推荐理由】全面,内容参考了艺术探索。
② 彻底弄懂Activity四大启动模式 - Android研发专栏 - CSDN博客 【推荐理由】理论配合例子,好理解。
第二关:知识点:常见的布局和布局参数
学习资料:
① Android系统五大布局详解Layout - 漫步云端 - CSDN博客 【推荐理由】比较全面,理论结合例子 。
② Android 基础:常用布局 介绍 & 使用(附 属性查询) - 简书 【推荐理由】对布局参数进行了详细地介绍。
第三关:简单自定义View(建议学习时间:一周)
知识点:会简单的自定义View即可。在入门阶段,不适合了解measure、layout和draw过程,不建议去学习复杂的自定义View。
学习资料:
① 自定义View,有这一篇就够了 - 简书 【推荐理由】比较全面,内容参考了艺术探索,靠谱。
② GitHub - chenzongwen/MiClockView 【推荐理由】一个闹钟的实际例子。
③ Android 自定义 View 合集 - Android - 掘金 【推荐理由】自定义View合集,可以当做字典用。
第四关:动画和手势(建议学习时间:2周)
要求:掌握View动画、属性动画、布局动画、手势
学习资料:
① Android中的View动画和属性动画 - 简书【推荐理由】View动画+属性动画,有讲解,有例子,还有美女图片看。
② HenCoder Android 自定义 View 1-6:属性动画 Property Animat…【推荐理由】hencoder出品,非常非常详细,推荐当做文档来查看
③ Android属性动画深入分析:让你成为动画牛人 - 任玉刚 - CSDN博客 【推荐理由】深度分析属性动画,任玉刚写的
④ android 动画系列 (3) - layoutAnimation 视图动画 - 简书【推荐理由】LayoutAnimation,可以帮助大家实现一些特殊的效果,必备
⑤ RecyclerView 与 LayoutAnimation 实现的进入动画(一 ): List -… 【推荐理由】LayoutAnimation结合RecyclerView的例子,进一步理解
⑥ 安卓自定义View进阶-手势检测(GestureDetector) 【推荐理由】普通手势检测,有说明有例子有效果图,好理解
⑦ 安卓自定义View进阶-缩放手势检测(ScaleGestureDecetor) 【推荐理由】缩放手势检测,有说明有例子有效果图,好理解
第五关:网络(建议学习时间:1周)
要求:了解HTTP/HTTPS、状态码、header,get和post等;掌握网络请求API和相关网络库;熟悉长连接。 备注:网络库和文件上传将在开源库部分讲解
学习资料:
① HTTP 必知必会的那些 【推荐理由】HTTP/HTTPS基础知识,简单易懂
② Android HttpURLConnection详解 - 简书 【推荐理由】一个HttpURLConnection的小例子,清晰易懂
③ 手把手教你写 Socket 长连接 【推荐理由】手把手写socket长连接,长连接不再神秘
第六关:图片加载(建议学习时间:2周)
要求:了解drawable加载规则以及图片缓存 备注:图片加载框架将在开源库部分讲解
学习资料:
① Android中Bitmap内存优化 - 简书 【推荐理由】深入浅出,告诉你一张图片到底占用多大内存
② Android drawable微技巧,你所不知道的drawable的那些细节 - 郭霖的专栏 - …【推荐理由】告诉你图片放在不同drawable目录下的差别,郭霖出品,这理由够充分吧
③ Android照片墙完整版,完美结合LruCache和DiskLruCache - 郭霖的专栏 - … 【推荐理由】LruCache和DiskLruCache,图片的缓存策略,郭霖出品
④ Android DiskLruCache完全解析,硬盘缓存的最佳方案 - 郭霖的专栏 - CSDN博… 【推荐理由】DiskLruCache的原理,郭霖出品
第七关:文件和数据库 (建议学习时间:1周)
要求:了解文件流、sqlite
学习资料:
① Java 文件流总结 - 简书 【推荐理由】详细介绍了文件输入输出流
② Java 随机访问文件_w3cschool【推荐理由】Java随机访问文件
③ Java 序列化的高级认识 【推荐理由】Java的序列化原理以及对象输入输出流,来自IBM社区的经典文章
④ Android SQLite详解 - 简书【推荐理由】sqlite数据库如何使用
⑤ Concurrent database access - Dmytro Danylyk 【推荐理由】sqlite到底是线程安全的吗?
第八关:Handler (建议学习时间:3天)
要求:会使用Handler,知道looper的概念
学习资料:
① Android Handler的基本使用 - 简书 【推荐理由】了解Handler最基本的使用方式,文章清晰易懂
② Android Handler详解 - 简书【推荐理由】简单理解Handler的内部原理
第九关:异步线程池 (建议学习时间:7天)
要求:熟练使用线程、线程池、线程同步
学习资料:
① Android 线程和线程池一篇就够了 - Android - 掘金【推荐理由】一篇文章掌握Android中的线程和线程池,全面易懂
② Java线程同步:synchronized锁住的是代码还是对象 - 叉叉哥的BLOG - CSDN博…【推荐理由】彻底了解锁到底是哪个对象
③ java中的wait、notify、notifyAll - 简书 【推荐理由】了解wait、notify、notifyAll
④ Java并发编程中级篇(三):使用CountDownLatch控制多线程并发等待 - 阿拉德大陆的魔… 【推荐理由】CountDownLatch,更优雅的线程同步方式
第十关:Resources (建议学习时间:1天)
要求:掌握Android中访问资源的方式,好吧,这一关有点简单
学习资料:
① Android xml资源文件中@、@android:type、@*、?、@ 含义和区别 - 小M… 【推荐理由】R的使用技巧
② Android根据资源名获取资源ID - 技术小黑屋【推荐理由】如何通过资源名字找到资源id
第十一关:Retrofit / Okhttp (建议学习时间:3天)
要求:会使用Retrofit / Okhttp进行日常开发,复杂功能可以通过搜索和查阅官方文档解决即可
学习资料:
① Retrofit RxJava + OkHttp 让网络请求变的简单-基础篇 - 简书 【推荐理由】retrofit基础篇,作者是简书优秀作者
② Retrofit RxJava + OkHttp 让网络请求变的简单-封装篇 - 简书【推荐理由】retrofit封装篇,作者是简书优秀作者
③ Retrofit 【推荐理由】retrofit官方API介绍
第十二关:RxJava (建议学习时间:3天)
要求:会使用rxjava进行日常开发,复杂功能可以通过搜索和查阅官方文档解决即可
学习资料:
① 给 Android 开发者的 RxJava 详解 【推荐理由】rxjava入门一篇文章搞定,作者是扔物线,所用版本较低,但所幸变化不大
② RxJava2 只看这一篇文章就够了 - 掘金【推荐理由】rxjava2的API大全,这篇文章非常长,建议浏览常用的API,其他API需要时再查
第十三关:Glide (建议学习时间:1天)
要求:会使用glide进行图片加载
学习资料:
① Android图片加载框架最全解析(八),带你全面了解Glide 4的用法 - 郭霖的专栏 - CS… 【推荐理由】一篇文章掌握glide,郭霖出品,这一篇真的够了,就加载个图片而已,没那么复杂
第十四关:注解框架 (建议学习时间:3天)
要求:熟练使用注解框架
学习资料:
① 在 Android Studio 中使用 Annotation Processor - 云在千峰 【推荐理由】Annotation Processor介绍
② Android注解快速入门和实用解析 - 简书【推荐理由】注解快速入门,作者为简书优秀作者
③ Android Butter Knife 框架——最好用的View注入 - 简书 【推荐理由】butter knife 使用指南,简单直接
第十五关:Architecture components (建议学习时间:14天)
要求:熟练使用Architecture components,比如 lifecycle、room等
学习资料:
① Android Architecture Components 只看这一篇就够了 - 掘金 【推荐理由】一篇文章搞定它们,玉刚说写作平台赞助
② GitHub - googlesamples/android-architecture-compon…【推荐理由】官方例子,下载下来看看
第十六关:代码管理 (建议学习时间:14天)
学习资料:
Git:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 【推荐理由】跟廖雪峰学git Code review:选修,入职后,你的团队会教你的
代码风格:不同人不一样,这是我的代码风格,和Android源码的代码风格保持一致,供你们参考:https://pan.baidu.com/s/1PPONFjVfNP1PYt6mtQ4ZtQ
单元测试:
① https://mp.weixin.qq.com/s/smSrrUWR9DBYXsusS6y_ig 【推荐理由】一篇文章搞定,玉刚说写作平台赞助
② https://juejin.im/post/5b66de2c6fb9a04fbd1b4725【推荐理由】UI自动化测试详解,玉刚说写作平台赞助
③ https://juejin.im/post/5b6851f65188251ac5551c63 【推荐理由】UI自动化测试例子,却把青梅嗅出品
第十七关:性能优化 (建议学习时间:7天)
要求:熟悉性能优化的常见套路并能进行相应优化
学习资料:
① https://juejin.im/post/5b50b017f265da0f7b2f649c【推荐理由】老规矩,一篇文章搞定,玉刚说写作平台赞助
② https://juejin.im/post/5baa3eb76fb9a05cdb103c74【推荐理由】启动速度优化,玉刚说写作平台赞助
③ https://mp.weixin.qq.com/s/_s88Xjti0YwO4rayKvF5Dg 【推荐理由】内存优化,玉刚说写作平台赞助
④ https://juejin.im/post/5b9e61c7e51d450e41153cdd 【推荐理由】布局优化,玉刚说写作平台赞助