1.想利用寒假期间学习Android开发,了解到应该先学习Java,不知道选哪本书入门,学习Java和Android有什么经典教材,适合初学者。(有C++的基础,但学的不是很好)
2.入门之后的学习路线是怎样的?到什么程度才能开发一款简单的APP?
个人认为
1.Java相关知识:
面向对象的概念
理解引用
继承/多态
接口/内部类/匿名内部类/回调(钩子)/观察者模式
异常(声明/捕获)
I/O:类结构/装饰者模式
容器:List/Map/…
多线程:同步/线程池/…
其中主要学会io和内部类即可,然后就可以去学习安卓的内容了。
2.Android的相关内容主要掌握
以上是我认为做安卓的最基础的知识。有了这些知识便可以做出一款完整的app。常用布局/控件的使用/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
从语言上说,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..........想想也是醉了。
少年出发吧,我们的征程是星辰大海。