Android开发的经典入门教材和学习…

Android开发的经典入门教材和学习路线?

1.想利用寒假期间学习Android开发,了解到应该先学习Java,不知道选哪本书入门,学习Java和Android有什么经典教材,适合初学者。(有C++的基础,但学的不是很好)

2.入门之后的学习路线是怎样的?到什么程度才能开发一款简单的APP?


.zm-item-answer"}" data-init="{"params": {"url_token": 26947538, "pagesize": 20, "offset": 0}, "nodename": "QuestionAnswerListV2"}" style="border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(238, 238, 238);">
有同学评论说上面那个入门资料太过于肤浅,不适合于零基础,这样的话,我推荐 Java语言程序设计 (豆瓣),但是要抛去 第12章 图形用户界面基础 328、第15章 图形 402、第17章 创建图形用户界面 462、第18章 applet和多媒体 498,这几章基本没有任何实用价值了。
不需要看其他的Java书了,说一下我看过的Java书,第一本是 Core Java (豆瓣),英文版本的《Java核心技术》,里面的下册对范型的讨论太多了,有大量的篇幅讲述了SWing这种已经几乎完全被抛弃的技术,还有一大章讲了各种Java内置容器的实现,初学者一不小心就会陷入其中不能自拔,所以不要看,除非你时间实在充裕;其他国产的Java书里面大多则参和很多 JSP相关知识,仿佛学Java就是为了学习ssh,jdbc,这些在Android里面一点用不到。
要说什么Java技术在Android中应用最广泛,在我看来,无非是并发和多线程,随着现在手机核心越来越多愈发明显。
推荐的书单:
  • Java并发编程实战 (豆瓣),先是讲述了最基本的锁,对象同步,原子操作等,这是并发的基础,随后切入线程安全容器,这在Android中应用非常广泛,各种异步队列里面一般都维护了一个阻塞队列,比如Volley,典型的生产者-消费者模式+堵塞队列,接下来讲述了Executor框架,ThreadPoolExecutor框架,基本可以搞定Android中大多数多线程操作了,难得的是,这本书还花了一部分篇幅来讲述「为什么UI要设计为单线程」,这对理解Android之中的UI为什么不能在子线程刷新也有一定参考意义。当然,Android的窗口绘制复杂的多,并且以window manager service(wms),binder为核心。最重要的一点,这本书很薄,不会让你翻几页就再也不看了,完全可以一口气看完:)
  • Java并发编程的艺术 (豆瓣),同样很薄,与上本书内容基本无交叉,且有一部分尝试从JVM来入手阐述,是一本Java并发方面进阶的书籍,但是仅作扩展视野用即可,实用性与上一本差得多。
Android部分推荐一些我看过(或者浏览)过的书籍
  • 郭霖大神的第一行代码 (豆瓣),看起来厚,但是字大:),也属于薄书的范畴,内容不需过多重复赘述,我在前面的答案中已经多次安利过了,最适合Android入门的书,没有之一。
  • 打造高质量Android应用 (豆瓣),只有200页,满满的干货,大概相当于一本优秀博客的精华,ViewStub、各种控件的自定义(不只是自定义View,包括自定义ViewGroup,比如CascadeLayout,还没听说过这回事的同学建议去【移动开发】如何自定义ViewGroup了解下)、Activity.OnCreate回调中如何获取View的LayoutParams、如何改变Toast的弹出位置、后面更有各种超级实用的经验介绍,直接截图给你们看一下Android开发的经典入门教材和学习路线?---知乎不只是这些,更有很多装x必备点:Android开发的经典入门教材和学习路线?---知乎
