在Android开发的道路中,学习如何归档自己在工作中所遇到知识点与方法,收集并整理这些资源,看到 Freelander 写的Android_Data,很受益获得了很多,所以也希望自己在学习工作的过程中能总结自己所遇到的知识点.
希望通过此文档能给大家及自己在开发学习的过程中提供帮助,能有更多的开发者参与其中,有不足或者错误的地方 欢迎提出Issues 或者 邮箱 联系我,会持续更新完善,谢谢.
书籍 | 推荐理由 |
---|---|
java核心技术 卷I | 作为android开发的语言基础,很适合开发者学习的一本基础知识书籍,打牢基础很重要 |
Effective Java | Java经典书籍,属于进阶系列,不过书中提到的有些内容不太适用于android,但是值得阅读 |
第一行代码(第二版) | 郭霖著作的第二版,基于android 7.0,贴合最新的android系统,很适合入门学习当中提及到的知识点很通俗易懂 |
Android开发艺术探索 | 任玉刚著作,android 进阶书籍,这本书籍我也正在阅读,源码结合实践向大家阐述难点知识点,对于初级向中高级进阶很有帮助 |
Android 源码设计模式解析与实战 | 也是属于进阶书籍,阐述android 源码设计模式,提升自己的代码质量以及设计思想 |
人类简史 | 在闲暇之外也可以阅读技术之外的文章拓宽的自己视野,此书籍也有很多人推荐 |
国内
在这里推荐一些国内以及国外一些大牛的博客地址,在平时的学习中除了查看书籍之外,关注并阅读一些大牛的博客都可以提升自己的学习效率与知识面.
Blog | 博客信息 |
---|---|
鸿洋 | 相信大家都不陌生,热爱分享与写博客,产出质量也比较高,不仅仅有博客在慕课网也有视频教学:Hyman |
stormzhang | 帅b张 很有幽默感的人,有自己的见解乐于分享,除了编码的一些干货之外也分享很多关于技术人在职场中的为人处事态度,同时也可以关注他的微信公众号 |
任玉刚 | android开发艺术探索的作者,给后者很多作为过来人的指引与见解,我也在努力学习中 |
Mr.Simple | android 源码设计模式解析与实战的作者 分享了很多关于最新技术的知识点 置顶的几篇文章很受用大家可以阅读以下 |
郭霖 | 第一行代码的作者,分享的博客文章对于很多新人来说很受用,也有对新技术在项目中的应用 |
国外(需要自备vpn)
Blog | 博客信息 |
---|---|
Android Developers Blog | android 很多最新的学习资源2007~2017每年的一些知识与技术 |
Cyril Mottier | 分享很多关于android 性能以及设计测试方法 |
Dan Lew Codes | android 项目中遇到的一些问题总结以及解决方法 |
这里就先推荐这些,当然还有很多其他优秀的博客,希望大家踊跃提出,大家共同学习进步
在开发编码的过程中,合理的使用工具以及插件可以大大提升我们的开发效率,在这里给大家提供一些我平时收集整理的资源.
Goole Chrome 开发人员必备,大家应该都在使用,有很多插件对开发很有帮助:(里面很多都是在stormzhang 找到的点击这里 很感谢帅b张的干货分享)
插件 | 介绍 |
---|---|
Momentum | 新打开一个Tab页面不是一片空白,我现在就在使用很美观 |
OneTab | 在打开很多tab页面的时候,不舍得关想要保存就可以用这个,可以一直保存哦需要的时候可以打开 |
Octotree | 查看github代码的时候,左侧会展开所有的文件夹方便查看很好用 |
Octo Mate | 查看当前代码工程的大小以及信息一目了然,很适合开发者使用 |
Awesome Autocomplete for GitHub | 在搜索开源项目时会提示你输入关键字的项目信息方便你更快捷的查找 |
Postman | 当前端与后台进行接口对接的时候可以使用这个来进行数据调试很强大方便 |
Save to pocket | 当看到一篇很好的文章时可以使用此插件进行保存当前页面,更轻大的是同时有移动端app实时查看电脑与手机同步 |
以上是我正在使用的chrome 插件都很好用快捷,还有很多好用的插件我会后续整理分享出来
优质网站
网站 | 介绍 |
---|---|
Readhub | 每天更新IT互联网最新的一些资讯信息,大家可以在闲暇放松时看看 |
Android Weekly | 每周更新技术博文,介绍新技术、热点,可以邮件订阅哦 |
Android Blog 周刊 | 优质的互联网技术,分享了很多关于优化app的干货,很值得学习 |
泡在网上的日子 | 很多的干货集中处,开源项目以及一些项目需求中的实现都能在这里查找 |
掘金 | 技术分享干货网站,集中前端后端也有设计 |
Android developers | 身为android开发者这个网站每个人都应该知道 |
Studio 开发插件
插件 | 介绍 |
---|---|
Butterknife | 使用很方便,大大减少了findviewById代码,使用介绍可以看这里 |
GsonFormat | 将后台返回的数据自动化创建实体类,同样很方便使用方法在这里 |
Lifecycle Sorter | 可以根据Activity或者fragment的生命周期对其生命周期方法位置进行先后排序 |
Android Parcelable code generator | JavaBean序列化,快速实现parceable接口 |
好的项目架构会为后续的更新迭代带来更高的效率,之前在项目重构中使用了Mvp,最大的感觉就是Model层与View层的解耦,activity和fragment只做查找控件初始化工作,大大降低了其中的代码,这里推荐几篇关于mvp的文章:
链接 | 介绍 |
---|---|
androidmvp | 很浅显易懂的mvp Demo通过登录页面到主页面实现的mvp结构 |
SimpleNews | 基于Material Design和mvp的新闻app,结构很清晰 |
用Mvp架构开发Android应用 | 作者很详细的阐述了mvp在android项目中的使用,使大家更清楚的了解到其中的原理 |
通过以上几篇文章以及实例项目,很直观的了解到mvp在项目中的使用,一定要结合实践来理解会更加的透彻
这里推荐几篇对开发者很有意义的干货文章,望能给你带来帮助与建议.
文章 | 推荐理由 |
---|---|
整理常见的问题 | 整理了android 开发中遇到的一些常见问题以及难点给出解决方法也有在面试中遇到的常见问题 |
如何看懂源码 | 作者总结了应该怎样阅读源码以及阅读源码需要的工具介绍和阅读的方式选择,有想阅读源码的小伙伴可以看看 |
打造自己的android源码学习环境 | 教你一步步的搭建编译android源码的环境 |
Android开发习惯 | 在android开发的过程中,习惯也很重要:文件命名、代码备注、注释等都体现了作为一名开发人员所要掌握的技能 |
Android 开发最佳实践 | 关于android 最新的热门推荐以及相关的项目资源 |
android开发中,你一定积累了不少的工具类,这些工具类是帮助我们快速开发的基础,如果你是新手,可以让你项目做起来更加简单 (项目原地址出自:https://github.com/Trinea)
工具名称 | 作用 |
---|---|
android-common | 集成了项目很多功能:缓存(图片、网络)、公共View、及常用工具类 |
图片缓存 | 适用于获取图片较多且图片使用频繁的应用,包含二级缓存,美丽说、蘑菇街等等 |
图片SD卡缓存的使用 | 适用于图片较多且较大的情况,需要二级缓存及GridView图片加载推荐使用ImageCache |
Android网络缓存 | 使用于网络获取内容不大的应用,微信公众账号发送的内容等预取数据缓存 |
HttpUtils | Http网络工具类,包括httpget、httpPost及相关参数方法 |
JSONUtils | JSONUtils工具类,可用于方便的向Json中读取和写入相关数据 |
FileUtils | 文件工具类,可用于读写文件及对文件进行操作 |
ImageUtils | Drawable、Bitmap、byte数组相互转换 |
还有更多的工具类大家自己可以在项目中学习,这里就先介绍这些,如果有其他工具类大家可以分享出来,这里看到 Stunner_W 的博客,很多地方参照他写的,很感谢他的分享
Github上有很多值得我们学习的项目,涉及到项目结构、编码习惯以及各种优秀的设计模式,如果你想成为一个更好的开发人员,你必须阅读更多的代码
项目名称 | 难度 | 推荐理由 |
---|---|---|
LeafPic | 初级 | 照片和视频库应用程序是你可以在Android设备上找到的最常用的应用程序之一,LeafPic是你可以尝试和学习的最好的开放源代码应用程序之一 |
Simple Calendar | 初级 | 一个简单易用的日历应用程序,内置 Kotlin 编程语言,你可以从中学习,你还可以了解如何为Android定制桌面小部件 |
Amaze File Manager | 中级 | 文件管理器是你几乎可以在任何android设备上找到的应用,你可以学习这个程序的许多代码,包括按照本项目中使用的编码标准 |
Easy Sound Recorder | 初学者 | 如果你想了解android中音频录制和操作,这个简单易用的程序是很好的例子,还可以学习Material Design |
MoVie Guide | 中级 | 一个关于列出流行的电影,以及相关的预告片和评论,运用了Clean Architecture,RxJava,以及依赖注入Dagger 2 |
Minimal ToDo | 初级 | 这个非常简单但是很酷的项目很值得学习,阅读代码, 你将了解android开发的大部分基本方面 |
CoCoin | 初级 | CoCoin是一个详尽的个人财务和会计应用程序,这是一个干净、美丽的UI,可以学习自定义视图 |
Timber | 高级 | 这是一个设计精美,功能齐全的android音乐播放器,很适合中级高级android开发人员学习 |
Super Clean Master | 高级 | 以非常干净,优雅的方式模拟clean Master中的大部分功能,需要一些时间,才能理解这里面的代码 |
这些项目都是来自 这里 有兴趣的可以查看原文章,我这里只摘取了有代表性的一些的项目,当然里面的项目都很值得学习研究
好的学习资源可以帮助我们更好的提升学习效率
资源地址 | 推荐理由 |
---|---|
优达学城 | Google开发简单易学的课程,快速了解android 开发的基础知识和概念,很适合初学者学习的网站(有免费学习资源和付费内容) |
Android开发CodeLabs | 很适合初学android开发的学习网站 |
Http和Rest初学者指南 | 在与后台服务器进行通信,并通过android 应用程序进行api调用,作为开发人员对于了解就很重要 |
极客导航 | 总结了很多关于前端包括 ios、android 设计的进阶学习资源,干货集中营 |
Android Weekly | Android Weekly 是由android 团队的成员和国外的知名android 开发者维护,不只有干货也有最新的技术分享 |
慕课网 | 网站包含了移动端开发、php开发、等一系列学习资源很多免费资源和收费资源都很值得学习,网站内容很丰富 |
移动开发前线 | 一周一篇阅读清单 包含最新的技术资讯与干货 |
以上很多资源干货推荐都来自于这里 ,当然还有很多优秀的学习资源,也欢迎大家多多分享出来
android 5.0推出的md风格,材料设计理念出现在很多应用程序的界面中,包括各种动画效果以及界面风格,作为一名android开发者有必要学习与应用到项目中
名称 | 介绍 |
---|---|
Material Design 教程 | 很多material design的学习资源介绍,很适合刚接触此设计的同学们 |
Material Design library | MD开源库,很多效果和控件布局都可以拿过来直接用 |
设计MD风格的界面 | 一个可以根据你的设计要求规范来设计界面,包括MD风格的Icon |
使用稳定的第三方开源库能提高我们的开发效率,当然对于我们来说不仅仅是拿来使用,更重要的是使用后的学习
名称 | 介绍 |
---|---|
OkGo | OkHttpUtils的升级版本,完美支持RxJava,该库封装了okhttp的标准RESTFul风格的网络框架 |
XRecyclerView | RecyclerView,实现了Pullrefresh和loadmore,你可以像标准的RecyclerView一样使用它 |
Fastjson | fastjson是一个Java库,可用于将Java对象转为Json表示形式,也可以用于将Json字符串转换为等效的Java对象 |
butterknife | Android视图和回调函数绑定到字段的方法,View注解库可以大大减少你的findViewById |
Glide | 图片加载和缓存框架,使用方法也和picasso非常相似,当然如果你的项目当中里面包含较多的图片加载,你也可以使用 fresco 同样很强大 |
RxJava | 函数响应式编程,两个字形容就是"异步",Rxjava最大的特点就是代码简洁,这里指的并不是代码简洁,而是逻辑上的简洁, 学习它需要一定的成本 |
FlycoTabLayout | Android Tablayout开源库实现了各种样式需求,很强大使用也很方便 |
这里只是推荐介绍了很少一部分的开源库 ,还有很多 后续我会持续添加更新到这里
-
面试中容易遇到的一些问题,这些文章都有提到,大家可以针对性的挑一到两篇学习
后续还有很多的学习资料分享出来供大家查阅,也希望大家能联系我或者提Issues 我会尽快回复, 如果帮助到你欢迎大家Star