进应用市场交流群请加微信号:Miranda_0720,备注“f”
--------------
最近何俊林等技术大牛推荐了开源项目:百篮应用市场,该源码已在GitHub上获得200多颗star了。
本文目录
一、项目介绍
二、项目挑战
三、项目学习要点
-
总结概括课程
-
学习思路
-
网络请求
-
自定义View
-
其他
四、项目总结
-
学完就忘怎么办?
-
学习没有动力怎么办?
-
学习时间被工作占满怎么办?
五、项目源码
六、关于作者
百篮应用市场项目介绍
该项目是作者志刚学习仿华为应用市场课程时从0开始写的,多任务下载、观察者模式等部分功能还在完善中。
应用实现功能:
Android6.0运行时权限、RecycleView高级封装、沉浸式状态栏、多种自定义控件、完善的网络请求库、利用AIDL缓存清理、观察者模式多页面下载进度同步、应用下载后自定义安装、根据数据请求结果动态更新界面;
项目架构:
Retorfit2+Rxjava2+Mvp+Dagger2的多层封装,高度解耦;
技术要点:
retrofit2、Rxjava2、Dagger2、GreenDAO、Okhttp3、butterknife、circleimageview。
apk截图:





接下来志刚分享了开发的挑战和总结的学习方法,与大家交流。
项目挑战
我学android一年多,当时选择这门课程,因为它涉及到的技术比较新,精美的UI,大量的自定义View,还有一些设计模式,对于我这个菜鸟来说真的诱惑很大。
但这门课程本身的定位是进阶资深开发工程师,如果你和我一样的水平学习起来还是比较吃力:
比如学习的枯燥、遇到太多不理解的知识点、新技术掌握不好导致出现错误调试……这些问题很容易造成挫败感,甚至放弃学习。
但是困难对于我们程序员来说就像影子,是甩不掉的。
因为每天都有新技术。我们总是要去学习的,否则就会被别人淘汰,被市场淘汰。所以早晚都要学习,何不尽早呢?这门课程有我需要学习的地方,就要学下去。
开发学习要点
1.总结概括课程
我用一张图大概总结这门课程。由于时间原因没有把全部知识点都概括出来,只是针对一些我个人认为比较重要的模块列举了出来。

2.学习思路
我觉得任何一个课程没绝对的完美也没有绝对的不好,只有适不适合自己。
其实说实在的,这门课程就有点不太适合我自己,因为里面的很多东西都是我没有掌握的,甚至是都没有接触过的;并且,定义为进阶资深的课程确实有不小的难度。
那么对我这种小白是该如何学习呢?
抓重点,对于这门课程我认为最难的两个地方是网络相关和自定义View。
▲网络请求:
网络请求在课程中是一个独立的library,里面封装了很多层,涉及到的知识点也很多:比如RXjava2,拦截器,下载,缓存,重复请求,生命周期管理……覆盖了很多,理解起来也比较有难度。
学习步骤具体如下:
▪先掌握它里面所涉及的知识:OKhttp3,retrofit2,Rxjava2,GreenDAO;
▪再结合代码,映射到实际场景中。把学到的知识点与场景结合,既能加深学到的技术也能更好地理解框架;
▪最后也是最重要的就是封装的思想。对我来说做起来还是挺难的。不过毕竟我也不是资深,慢慢来,学习是个过程,急不得。
那么我再来说下如何学习这几种技术。
Okhttp3先去看下Ivan老师的课程了解基本入门和使用问题,想要继续深入了解可以多看一些博客,这里我就不推荐,有很多。
http://www.cniao5.com/course/10117
retrofit2如果OKhttp3学好了retrofit2就不难了,看Ivan老师的课程,再看文档很快就上手了。这个还是比较容易的。
http://www.cniao5.com/course/10118
推荐文章:[Retrofit2.0使用详解]
http://blog.csdn.net/ljd2038/article/details/51046512
Rxjava2这个我个人觉得比较难,不是多难学习,而是它的操作符太多了,另外涉及到其他知识,比如响应式编程结构,观察者模式,生命周期管理,数据传输控制……不过饭要一口一口吃。
我们可以先看看Ivan老师课程,再看博客和官方文档,最后结合“在路上”老师课程中所讲到的要点,这样学习搞定课程是基本没有啥问题。
http://www.cniao5.com/course/10120
推荐文章:
[给初学者的RxJava2.0教程]
http://www.jianshu.com/p/464fa025229e
[Rxjava2-小白快速入门]
http://blog.csdn.net/gg199402/article/details/78174800
GreenDAO这个看看课程中的视频就可以的。
--------------------------
▲自定义View:
自定义View是个漫长的学习过程,个人建议按以下步骤学习:
动画->画笔->canves->事件分发->自定义布局->自定义控件->drawable->……
如果和我一样没有怎么接触,那么我推荐几篇文章参考下:
Android自定义控件三部曲这是我看N遍的文章,像本教科书。
http://blog.csdn.net/harvic880925/article/details/50995268
鸿洋的自定义Viewhttp://blog.csdn.net/lmj623565791/article/details/24252901/
Android Layoutlnflater原理分析http://blog.csdn.net/guolin_blog/article/details/12921889
Android事件分发机制完全解析http://blog.csdn.net/guolin_blog/article/details/9097463
Android开发艺术探索书籍,真的很不错
从源码角度分析UI绘制流程http://www.cniao5.com/course/10133
--------------------------
我学习自定义View整整花了一个半月时间,可一个月后都忘得差不多了,真的很沮丧。所以准备写一个关于自定义View的系列文章,总结自己的经验,帮助和我一样的小白。最近时间少,不过我一定会写的。
▲其他:
剩下知识点都难不倒大家,如果不理解,找些相关的文章看看,然后自己实践下,应该就能解决。
项目总结
▲ 技术难学不可怕,学完就忘才可怕。解决方案:
▪课程中我还没掌握的有时间会再敲一遍;
▪遇到的坑写成笔记,没事看看,基本掌握后二度创作成博客,作为以后的复习资料。
▲Android就业困难,就是我学习的动力
现在Android就业困难,搜个一年经验的就要求会Framework、了解底层原理、会前台后台、会设计模式,一大堆新技术也要会,动不动就源码,是真的让人害怕。
所以不强大自己,怎么有优势,面试的时候吹啥?
▲时间就像海绵,挤一挤就有
现实与想象的差距总是有点大:平日大家要加班,自主学习的时间变得很少,导致陷入想学却心有余而力不足的囧境。
但时间就像海绵,挤一挤总会有的。我们总是羡慕大神什么都懂,却习惯性忽略人家背后成百倍的付出。所以骚年,放下手中的王者荣耀、英雄联盟、电视剧……干点正事。
比如和我一样迎难而上,逼自己一把
学《仿华为应用市场》课程
进阶安卓资深工程师。
课程详情☟☟

学习是互动性的
我建了【应用市场资深交流群】
欢迎大家入群与我共同交流学习☟☟☟

群满加下方微信备注“f”拉你进群

关于作者
志刚在这里分享小白的学习历程,
博客:http://blog.csdn.net/gg199402?viewmode=contents
简书:http://www.jianshu.com/u/70a8f4edb323
学习仿华为应用市场课程点击【阅读原文】
↙