其他的内容我就不剧透了,大家自己去品尝去吧!
  • 深入解析Android 5.0系统 (豆瓣),这本书貌似在豆瓣不太火,里面对源码流水账式的讲述也和容易让读者看着头大,但里面有一部分值得读下,那就是Android的核心支撑---Binder机制,从手写Aidl文件->C++来写一个Binder->Java层来写->分析Binder源码->分析Binder驱动,特别是里面的几幅关于Binder的架构图得到熟记,但看这本书时切忌陷进源码细节。
  • Android开发艺术探索 (豆瓣),为什么把任大神的这本著作放在最后呢,不管是在实用性还是阅读时机显然都不应该放在最后,原因主要是这本书还在邮寄中:),我还没来得及拜读,不敢妄加评论,不过根据目录来看,我认为在Android入门后就可以看了,属于实用性极强且较针对面试难点的书籍,每个知识点都讲解的恰到好处,毫不拖泥带水。
最后,以一句话结尾,看书千万不要看厚的,以200-400页为宜,能找到靠谱中文翻译版的不要看英文原版,当然如果经济允许的话,可以中英文各买一本,相互参考。
Google Android官方培训课程中文版(v0.7): http://hukai.me/android-training-course-in-chinese/index.html
这个是个不错的新手学习android开发的教学网站。可以试试看,个人感觉很不错。另外从自学的角度来说,android开发未必需要看什么所谓的入门指南啊之类的东西,那个完全是在耗费时间和精力,上面说了很多太过基础和没有使用价值的东西。学校程序设计相关的东西,动手才是最好最快的学习途径。这个网站就是通过叫你动手做来让你学习android开发过程的,真的有很大帮助

既然题主有C++的基础,就不建议看《Head First Java》了,直接看 Java语言程序设计 (豆瓣)或者 JAVA核心技术(卷1) (豆瓣)就好了,《Head First Java》我觉得是给从来没摸过编程的人看的,内容不深,而且为了让你去理解那些不深的内容,用了大量的比喻,解释,对于有编程基础的人来说完全不如开门见山来的实在;买回来一目十行,然后觉得好像浪费了钱......
关于书方面, 在选书时,要注意避开两种类型的书,一种是“系统源代码分析”型的,一种是“控件使用范例大全”型的;前者不适合初学者,后者权威性和更新速度都比不上API文档,买回来一般翻一翻就放着吃灰了,而且学不到重点。国内早期Android开发的书籍很多都可以归为这两类,近一两年才有所改观。这两类书有一个共同点,就是没有教给你怎么组织项目。楼上提到的《第一行代码》和《Android权威编程指南》我看过,都挺不错,就是使用的IDE是eclipse,建议硬着头皮上Android Studio来开发。
另外推荐三本进阶的书 : Android开发艺术探索 (豆瓣) Android群英传 (豆瓣) App研发录:架构设计、Crash分析和竞品技术分析 (豆瓣)
这三本书都是最近上市的新书,不同于上面那两种类型的书,这三本书基本都是基于工程经验来讲解的,非常实用,内容比较新,有涉及到Android 5.0以后相关API和Material Design的讲解,比较推荐,尤其是《App研发录》,囊括了如何封装一个应用的网络底层,缓存机制,ProGuard代码混淆等等内容,感觉作者可以说是毫无保留的把自己的项目经验分享出来,也许不适合你的项目,但绝对值得参考,《App研发录》比较建议买来看看。
在其它书籍方面,建议了解设计模式,我倒觉得 Head First 设计模式(中文版) (豆瓣)可以买来看看,因为Android经常需要封装自己用的模块,对设计模式的了解还是很有必要的。
=======问题分割线=======
关于题主所谓的简单项目,我不知道是有多简单。如果只是1000~2000行代码的课程设计级别的小demo,那你看过入门书就可以写了,最多简单的划分一下模块就好。但是如果你要做的东西上了规模,你就会发现应用的框架是个必须踩的坑,如果还像做小demo那样写,会很难受,比如Activity负责的东西太多导致难以维护,应用组件间通信,异常处理等。这时候项目需要借助很多开源库,也必须有一定等层次,模块划分,如何划分合适,好扩展,这又是一个需要深入研究的问题,我目前也在研究=_,=
所以关于 学习路线,我的建议是 
1. 掌握基础(基本组件,常用控件,生命周期,自定义样式,常用类等)
2.学习使用各种开源库(volley,okHttp,EventBus,ImageLoader,fresco等)
3.看看开源库的源码,学学其设计思想
4.尝试做一个规模比较大的项目
具体的操作,我建议是在学习基础时,跟着书或者自己想一个小项目做,先熟悉项目结构,开发环境,常用控件等,在基础差不多之后,可以自己写后台或者利用开放接口,做一个包含网络模块的项目,引入各种开源库,同时学习开源库。如果这个项目预先规划的很好,做出来效果不错,可以继续扩大,或者自己推倒重来再写一个。这样能积累比较多的经验,以后也可以将项目不断维护,作为一个新技术的实验平台。
======一点小建议========
最近实习发现hybrid很火啊,由于混合App在热更新上的优势,现在react-native,cordova/ionic大行其道,虽然说不可能完全取代Native,但是在“数据展示类”应用上,绝对少不了hybrid,BAT的应用全部都有hybrid模块,建议了解一下这一块。


