分享 stormzhang的Andoid学习之路
硬件
- 电脑–推荐Mac
首先声明我不是果粉,个人Windows,Linux,Mac OX系统均用过, 只能说Windows上面的开发工具简直难以恭维,尤其命令行超级难用,而Linux自己必须得花不少时间在折腾中,更是不适合新手了,Max OS是我认为迄今为止最好用的系统,没有之一, 所以如果你不差钱的话,强烈建议入手一台Mac,推荐Pro系列, 当然它的价格确实比较昂贵,如果暂时入手有困难,推荐以后手头宽裕的时候再入手吧,会带给你质的体验。(Google的工程师们都在用Mac,应该比较有说服力吧)
- 手机–推荐Nexus 5
做Android开发最难以忍受的就是那龟速的模拟器,强烈推荐入手我Google的Nexus系列,原生rom,性价比超高,有条件的推荐再入手一台小米或三星之类的,不是因为他们有多好用,而是因为目前市场上这两个品牌的手机份额最大,实际开发中可能需要进行适配与测试,总之你需要有台Android手机。你可能还需要知道魅族手机有个SmartBar的东东,虽然我认为确实很SB。最后你实在还是要用模拟器的话,那么姑且就给你推荐一款比较快速的模拟器吧—-Genymotion, 具体的见我这篇博客一个强大的Android模拟器Genymotion
书籍
书不在多,适合你就好,其实市面上的书籍大部分都差不多,没有本质的区别,所以书必要要有,但不推荐一次性买太多。这里推荐几本我认为比较好的书籍,点击可以直接购买。
郭神的最新力作,郭神的博客很棒,书我也买了看了一部分,非常棒,适合新手,而且是针对Android 4.0进行讲解的。
当年我学习的时候就看的这本书,现在出了第二版了,这本书的优点是讲的很细,代码较多,你可以跟着代码一步步敲,缺点就是篇幅太多,导致书太厚了,携带不方便,书中最后的几个实例教程不是那么好,不知道第二版更改没。
Thinking In Java是Java的经典书籍,这是一本值得反复看的书籍,针对有一定Java基础的人,可以说是学习Java语言必备的书籍。
Effective Java是Java进阶必备书籍,看后绝对会让你对Java有了更深的认识。
补充:鉴于很多小伙伴让推荐Java学习的初级睡觉,Thinking In Java确实是本好书,但好书一般都不是针对初学者的,所以如果你没有任何编程经验,那么我来给你推荐几本Java基础书籍,就不提供购买链接了,大家自行搜索去购买。
- 《疯狂Java讲义》(李刚),《JAVA面向对象编程》(孙卫琴),《Java开发实战经典》(李兴华),《Core Java》
这几本书都是针对初学者的,我都没有看过,但是我自己稍微做了了解,最后,这些书买一本就够了,然后配合视频学习,小白入门不是梦。
开发环境
目前强烈推荐Android开发者使用,抛弃Eclipse拥抱未来吧!这是Google最新推出的Android开发工具,基于IDEA,编译依赖Gradle,目前已经推出1.0正式版,这是Android开发工具的未来,所以身为Android开发者有必要花点时间去学习使用它,亲身经历,自从使用它之后再也不想去碰Eclipse。
为此我也推出了Android Studio的一些列学习教程,堪称史上最详细:
Android Studio系列教程二 —- 基本设置与运行
Android Studio系列教程四 —- Gradle基础
Android Studio系列教程五–Gradle命令详解与导入第三方包
Android Studio系列教程六–Gradle多渠道打包
FQ
俗话说,不会FQ的程序员不是好程序员,尤其最近Google各项服务被屏蔽,以上IDE的下载也就都需要FQ,这里推荐一个靠谱的VPN吧,支持多设备MAC, Windows, Android, iPhone等, 如果和小伙伴们一起合买的话每月只要几块钱,圈内的朋友们都在用,如果你通过下面链接购买的话,你和我的账户都会增加10元钱。
如果无论如何你都不想FQ的话,这里github上可以直接下载以上Android开发工具
Google Android官方教程
Android Training Course in Chinese
视频推荐
在这里我必须强烈推荐新手们结合视频学习,身为过来人我的很清楚一开始入门很难,只是看书或者资料难以理解,而这时候结合视频讲解,加上自己的书籍与实战,会起到事半功倍的效果。所以不要小看了视频的作用,当然现阶段的我完全不需要去看视频,因为视频讲解的有些慢,但是对于新手们的作用非常巨大。视频学习有很多,但大都差不多,我也没法推荐最好的给你,只是以我自己的角度觉得质量还不错,推荐如下Android视频学习。
Android基础
上面可能是一个比较全面系统的培训教程,对于新手们可能对某些需要着重掌握的东西比较迷茫,于是整理下个人认为新手们必须要掌握的知识点,顺便也会附带相应觉得不错的讲解博客地址。
Activity实际开发中使用频率最高,这个必须要理解
Android中的四大组件必须得知道,也是面试常问到的
ListView是所有控件中最常使用且对新手来说比较复杂的用法,各种Adapter的使用以及ListView的优化都是必须掌握的
Intent解决了Android中四大组件的通讯,非常有用,这篇博客收集整理了系统的标准Intent
介绍一些Android屏幕适配的基础
Android中的SQLite需要掌握,这篇博客很适合新手
3.0之后新加的Fragment,必须要掌握,目前使用的场景也是越来越普遍了
Android中级
Android的应用程序的生命周期需要理解,面试也是经常会被问的
View做为UI开发中最常用到的,必须要深入理解
Service作为Android四大组件之一,在每一个应用程序中都扮演着非常重要的角色
目前比较常用比较流行的数据格式就是json了,这篇博客教你如何使用Google Gson库来进行json解析
Android开发中经常会用到xml布局,那么布局优化方面的知识更是需要掌握的了
详细讲解了Android中Intent中如何传递对象
Android开发中异步操作是经常使用的,必须理解掌握
Android异步操作的另一种方法
很早的一个小demo,教你如何做一个App的Loading动画
Android进阶
Google官方Android新的构建系统,可以很方便的管理依赖、编译打包等
一系列的性能调优教程,让你的代码以及App更畅通!
一个开源客户端,教你使用Studio、Gradle以及一些流行的开源库快速开发一个不错的Android客户端
自己整理的一些Android开发资源,包括开发、工具、设计等,相信会对你有用的
Android设计
在开发一款Android App之前,你需要了解下Android平台的设计规范,这里有Google最新推出的Material Design中文翻译版
Android兼容库
在了解了设计规范准备着手开发你的App时,你还需要考虑你的App支持的版本,如果是全新的App,从目前的市场份额来看,建议直接支持4.0+,虽然2.3的份额仍然有一部分,但是这部分真正用来使用App的人又能有多少呢。当然如果你的公司必须要求支持2.x的版本,那么也不用担心,下面整理了几个满足你适配的一些兼容库:
大神JakeWharton的一个ActionBar的兼容库,支持在2.x版本使用ActionBar
在这之前使用ActionBar基本都会使用上述JakeWharton的兼容库,但是目前Google有了自己的一套ActionBar兼容库,推荐使用ActionBar Compact,具体介绍及使用方法详见我的这篇博客
Android 3.0之前开放的一些新的动画api–Property Animation,大神JakeWharton的又一大作,可以让你在2.x版本的sdk可以使用属性动画.
如果需要兼容2.x的版本,在使用如下类的时候你需要使用v4包下的,如Fragment, FragmentManager, FragmentActivity, FragmentPagerAdapter, CursorLoader, LoaderManager, AsyncTaskLoader
当然v4包下面除了以上还有一些新的控件你必须知道
在这之前在Android上实现一个抽屉导航你可能会用到SlidingMenu开源库,如今你可以使用官方的DrawerLayout控件很容易实现
SlidingPaneLayout是V4包中新添加的组件,可以实现两列面板的切换, 具体使用与效果见博客链接
SwipeRefreshLayout是Google在support v4 19.1版本的library更新的一个下拉刷新组件,使用起来很方便,可以很方便的实现Google Now的效果
Android开发必知的一些开源库
说到开源库就不得不提GitHub,只能说是目前最活跃的开源社区,不知道的赶紧去注册个账号使用起来,绝对是你快速提升技术的利器。
Volley
App开发中免不了要和服务端进行交互,而volley是Google官方推出的一个开源的网络通信库,它能使网络通信更简单,更快速。
ActiveAndroid
ActiveAndroid算是一个轻量级的ORM(对象关系映射(Object Relation Mapping))框架,简单地通过如save()和delete()等方法来做到增删改查等操作。
Retrofit
Retrofit和Java领域的ORM概念类似, ORM把结构化数据转换为Java对象,而Retrofit 把REST API返回的数据转化为Java对象方便操作。同时还封装了网络代码的调用。
Android-Universal-Image-Loader
Android-Universal-Image-Loader是一个强大的开源图片异步加载库,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示。
Android开源项目分类汇总
非常全面的GitHub开源项目汇总,不需要重复发明轮子,尽情遨游在开源世界里吧
分享 stormzhang的Andoid学习之路的更多相关文章
- 初级dba学习之路参考
今天周一拖着疲惫的身躯 11点才离开公司,回到家估计写完这篇博客就要17号了. 一个人走在回家的路上,很黑,突然很多感触,一个人在北京拼搏,不敢停止学习的脚步,因为只要停下来就会感觉到孤独. 回顾一下 ...
- JAVA学习之路与大家分享
这是我四年以前总结的JAVA学习之路,希望对初学者或想从事JAVA开发的人有帮助. 本人是软件工程专业出身,先后学过C.C++.JAVA.VB.delphi等等开发语言以及网络相关管理技术.哎,好久不 ...
- Vue学习之路---No.4(分享心得,欢迎批评指正)
这里说声抱歉,周末因为有其他事,没有更新博客,那么我们今天继续上周5的说. 老规矩,先回顾一下上一次的重点: 1.利用V-if和v-else来提到show()和hide(),同时要记住,v-else一 ...
- 我的nodejs学习之路1
距离上次写文章类东西已经有4-5年了,猛然写东西有种提笔忘字的感觉. 言归正传,这是一篇记录我自己学习nodejs的文章,在写下这篇文章的时候我也不是什么大牛,也不是很了解nodejs这项技术.之所以 ...
- 应用程序Cache对象到高性能Memcached学习之路
来源:微信公众号CodeL 以下是个人学习之路的简单分享,不足之处欢迎大神们批评指正! 在网站开发的初期,我们没有考虑更多的东西,也没有对缓存进行系统的设计,而是直接使用了应用程序缓存对象Cache, ...
- zz 游戏程序员的学习之路(中文版)
游戏程序员的学习之路(中文版) Milo Yip · 1 天前 感谢 @楚天阔(tkchu)编写脚本及整理中文译本数据,自动从英文版生成中文版,SVG / PDF 版本中的书籍图片现在链接至豆瓣页面. ...
- JMeter学习-016-思路篇之-山重水复柳暗花明
首先,此文非技术类博文,为思路类的博文,敬请参阅,欢迎共同探讨! 今天在编写 JMeter 接口监控脚本时,遇到了一个问题,在解决问题的时候,思路出现了偏差,导致了自己在解决问题时,绕了弯,浪费了些时 ...
- [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
随机推荐
- (转)MySQL的JDBC驱动源码解析
一.背景 MySQL是一个中小型关系型数据库管理系统,目前我们淘宝也使用的也非常广泛.为了对开发中间DAO持久层的问题能有更深的理解以及最近在使用的phoenix on Hbase的SQL也是实现的J ...
- DefaultMessageStore-CommitLog-MapedFileQueue.allocateMapedFileService初始化链
刚刚在研究rocketmq生成文件的源码.零时记录一下MapedFileQueue中属性AllocateMapedFileService allocateMapedFileService的初始化链. ...
- Leetcode--easy系列5
#83 Remove Duplicates from Sorted List Given a sorted linked list, delete all duplicates such that e ...
- EffectiveJava(29)优先考虑类型安全的异构容器
当你的泛型集合需要更多的灵活性,你可以将键进行参数化而不是将容器进行参数化.然后将参数化的键提交给容器,来插入或者获取值.用泛型系统来确保值得类型与它的键相符. 我们创建一个Favorite类来模拟这 ...
- 通过web php 执行shell脚本,获取的结果与直接在命令行下获取的结果不同。
公司项目中的一项小功能,统计设备的连接数.其中用到shell脚本来获取已连接设备的统计.使用命令 /bin/netstat -an| grep ESTABLISHED | awk '{print $4 ...
- C#秘密武器之多线程——基础
多线程概述 什么是进程? 当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源.而一个进程又是由多个线程所组成的. 什么是线程? 线程是程序中的一个执行流,每个线程 ...
- MySql sqlstate代码大全(转载)
http://blog.csdn.net/u013847120/article/details/52887813 本章列出了当你用任何主机语言调用MySQL时可能出现的错误.首先列出了服务器错误消息. ...
- 关于web项目中的图片上传、并在前端显示问题(tomcat中配置文件上传虚拟路径)
一.数据库存储 直接把图片的二进制码存到数据库,可参考blog:http://blog.csdn.net/hope2jiang/article/details/590733 直接存图片在mysql上面 ...
- vue - .gitignore
描述:npm官方屏蔽上传文件编写文件. 举例(屏蔽的文件/文件夹记得分行) 屏蔽文件:yarn.txt 屏蔽文件夹:/dist/
- python的基本知识点
一.数据类型 1.整数2.浮点数3.字符串4.布尔值:True/False5.空值:None 二.变量 变量名必须是大小写英文.数字和_的组合,且不能以数字开头 三.常量 全部大写的变量名表示常量,p ...