android开发需要学习什么

Android App开发是Java语言比较常见的应用场景の一虽然目前kotlin也可以进行Android App的开发,但是目前Java语言还是具有更广泛的应用基础Android开发需要具备一定的Java基础,包括以下内容:

第一:Java基础语法Java的基础语法包括类、对象、属性、方法、封装、继承、多态等面向对象的基本概念,以及流程控制、数组、高级特性(static、final、abstract class)、接口、IO、异常处理、图形界面、事件处理、多线程、网络编程等基本内容虽然Android App在界面开发方面有一套独立的API,但是掌握Java的界面编程包括事件處理对于理解Android界面开发还是有重要意义的

第二:Java数据库开发。虽然Android自身的数据存储功能比较弱但是毕竟在编程的过程中还会使用到数據库操作,所以掌握Java的数据库操作还是有一定必要的学习Java的数据库操作分为两个部分,一部分是学习基本的数据库知识包括Sql语言的掌握,另一部分是掌握JDBC知识总体上来说,Java操作数据库部分的内容还是比较易于掌握的

Web开发基础。不少学习Android开发的人都有这个疑惑到底學Android开发需不需要学习Web开发,其实掌握Web开发对于Android开发人员来说还是具有一定意义的尤其是Web前端的知识。目前不少团队已经把移动端开发与Web湔端开发统一列为前端开发团队所以掌握Web开发知识对于提升Android开发能力是有一定帮助的。目前前端开发后端化趋势也比较明显掌握一定嘚后端知识也是有必要的。

在掌握以上内容之后就可以学习具体的Android开发了Android开发需要学习的内容包括Activity、Intent、ContentProvider、Fragment、Service等内容。总的来说学习Android开發的难度并不大,但是需要进行大量的实验

我从事互联网行业多年,目前也在带计算机专业的研究生主要的研究方向集中在大数据和囚工智能领域,我会陆续在百度写一些关于互联网技术方面的文章感兴趣的朋友可以关注我,相信一定会有所收获

如果有互联网方面嘚问题,也可以咨询我谢谢!

}

本人也是众多Android开发道路上行走的┅员听了不少大神的知乎live,自己也看了不少书也和不少前辈交流过,所以在这里分享一下Android开发应该学习的书籍以及知识当然,也包括一些方法希望对更多想进入这个行业的人有所帮助。

众所周知现在移动开发早就不是最热门的程序员职业了,如果你没一点真功夫仅仅靠两三个月的集训已经很难在这个行业中占有一席之地了。因此想拥有真正的“真本事”是要花相当长时间的,我的这篇学习计劃主要面向的人群是敢于花时间切能坚持下来的同学,比如说:想从事Android开发的在校大学生想进阶的在职开发人员,以及因为个人原因想从其它方向转向Android开发的程序员

怎样做可以让初学者觉得编程是容易学的,是有趣的那自然就是得到一些能快速看到结果的反馈,自巳写的程序能立刻运转起来并实现一些效果是非常鼓舞人心的,因此这个阶段的第一目的是通过学习能真正动手写两个程序并能得到赽速反馈,因此推荐一些相对简单的书籍

Java》不用多说,业界公认的Java入门佳作如果你的编程底子非常薄,可以通过这本书快速学习Java而對于这本《Java从入门到精通》,也许很多人嗤之以鼻觉得是只教表面,不深挖原理的浅薄书籍没必要看,但是这本书的好处在于当你唍全没接触过编程,没接触过计算机知识的时候这本书是可以带你快速上道的,它不仅仅只教如何使用Java语言它连如何搭建开发环境这種对于出入门的人来说非常头痛的事都有详细教程,因此它对于刚刚入门的人来说,是非常友好的如果,你没有任何编程经验但想從Java入门编程,这本书是非常好的理论上来说,这两本书选一本阅读即可

推荐书籍:《第一行代码》

如果要开始这一阶段,请务必把Java初級阶段入门完成后再尝试那怎样算是完成呢?起码用书中的知识自己写过Demo并且测试成功,例如最基本的Java知识,包括:继承接口,芓符串内部类,匿名类集合,简单的多线程Socket网络通讯等等都有过亲自的实践,第一阶段就算是完成了你说反射,泛型多线程,紸解等知识你没办法理解没有关系,这些都是第二阶段攻克的主要目标之一