Android开发的经典入门教材和学习路线?---知乎

个人认为

1.Java相关知识:

面向对象的概念

理解引用

继承/多态

接口/内部类/匿名内部类/回调(钩子)/观察者模式

异常(声明/捕获)

I/O:类结构/装饰者模式

容器:List/Map/…

多线程:同步/线程池/…

其中主要学会io和内部类即可,然后就可以去学习安卓的内容了。

2.Android的相关内容主要掌握

常用布局/控件的使用/ListView/…

dialog/PopupWindow/Option Menu/Context Menu

fragment

Activity(UIViewController)/broadcastreceiver/service/..

Activity和Service/activity和fragment

intent的各种属性/显式意图/隐式意图

网络通信http:http协议/httpclient/volley/.../json/xml解析

耗时任务:Thread/asynctask/handler

动画:Tween Animation(iOS核心动画:假象)/DrawableAnimation/Property Animation(3.0,UIView)

各种资源文件:字符串/数组/图片/.../style/attr/selector

以上是我认为做安卓的最基础的知识。有了这些知识便可以做出一款完整的app。
3.会使用一些开源项目。github上面有一个安卓开源项目汇总 Trinea/android-open-project · GitHub
4.做一两个项目

关于学习方法:
1.刚开始的时候,可以看视频,这样学起来快一些,刚开始我认为看书是没有用的,通过看视频快速掌握基本东西,可以达到事半功倍的效果。主要参考mars和老罗的视频。
2.这时已经会基本的开发了,接下来可以做一个项目用到平时学习的小的知识点。同样也可以跟着视频学习,网上有一些培训公司的视频,跟着写一个项目就明白软件开发的基本流程了。记住:一定要动手敲代码!
3.这个时候你会发现,做开发基本就是代码拼凑,拿一些现成的开源框架或者以前写过的代码复制粘贴,就是api的调用,已经很容易写一些东西了。就需要从入门阶段进行进阶了,可以将重心放在框架层的源码上面,研究安卓的源代码也是学习安卓的好方式。研究各种manager,Binder,时间分发,view绘制等等,可以做一些自定义的控件,研究开源框架,比如volley等。
4.务实基础,可能在前面的阶段java基础知识还不是很扎实,比如启动一个activity用到xxx.class写代码的时候只是照猫画虎,现在完全可以回头研究到底是什么东西,看java虚拟机等等,3和4也是同步的。
最最重要的就是基础知识,最近在看操作系统,算法这些,非科班出身的一定要重视基础知识。这样才能在这条路上走的更远,更好!
上面说的过程就是我学安卓和踏入it圈子两年以来的经历。最上面列举的java和android的基础知识是有一次和学弟学妹分享做的ppt里面的,希望能帮助到别人。

