其实网上有很多安卓学习路线图,但是太虚了,我想说一个比较实在的学习步骤,也是我个人的学习步骤。
第一步 java基础
因为安卓开发语言是使用java,因此必须了解,熟悉j2se。java基础看马士兵的视频就行,他讲的特别好,尤其是堆栈内存那一块。然后学疯狂java讲义,不需要都学,学前十章就行,不建议初学者学java编程思想,比较难懂,不适合入门。(时间2-3个月)
第二步:书籍
入手的第一本书就是android疯狂讲义,七八百页,其实我感觉我们不用全部都学,比如说动画、视频、传感器先可以不学,安卓疯狂讲义的有些设计不是很合理,把很多难的内容放到了前面,
没有做到从易到难,我们学的过程中可以先把一章整体看一下,然后再安排学习的顺序,把里面的每一个例子都自己敲一遍。因为我上下班坐公交车时间很长因此我都是在公交车上看书,这样一个月过去了,
疯狂讲义的主要部分学了一遍。
第三步:视频
我看过的视频也很多,比如说黑马精通40,还有尚学堂的,还有传智播客的,觉得最好的还是老罗的安卓开发视频,讲的很细也很全面,于是我把其它视频都放弃了,只学老罗视频,每天看7个,中间也有耽搁的这样过去了一个月,所有的看了一遍,主要的,难懂的看了两到三遍。
第四步:高仿项目
做完前两步,自己感觉水平应该可以了,于是就想去独立开发一个app,但是还是不知道怎么下手,于是从网上找了几个开源项目,开始模仿去做,有仿新浪微博,仿美团,闹钟,这样过去了一个月,终于有些底气了。
第五步:android官网
要想去安卓官网还需要**,这个大家都懂,首先官网上面的api guide看一下,最后都能仿着写一遍代码,然后再把training上的几个例子也仿着写一遍。这样学上面的例子用了一个月。
第六步 :android学习手册
我之前一直从事java web开发,前段时间因为工作需要,转学了安卓,在学安卓过程中,一直想找一款应用能够展示各个章节的知识点,并且提供demo例子,就像谷歌Android API Demo一样,google api demo例子太老了,都是外文,例子也不够丰富,还不能看源码,也没有文档。于是把自己学习安卓过程中的用到例子都整合在了一起,并把例子都写在了android学习手册中,希望想学安卓的java同胞们,能有一个好的例子参考,快速学习安卓,少走弯路。android学习手册包含9个章节,108个例子,源码文档随便看,例子都是可交互,可运行,源码采用android studio目录结构,高亮显示代码,不需要积分,文档都采用文档结构图显示,可以快速定位,度娘不让发链接,360手机助手中可下载。
第七步:独立开发app
光说不干嘴把式,光干不说傻把式。必须独立开发一个小项目。
Android是一种以Linux为基础的开放源码 *** 作系统,主要使用于便携设备。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年2月数据,Android占据全球智能手机 *** 作系统市场525%的份额,中国市场占有率为684%。自google收购Android之后,Android开发者更是风生水起。Android开发前景看好,Android手机市场大卖,Android应用人气火爆,Android程序员也待遇渐长。随着安卓逐渐进入人们的视线,所以越来越多的人开始选择学习Android,学习Android倒是个好方向,但是在选择学习安卓课程的同时,很多人还是有很多疑问,学习安卓需要基础吗?没基础能学会安卓吗?学习不能盲目,首先要理解Android的特点,明确自己的学习方向。那么学习Android需要掌握些什么呢?
其实大多人学习安卓课程,是相当不错的,但是,学习安卓课程必须是有一定的编程基础的,北大青鸟IT教育品牌明确规定,学习安卓课程的学员,需大专以上学历,还要计算机相关专业毕业,比如计算机,应用数学,应用物理,电子工程等专业基础,最主要的是要会写编程语言。参加的Android开发工程师的培训是有要求的,需要熟悉C++或java开发语言,了解linux *** 作系统。
Android系统是基于linux为核心的,而linux是用c语言和少量汇编语言写成的,如果你想研究android,就去学c语言吧。现在大学里面和计算机相关的专业甚至理工类专业一般都会开设C语言课程,只是很多同学在大学期间并没有好好学习,如果对它掌握的不太好或者很久没用了,建议先从将其好好复习一下,将其基本的语法再好好回顾一下,最好能搭建一个环境来运行、调试它。如果没有学过,不妨也提前学习一下。
在了解了什么是Android以后,如果要学习的话,我们需要了解学习Abdroid需要有哪些基础呢?
学习Android一定要有Java基础,最差也要类似Java的其他面对像对象语言的基础。很多同学从来没有搞过软件编程,听说Android能赚钱,就疯了一样冲过来要学习。这明显是不靠谱的,甚至有的朋友一个字母一个字母的按照我们的例子去敲代码,然后非常努力的把代码背下来,像背英文单词一样的背代码,编程如果要是学成这个样子,还真是让人佩服不已啊!不管怎样,学习Android你最少也要掌握Java语言的如下知识点才能够开始学习:
a)Java基本数据类型及其特点
b)Java分支语句和循环语句的使用
c)类和对象的创建和使用方法
d)函数的使用
e)抽象类和接口
f)继承和实现
g)对象的多态性
h)包和访问权限
i)异常的处理
j)类集框架
k)eclipse的基本用法
以上是JAVA的基本语法,也是学习Android开发入门必备的基础,如果你想学习Android开发,先学习好这些基础知识点吧!如果有学校告诉高中生零基础也能学习安卓课程,那么,明显是带有欺骗性的。
另外Android上得应用大多是用java编写的,如果你想编写手机游戏和应用 ,就去学java吧。Android应用程序开发是以Java语言为基础的,所以没有扎实的Java基础知识,只是机械的照抄别人的代码,是没有任何意义的。 建议在安卓课程前期的java学习阶段中,需要用心的学好。
Java是现在人们热谈的话题,现在学习java的人也是越来越多。随着市场的需求,Java培训机构也是遍地开花,网络上的各种java教程也是大量出现,这足以让我们认识到java的火热程度。许多做Android的程序员以前都是做JAVA的,甚至还有不少程序员是即做JAVA又做Android,所以,如果想做Android应用的话,不妨先学些JAVA知识。成都北大青鸟名流学校针对各个层次的学员,开设不同的课程,主要是针对目前比较主流的JAVA和NET语言,如果你想更好的在安卓方面发展,不妨好好的来学习一些JAVA课程
游戏开发需要学习:基础公共课、专业技能课、游戏程序方向。
1、基础公共课
游戏概述Photoshop平面软件及像素美术3DMAX软件基础及效果图制作,游戏程序设计基础及游戏制作原理、游戏策划、制作、测试及运营实践、游戏行业规划及职业素质。
2、专业技能课
手机2D游戏开发、2D游戏开发技术实战、C++语言及算法基础、WIN32程序开发及MFC基础 2D游戏开发实践、行业规划及职业素质。
2D网络游戏开发主要学习内容有:网络游戏程序设计、网络游戏算法设计、2D网络游戏平台设计以及商业实战项目训练,包含C++、数据结构、算法基础、Windows API使用、MFC原理及其应用、2D图形渲染技术、界面设计与应用。
3、游戏程序方向
Direct 3D程序开发基础、3D游戏开发技术实战、游戏引擎的修改与使用网络通讯、数据库及游戏服务器、行业规划及职业素质、游戏综合项目实战训练、基地顶岗项目实训。
移动架构
移动架构是 2017 移动技术年度TOP5话题之一,从中就体会到架构是有多火,记得刚开始学 Android 时候,哪有现在那么框架,那时候谈架构的更多是在服务端开发,比如多层架构,有展示层、业务逻辑层、数据访问层这就是简单的三层模式,Android系统则是基于事件驱动响应机制设计的单页面架构,其实跟浏览器中的窗口页面是一样的, 系统中一直有个消息轮询监听机制,哪个事件被触发了,相应的响应代码进行处理,这些处理 *** 作是被提前注册到系统中。
早开始的开发模式基本是基于Android 系统自带 MVC 模式,Activity 基本类似于Control 的作用了,View 和Mode 互相耦合,后来才演化出现在主流的 MVP、MVVM 模式,顺便提一句,MVVM 模式其实是在微软 WPF 技术体系中提出来。
显示两个方面:
展示层: MVC、MVP、MVVM、Clean、Flux、Android Architecture Components
架构层:模块化->组件化->插件化->沙盒/双开技术,比如可以双开微信,类似Docker, 每个页面都是插件,类似Vuejs中每个页面都是组件。
性能优化
简单来说,一个APP 是需要从三个方面被关注的,业务功能、符合逻辑的交互、性能响应。如果我们在使用一个 APP 时候,经常滑动时经常卡顿、时不时崩溃、有些功能设计简直非常规,比如在 Web 网站有树层级等面包屑点击,你非要在手机也搞一个类似树级点击加载,那是不是有点强人所难了,我上拉下拉、左滑右滑不行吗,非要通过点击才行吗那么性能优化核心是什么呢追求快、稳、省、小,关注卡顿、内存泄漏和崩溃、代码质量和逻辑、安装包大小四个方面。
APP安全
APP从代码安全、到传输安全,再到存储安全。代码可以通过混淆、加固来保证、传输安全基本基于加密算法和Token来保证传输的唯一性、存储应用不可逆加密算法进行设置、所以掌握一些密码学理论尤为重要,起码要知道哈希散列算法,对称加密和非对称加密等一些常见的加密算法。
基础进阶
我们平常在工作中碰到的View滑动冲突问题、其实通过掌握View工作机制和Android触摸事件体系就能轻易解决掉,常见解决方式有外部拦截法和内部拦截法,基于横坐标滑动距离与纵坐标滑动距离相减得出的值,判断出是左右滑动还是上下滑动。还有对于需要开发绚丽的动画效果,那么对于视图动画和属性动画一些特性必须有一定的了解。JNI 和 NDK 开发也是比较常见,特别对于一些做 SDK 项目为主的,这一块开发流程也是需要掌握,Android 中的四大组件工作机制其实底层应用的是Binder机制,我们不妨从 AIDL 这个接口来了解 Binder。
持续集成
持续集成编译环境是敏捷开发中很重要的一个组成部分,它能够有效地提高整个团队的生产效率,大化的减少人为的出错的可能。比如,通过代码的持续提交,可以减少代码合并的痛苦,更快地与其他人代码集成,通过集成编译,能够及早地发现代码库存在的错误,并支持产品、测试等人员及时取包进行功能验证,所以对于Git、Gradle工具、Jenkins服务器需要掌握起来。
开发语言
今年可以说是 Kotlin 年,在 Google IO 之后 Kotlin 着实风光了一把,开发者对于效率的追求是 Kotlin 如此受欢迎的大原因,而它的势头也很不错,跨平台的野心让更多人有了使用它的理由,如今看起来,它甚至比 Swift 更有前途。既然 Kotlin 已然成为 Android 世界的头等公民,与 Java 完全兼容,我们有什么理由不去拥抱它呢。
大前端
其实移动端开发也是属于前端开发,只不过原来我们所指的前端往往都是Web的前端开发人员,开发的是网站,而移动端何尝不是一种展示载体,同样有入口,只不过相比网站端移动端具体天然的可移动性、可便捷性等特性。随着 H5 兴起,原生能实现的功能同样在 H5 端也能实现,并且在体验性方面也逐渐提高,并且H5天生就具有动态性和跨平台,这也是 H5 能够一时潮流的原因之一。
设计原则
这些设计原创才是本质,才是不变的,才是我们需要真正要掌握的,开发语言特性、开发框架发展实在是太快了,我们更不上,不是有这么一句话吗,封装具体变化的,抽象起来就行,去追寻哪些不变的内容。掌握一种设计模式其实也就掌握一种解决方案,这些都是前人总结的知识结晶,基本都是基于特定领域解决特定的问题,我们需要学会在前人肩膀上解决问题。
服务端开发
近微服务火的一塌糊涂,虽然我们基本是做移动端开发,但是基于全栈发展的趋势,对于服务端开发势必要了解,可能没有实战项目让你真刀真q的干,但是对于微服务的结构理论、服务与服务之间通信、聚合是什么样的流程也是需要有所耳闻,在自己擅长领域深入专研的同时横向扩展关注也是需要的,不能关起门来闭门造车,两耳不闻窗外事那是不行的。
阅读源码
对于Android源码和第三方库源码阅读,可以根据自己感兴趣的类型,选择相应的源码库或模块,给自己约定一个时间点,看完之后后有个流程图,哪些是核心类,类与类之间都有什么关系,这些开源代码实现的机制是什么,用到哪些解决思想,这些要点终可以通过文章输出,我觉得输出倒逼输入是一种很不错的学习方式。
移动AI
AI,也称人工智能,1956年,在达特茅斯学院举行的一次会议上正式确立了人工智能的研究领域。会议的参加者在接下来的数十年间是AI研究的人物,他们中有许多人预言,经过一代人的努力,与人类具有同等智能水平的机器将会出现。现在来看AI这个概念很早就存在了,之前没发展很大原因是基础设施不够完善、研究成本高,现在能够大力发展是基于我们的网络带宽变大、计算机性能提升、计算成本降低等等因素备齐了。AI是需要通过算法来落地,那么对于算法理论背景就是数学,所以想进阶AI开发,就需要去学习相关数学知识,特别是线性代数和概率论这两门,是支撑很多算法的理论知识。
小结
总的来说,技术发展能推动社会的进步,解放生产力,进而提高人的社会生产效率,创造价值。技术落地是需要商业应用场景配合,如何配合呢,就是通过每个不同商业模式来实现。终一门技术是需要与具体使用业务紧密结合起来,如果脱离技术谈业务显得空洞,脱离业务谈技术显得偏理论,好是两者相结合。这也就要求我们这些从事软件开发人员在追求技术积累的同时要注重业务积累,让业务驱动技术发展,用技术手段来解决实际业务问题,在技术积累中,辨别哪些是不变的道,哪些又是一时流行的而已,这就需要练就一双火眼金睛了。
作者:cryAllen
以上就是关于Android开发的学习路线大概是怎样的全部的内容,包括:Android开发的学习路线大概是怎样的、零基础,怎么学习Android安卓APP的开发,需要学习哪些知识、安卓手机游戏开发需要学什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)