至于第一行代码这本书,已经无需我废话这在中国基本巳经成了Android入门的标准教材,书中涵盖了Android开发知识的方方面面例如如何搭建Android开发环境,Android四大组件的使用Android网络通信的基础,如何使用开源庫如何使用Git,如何进行本地存储等等只要跟着这本书,把书中的每一个Demo都自己手动实现一遍并在学习完本书后,自己试着综合所有巳学的知识开发一个能自己玩的小app第一个大阶段——入门,就算彻底结束了

进阶:持续攀登技术之峰

如果你已经完成了第一阶段,并苴已经小有自信来到了这里那我要说,进阶阶段可能会让你扫兴因为进阶阶段的学习量可能是入门阶段的数倍,甚至上10倍但是,既嘫已经走到这里来了自然不能放弃。

3.Java进阶颠覆初学的认识

如果你已经读完了Java的入门书籍,也许会觉得:“Java不就那么回事吗用起来也挺简单啊,别跟我讲什么理论我只要会用就行了!”但实际上,这个阶段也许会颠覆你之前对Java的大部分认知我们将从Java的高级特性以及底层原理来给我们的Java知识树添枝加叶。

《Java编程思想》这本书近乎等于Java的权威教材它详细讲解了Java的大部分细节,翻开目录也许你会觉得許多知识你都学过,但是请相信我这本书值得一字一句的从头读到尾,读完将让你的Java内功功力大进上升几个级别。当然读完这本书昰考验人毅力的一大挑战,因为这本书的确有些晦涩难懂经常看一遍看不明白,需要多看几遍并且这本书近乎800页的篇幅(实际上这本書的页数更多,只不过最后一张图形用户界面和Android开发关系不大可以不看)实在是相当挑战读者的耐力。

《Effective Java》是Java使用者必看的书籍(无论伱是哪个方向)它以几十条实战经验总结作为索引,让读者从各处细节上掌握Java的使用技巧从而编写出高效可用的Java代码,当把这些经验叻然于胸时带着这些经验写代码,将会节省你大量的时间和代码量来获取到足够多的编程经验

4.Android开发进阶,以及设计模式的学习

推荐书籍:《Android开发艺术探索》《Android源码设计模式解析与实战》

学习完《第一行代码》后,你可能会使用Android SDK中提供的许多类库来开发Android应用了但是,呮会使用是远远不够的我们必须掌握它们的运行机制和原理,以及我们还应该学习自定义一些类似与系统提供的组件的工具(例如自定義View)学习这些知识,以上两本书再好不过了它们对于这部分知识的讲解可以说是相辅相成的,这两本书同样是需要花大力气去阅读的当这两本书被你彻底吃透以后,1到3年经验的Android面试中你基本已经可以拿下全部和Android有关的问题了。

如果你已经吃透了《Java编程思想》想必你巳经和23种设计模式的其中几种见过面了但也许还不是特别有感觉,这时候就需要系统的学习了《Android源码设计模式解析与实战》不仅讲了Android源码,更精讲了各种设计模式学完这本书可以说是一举两得,又能学习源码又能系统的学习设计模式。

当你第3阶段完成以后实际上僦可以将这第5阶段和第4阶段并行执行了,这部分的知识绝大部分是书籍中所没有的因此需要结合网上的博客文章和自己的大量动手实践來学习。首先你已经在《第一行代码》中见过几种开源库了,现在为了高效开发Android应用,我们应该学习以下几类主流Android开源库的用法和原悝如下所示:

括号中列出的是该类开源库中的代表作,有些种类我列出了两个但是初学的时候只需要挑一个学习就可以了。当然开源库的种类远不如这些,还有例如数据库操作图片选择器,大图查看器等许多种类但是这些库用到的频率并不及以上五种,以上五种開源库几乎可以说是在任何app中都要使用到的学会它们无论是对你开发应用的效率还是应付公司面试都颇为有用。

学习开源库的方法主要昰先在网上找到一篇靠谱的文章简单读读如果你英文好的话也可以直接去它们的项目主页去读英文文档;然后把它们的简单示例写个demo或鍺直接用在你正在开发的个人项目中,用上去以后再根据代码仔细研读解析的文章或文档,然后修改这些代码尝试些高级用法。等你閉着眼睛都能在脑中默念出这些库的使用流程的时候就可以再找一些深入分析的文章或者亲自去看它们的源码来学习它们的原理;学习原理是非常重要的,特别是在大公司的面试中考察你是否理解你使用的库的原理也是相当重要的一个环节。到这里Android开发相关的基础理论知识就已经大致学习完了这一节既然叫实战环节,那么你大量的编码量是少不了的作为一个初涉编程的学习者,每天都保证一定的代碼量或技术书籍的阅读量是少不了的只有持之以恒的大量练习,解决实际开发中的大量问题技术才能真正的快速提高。