给题主分享以下android零基础的一套教程:
百度云盘链接:链接:  http://pan.baidu.com/s/1i4oyH3v  密码: 7n24 Android开发的经典入门教材和学习路线?---知乎
一,书籍,新手的话推荐郭霖的《第一行代码》(郭霖的csdn博客也很不错,推荐看下),《疯狂Android讲义》很厚,可以当字典查询。别太多一本就好,要知道android更新很快的,书籍是跟不上的,怎么滴还是多看看官方文档吧。
二,视频,给两个个人觉得不错的 1, http://www.imooc.com/course/programdetail/pid/10。2, http://www.jikexueyuan.com/path/android/。跟着视频学,配合着看书,这门基本算是入了,后面的路还很长,多练习多思考。
三, Android学习之路  ,stormzhang写的android学习之路。
四,Google Sample google在github上发布了大量Demo,不可错过的好材料。官方出品,必属精品。
从最简单的例子开始学起吧!曾经写过一个讲一个最简单的App如何开发的例子,麻雀虽小,五脏还算全,涉及到了Android开发中的一些关键知识,比如:
  • 配置开发环境
  • App中一个屏幕的抽象:Activity
  • 屏幕之间的跳转:Intent
  • 构成屏幕展示的视图组件:显示图片的ImageView,显示文字的TextView,把组件组成一个列表的视图ListView
  • 通过Adapter来控制模型和视图组件之间通信,即如何在视图上展示特定的数据
  • 通过事件来处理用户的交互:OnClickListener

传送门在这: Android开发入门经典实例

郭大神的《 Android第一行代码 》

快速入门. 慕课网

零基础Android学习路径图
这个网站还是很适合新手的