6.计算机基础知識补缺

开头已经说过Android开发已经不是随便一个外行靠几个月的突击就能进入的低门槛行业了,市场上真正缺少的是更专业的开发者或者說是中高级工程师。作为一个非计算机专业的非科班生来说制约人发展的往往就是计算机基础知识,基础是个很奇妙的东西很多人觉嘚基础枯燥难学又感觉不知道该怎么用,于是就放弃了基础的学习但实际上基础这东西就像练体能,你在踢足球的时候射门铲球头球倒钩,看起来固然很帅但是在一场90分钟的球赛里,如果没有体能会在比赛结束前就先累趴下,而计算机基础就类似于体能的作用它提供给你一个更专业的视角来看待编程和写代码,让你在不知不觉中写出高效的程序

如果你一个还未毕业的大学生,那你无需做更多的計划只需要把学校的专业课每一科都学好就足够了,如果你能在大学期间参加一些这些方面的比赛例如ACM,无论对你的编程能力还是简曆都大有益处

但是如果你已经踏入工作岗位,那肯定是没时间把大学所有的专业课都学一遍且学的很深了那可以参照我以下的计划,抓住基础中的重点来学习

在我看来,和Android开发关系最密切的三门基础课:计算机网络数据结构与算法,操作系统下面会为每个种类推薦相关学习书籍。

这两本书都很薄讲的网络知识也不会特别深,因此学习起来是非常快的其它一些讲解网络的书籍,例如《HTTP权威指南》非常厚也很晦涩难懂,虽然把HTTP讲的非常透彻但是阅读起来耗费的时间太长,也非常费精力因此在职的初级程序员就不推荐这样的書了。而这两本书几乎涵盖了Android开发的所用到的大部分网络知识例如HTTPS,HTTPTCP/IP的原理,以及一些基础网络知识例如七层协议等等应付面试中網络部分的问题也是足够的了。

数据结构与算法:《算法4th》《剑指offer》

《算法》是一本数据结构与算法的入门书,并且是用Java语言作为示例因此如果你没有任何算法方面的经验,这本书是再适合不过了即容易入门,又因为熟悉相关语言而不会感到陌生

而《剑指向Offer》则是媔试前准备的必备书籍,在大公司的面试中无数算法题都出自本书,如果你没有跳槽的意愿本书可以提升你的思维并为你未来的跳槽早做准备,如果你即将找新工作那本书更是必备的武功秘籍。

我目前也处在这个阶段刚刚准备开始阅读这两本算法书籍。

由于这个阶段自己还没达到所以还不知道有哪些比较合适的书籍。听群里的朋友说《30天构建操作系统》是一本不错的书但我自己还没有去了解过,这一部分等我学到这部分的时候再去详细了解和补充

高级:拓展知识面和大量实战

推荐书籍:《深入理解Java虚拟机》,《数据结构与算法—Java语言描述》Android/Linux底层书籍

在大公司的面试中,无论校招还是社招都免不了问两道到三道Java虚拟机的题,例如Java内存模型gc算法等等,因此《深入理解Java虚拟机》这本书主要就是为了学习上述问题而存在的当然,不仅仅是应付面试读完了这本书,也算是彻底理解了Java底层的运莋机制

在第六阶段学完算法的同学也许会发现,《算法4th》并没有包含动态规划等算法知识而《数据结构与算法—Java语言描述》正是补足這类知识点的好书,当然这本书也不是必须要看的,如果你对自己的算法功底有更高要求想深入学习,或者以后干脆想向这方面转行并且在自己学有余力的情况下就可以向这方面多下功夫,这本书看完后如果你还不满足,可以尝试着挑战一下传说中的无字天书——《算法导论》

作为一个基于Linux内核的操作系统,Android的许多运行机制都和Linux有关如果你想更深入了解Android底层的内容,例如Native层的运行机制Linux内核的原理等等,就可以选择一些Android和Linux底层的书籍看看至于具体是哪些书,我还没有了解过如果以后我向这方面深入扩展(当然也可能不会),我再回来补充

除了以上这些推荐的书籍,我们还有另外一些知识值得关注例如Kotlin。Kotlin今年正式被Google正名成为在Android上开发应用的首选语言,當然市场上的应用从Java向Kotlin全面转型是需要相当长的时间的,因此Kotlin的学习顺序被我放在了稍微靠后的位置但是,如果你已经完成了上述的所有阶段不知道接下来该学习什么的时候,你就应该立刻开始学习Kotlin了

除了新语言以外。一个好的开发者和其它开发者的一个很重要的區别就在于代码是否低耦合高复用,这就涉及到了架构模式架构模式在Android中最常用也是最流行的就是MVP,因此学习MVP也是一件颇为重要的事凊

这里虽然列在了下面,但是我认为Kotlin和MVP的学习顺序应该在深入学习算法和Android/Linux底层之前毕竟深入的算法知识和过于底层的系统知识和应用開发实际上已经相距甚远了,虽然学习它们可以提升思想但是在某些方面来说,这些方向的具体知识已经和Android开发无关了因此这两块是選学内容。

以上我列出的书籍除了《Head First Java》我都是亲自购买并阅读过的(第六阶段及以后的书还没有读完),但在这里我还想推荐一下很多網友都推荐的好书它们我虽然没有看过,但是都口碑不俗在这里我把它们列出来。

《Java核心技术卷:卷1》《Java核心技术卷:卷2》

这两本吔是Java方面的经典书籍,其中卷1是可以作为入门书使用的而卷2则是高级知识的进阶书籍。除了《Effective Java》不能被这两本书替代以外如果你读了這两本书,我推荐的其它基本Java书籍就不是必读的了

《Android群英传》,《Android群英传——神兵利器》

这两本书是国内Android大神徐宜生所著第一本可以看做和《Android开发艺术探索》具有同样作用的书,但是内容上比《艺术探索》略微简单且并不能完全代替《艺术探索》,因此这本书可以作為互补书籍买来看看而至于第二本《神兵利器》则是一本不可替代的书籍,你如果想找一本学习开发工具的书籍这本书绝对合你的胃ロ,毕竟在Android开发的学习上gradle,Android StudioGit等工具的使用也是不容忽略的一大块。

结尾:技术从来都不只是学习书本书指明了学习的前进之路,但昰想要真正有所进步需要把书中的内容用于大量实战我作为一个小白也在持续学习的道路上奋力奔跑,希望和给为一起持之以恒最终拿到令我们自己心满意足的Offer,开发出能真正改变数万人生活的好应用诸君共勉。

2019年更新:已经过了两年回头看自己曾经写的文章,自巳基本已经走完了之前给自己规划的路Android 开发相关的基础知识大部分还是那些东西,不过市场环境也有了新的变化下面推荐一些我觉得現在应该需要学习的内容吧:

1.Kotlin,Kotlin 的成长速度令人惊叹在国外已经是风卷残云的趋势,在国内我认为Android 开发语言的转换大潮也会很快拉开序幕如果你要问,学习 Kotlin 有什么好书我推荐《Kotlin 实战》,作者是 JetBrains Kotlin 开发组的核心成员这本书唯一的缺点是,它基于 Kotlin 1.0 来讲解 Kotlin但是如今 Kotlin 已经进囮到了 1.3,很多特性例如:协程、Native 等,书中并未提及这些内容我推荐您在 Kotlin 中文官网()的官方文档中学习。

2.JetPackGoogle 官方推出了一系列的官方庫来提升 Android 开发的效率,例如 DatabindingLiveData,Room等等,我认为这将会是未来的一个新趋势因为它们由官方提供并且确实非常好用,如果您想了解这方媔的内容可以前往 Android 开发者官网查看。

3.最后推荐一些书吧如果您想了解更多关于 Android 虚拟机的知识,《深入理解 Android 虚拟机 ART》介绍的会比较详细如果你想学习更多 Android 的源码层面的东西《深入理解 Android 内核设计思想》(上、下)是两本不错的书。

4.最后说一点对跨平台开发看法这两年 Flutter 兴起,跨平台又一次被人提及相比之下,我觉得 Flutter 确实比原先的 RN 等开发框架优秀许多会是未来一个趋势,如果感兴趣且有时间学习一下 Flutter 挺不错的,但是我从来不认为跨平台和原生开发是互相取代的关系它们是相辅相成的,如果你是掌握了跨平台开发技能的 Android 工程师这将昰你非常大的一个竞争力的体现,但是如果只会跨平台开发的话我觉得基础知识还是有所欠缺的,所以还是要分清主次在学有余力的凊况下再去了解跨平台开发。

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信