一个有着负编程基础的少年却有自己开发Android应用的野望~少年之野望如何实现?APP如何诞生?——好了。。这只是每个中二少年都有过的热血理想。。(比如我

从语言上说,Android应用开发基于的是Java语言,其实NDK开发中也涉及到了C语言。不过少年,你还是先学会走再开始跑吧。

首先,看书永远是最好的方法,Java语言基础学习推荐两本书:

《Head first Java 》 Head First Java (豆瓣)

《Java编程思想》 Java编程思想 (第4版) (豆瓣)

第一本入门讲解的十分生动,看着漫画就把门入了。第二本是经典中的经典,Java程序员必读书籍。

其次,现在的在线学习资源也十分丰富,觉得看书太麻烦的话看个视频也可以:Java编程导论



有了一些Java基础以后就可以开始学习Android基础开发了,

其实学习Android最好的资料是在  http://developer.android.com/  (需要科学上网,原因就不说了)

这里再推荐几本book:

深入理解Android 1(豆瓣)深入理解Android 2(豆瓣)


这里也推荐几个在线学习资源

极客学院:http://www.jikexueyuan.com/ (国内的平台,课程很全)

英语好的话,推荐U站上的安卓开发微学位,虽然需要付费,不过完成课程的话可以减免,很值! 安卓开发微学位 Android Developer Nanodegree Udacity

同样,这方面的MOOC课程也很多啦。。可以自己去Coursera啊edX啊搜索一下。(学会利用搜索引擎,永远是开始学习的第一步

开发应用不需要闭门造车,有很多成熟的三方库和三方控件可以使用。下面介绍一个大型程序员(同性)交友网站。GitHub · Where software is built。在这里你可以找到各种各样的三方库和控件,不仅仅是Android。

在这里建议少年你学习下Git。一个版本管理工具但不只是版本管理这么简单~~~

GitHub入门与实践 (豆瓣)

Git版本控制管理(第2版) (豆瓣)

如何使用Git和GitHub How to Use Git and GitHub Udacity(PS:是一个美女教师上课哦


应用开发完成就要发布了,发布应用就要涉及到应用市场,Google官方开设了一个系列课程,非常详细地讲解了自家Google Play的各种机制,对于初步了解安卓市场来说足够啦:

安卓市场服务:数据分析 Google Play Services: Analytics Udacity

安卓市场服务:地图 Google Play Services: Maps Udacity

安卓市场服务:身份认证 Google Play Services: Identity Udacity

安卓市场服务:移动电话广告市场 Google Play Services: AdMob Udacity

安卓市场服务:位置与环境:通过定位服务加强你的app功能 Google Play Services: Location & Context: Enhance Your App with Location Services Udacity

更多的关于市场的事就需要自己摸索了~(关于app推广知乎上也有挺多回答,可以自己搜索一下看看


PS,上面说的是非游戏类app,如果想做手机游戏的话需要学 Cocos2d 或者Unity3D 。

也推荐几个资源吧:

Cocos2d-JS 第一步 极客学院

Unity3D 窗口界面介绍 极客学院


好了,学到这里你可以开发应用了!问题回答完毕!

但是学习Android开发不仅仅是开发一个应用这么简单。你要是还有技能点的话就往下看,不过下面的坑是相当的深,慎入。


想进一步学习Android么?推荐一个网站。https://source.android.com/ (如果打不开就说明需要科学上网)把源码下载下来,阅读源码是进步的捷径。你也可以学习下如可编译源码,开发属于自己的ROM(这个就太复杂了涉及的东西太多了,但是弄个简单的还是可以的,这里不讲怎么刷机了)

研究源码时候会涉及到NDK的部分这就要求你有C的开发经验了。但是少年你现在你只学了JAVA,但是不用怕一颗充满野望的心怎么能被这点事儿难道。其实编程语言思想基本是互通的就是表达方式不一样。

推荐一些进阶学习资源:

C语言:

C语言程序设计 中国大学MOOC

C++语言程序设计 学堂在线

Linux:

鸟哥的Linux私房菜简体首页

Linux程序设计 (豆瓣)

深入Linux内核架构 (豆瓣)

NDK开发相关:

http://developer.android.com/tools/sdk/ndk/index.html (想办法科学上网,少年)


少年,学完上面的内容你基本上就是超神了。但是新的技术不断的涌现,不要放松对自己的要求。你还要冲钻石呢。

想想你离全栈工程师还有IOS,Python,PHP,JS,H5,JavaWeb..........想想也是醉了。

少年出发吧,我们的征程是星辰大海。



1.先学java 经典书籍很多,如《java核心技术》《thinking in java》《head first java》等,随便找一本了解一下语法。
2.入门Android,可以看郭霖的《第一行代码》介绍的是基本的Android知识!于此同时,可以学下设计模式推荐看《head first 设计模式》
3.做一些项目练手,就ok了

Android开发的经典入门教材和学习路线?---知乎 柯南 ,认知自我,认识世界
王越杨晓平j黑色衣服  等人赞同
入门书籍推荐java编程思想的都是有病

Android权威编程指南,今天快递刚到手。

前面的许多前辈介绍的学习路线都很好了,我也是从两个月前才发现自己对移动开发的兴趣而入坑的,就跟题主分享一下我对我学习过的书、视频教程和学习平台的体会吧,期望自己的经历能帮助题主少走一些弯路。
首先是郭霖大神的《 第一行代码》,确实是一本好书。从安卓基本框架的介绍,到开发环境的搭建,再到到第一个项目的创建,非常详细,很适合入门。最重要的是,这本书对安卓新手非常友好,与HeadFirst系列一样,给我的感觉都非常棒。
然后是 慕课网的安卓教程。个人觉得慕课网的界面设计很好,在上面学习挺舒服的。慕课网安卓教程中大部分是关于各种控件的介绍,期间夹杂一两个小项目(我觉得太少了)。给我的感觉是,跟着慕课网的教程走,进度太慢了。而且,讲师质量也参差不齐。有非常好的老师,也有讲话含糊不清的。
之后是 极客学院。不得不说,极客学院的界面,实在是让人无爱(个人意见)。而且,感觉极客的安卓课程似乎安排有一点乱,我在上面看了一两节课,就彻底放弃了。
不得不说的还有 黑马视频。我在学习《第一行代码》到Fragment这章的时候,感觉自己对基础的掌握还是太薄弱了,于是开始边看书,边看黑马视频。黑马的讲师给我的感觉是非常专业,讲课也非常棒。我在其中学到了很多之前不曾接触到的知识。黑马各期的安卓教程讲的东西都差不多,题主可以下一期试试看,同样很适合入门。
现在看的一本书是《android开发艺术探索》,讲了很多关于源码的知识,以我的水平来讲这本书确实有点难。不过,慢慢啃吧。
与题主共勉!

想学Android可以在google搜  Android tutorial
学C++ 就搜 C++ tutorial

先加强java基础。推荐高琪的java3000集(视频)。网上一搜都有。
在接着学习android基础:android疯狂讲义,第一行代码都是比较新的。推荐也是去看看各大教学网站的视频。
android进阶:android开发艺术探索,这本书内容极其强大,看到一半你对android框架层的东西就应该掌握的差不多了(包括ipc,activity加载机制,view的绘制,触摸事件,事件冲突等等)
最后:熟悉android三方jar。
网络通信 okhttp volley等
图片加载 imageloader 等
依赖注入 这个可以自己实现的~
事件驱动 RXJAVA FOR ANDROID(没用过)
也可以熟悉一些android快速开发框架 xutils(基于afinal) 
咦 不知不觉把自己的学习路线发上来了。

1.首先要学会翻墙上谷歌。
2.其实市面上的书基本都是按安卓官方文档和参考编的,个人更推荐后者。
3.安卓碎片化挺严重的,现在最新的系统版本是6.0,但是占比只有不到1%。而且开发的时候不同版本的api会有差别。比如说高版本的一些特性在低版本的就无法运行。
4.界面设计可以先不管,简洁就好了,推荐还是用material design,还是有很多东西要学的。
5.至于java,其实有C++基础,理解起来并不困难。可以边搞开发,边补充相关的知识。

我的情况和你描述的差不多,自学了一个月然后再用半个月开发了一个简单的todo类应用。最后发布到应用商店,然而并没有什么人用。。。


[14本经典Android开发教程]-7-Android编程入门教程 -------------------------------------------------- 本文为以前已经使用Java编程并想开始为Android平台开发开发者编写。我试着尽可能地多的"展开",在合适的每个地方放上示例代码。我也试着尽可能多的插入很多图片,因为它们可以活跃学习过程和吸引读者眼球。但不庆幸的,不是每样都编上代码;你不得不学习一些Android平台基础原理来完全理解它。那就是在第一页中描述的。没有必要通读所有的那些描述页,但那样较好些。你可以把它当成一种参考。当在"展开"-过程期间你应该读也被说明了。因此你可以直接从HelloWorld--Android方式开始。 -------------------------------------------------- 已上传6本: [14本经典Android开发教程]-1-Android开发入门到精通 http://download.csdn.net/detail/cleopard/8355245 [14本经典Android开发教程]-2-Android开发手册—API函数详解 http://download.csdn.net/detail/cleopard/8374487 [14本经典Android开发教程]-3-Android SDK 中文开发文档 http://download.csdn.net/detail/cleopard/8380429 [14本经典Android开发教程]-4-Android应用程序开发36技 http://download.csdn.net/detail/cleopard/8380495 [14本经典Android开发教程]-5-linux Android基础知识总结 http://download.csdn.net/detail/cleopard/8380529 [14本经典Android开发教程]-6-Android驱动开发入门及手机案例开发分析教程 http://download.csdn.net/detail/cleopard/8388019 剩余8本稍后上传!@或直接从这里寻找@ http://download.csdn.net/user/cleopard/album @更多@ http://cleopard.download.csdn.net/ 福利 http://xuemeilaile.com 17份软件测试文档 http://download.csdn.net/album/detail/1425 13份WPF经典开发教程 http://download.csdn.net/album/detail/1115 C#资料合辑二[C#桌面编程入门篇] http://download.csdn.net/album/detail/957 C#资料合辑一[C#入门篇] http://download.csdn.net/album/detail/669 [Csharp高级编程(第6版)](共8压缩卷) http://download.csdn.net/album/detail/667 10个[精品资源]Java学习资料合辑[一] http://download.csdn.net/album/detail/663 10个C#Socket编程代码示例 http://download.csdn.net/album/detail/631 6份GDI+程序设计资源整合[全零分] http://download.csdn.net/album/detail/625 2014年移动游戏行业数据分析 http://download.csdn.net/detail/cleopard/8340331 一文读懂2014年全球互联网广告新生态 http://download.csdn.net/detail/cleopard/8340303
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值