学习Android一定要有Java基础,最差也要类似Java的其他面对像对象语言的基础。
很多同学从来没有搞过软件编程,听说Android能赚钱,就疯了一样冲过来要学习。这明显是不靠谱的,甚至有的朋友一个字母一个字母的按照我们的例子去敲代码,然后非常努力的把代码背下来,像背英文单词一样的背代码,编程如果要是学成这个样子,还真是让人佩服不已啊!不管怎样,学习Android你最少也要掌握Java语言的如下知识点才能够开始学习:a)Java基本数据类型及其特点b)Java分支语句和循环语句的使用c)类和对象的创建和使用方法d)函数的使用e)抽象类和接口f)继承和实现g)对象的多态性h)包和访问权限i)异常的处理j)类集框架k)eclipse的基本用法。
android 是一个专门针对移动设备的软件集,它包含一个操作系统,中间件和一些重要的应用程序(可以理解为一个手机操作系统)。内核采用的是linux内核2.6,android sdk提供了在android平台上使用java语言进行开发Android应用程序开发的工具和API接口。
实际就是使用java语言和android api 为android手机开发应用软件。
无论是java,C++有基础就差不多。最好用过java,Eclipse。如果进行过一些类似的sdk开发就应该没什么问题啦。
安卓开发要学什么?
1.熟悉java编程语言,android应用程序开发是以java语言为基础的,所以没有扎实的java基础知识,如果只是简单机械的照抄照搬别人的代码,是没有任何意义的。
2.具备一定的数据结构和算法基础知识,如果明白这些可以很清楚的明白到底应该选择哪个数据结构或者是算法,掌握这一方面的基础知识,也可以很好地为后续的学习做铺垫。
3.需要掌握一些Linux操作系统,在开发过程中,我们会需要使用到一些Linux命令,所以说Linux的基础知识也是必备的。
这些基础的安卓开发要学的内容,作为安卓开发工程师必须掌握这些扎实的概念基础和技术技能必须掌握。
安卓开发需要哪些基础知识呢?
1.java基础知识,在android系统的框架当中,会使用大量的设计模式,所以掌握这些基础的设计原则,可以在学习过程中举一反三,更好地利用所学内容。
2.Linux基础知识,android系统的基础是Linux操作系统,所以在开发过程中,我们可以使用一些Linux命令。
3.数据库基础知识,这部分知识点相对来讲比较简单,简单的说就是增删改查数据库的操作。
4.网络协议,http协议和socket协议这两种基础的协议是需要掌握的。
5.android基础知识
6.服务器端的开发知识,很多android应用程序都需要服务器端的支持,所以掌握一些服务器的开发知识是很有必要的…… JAVA EE、PHP、.NET和ruby on rails这么多的类型,至于要选择哪一种服务器端知识进行学习,这样就会比较麻烦,毕竟技术的种类确实是很多。
1、看你将来想从来哪方面的开发。
2、ANROID的开发分为:
1)、Android客户端应用程序
如新浪微博、网银客户端、凡客、淘宝客户端,快盘客户端。Android在这里的应用还是界面层的东西为主。核心还在WEB。不过从应用层面上来讲,几乎大一点的网站,都需要有手机客户端程序。
2)、Android通用类程序
如基于LBS(基于位置的服务)的应用 (这类一般会嵌入到客户端应用程序中),流媒体播放应用。由于移动设备的方便便捷,这类应用有不错的前景。
3)、Android游戏开发
需要掌握的游戏引擎LGame,游戏框架等。手机上的游戏会是一大块内容,有前途。
4)、Android底层开发
需要掌握C、Linux等较底层的东西,发展方向应该是驱动、协议开发,嵌入式开发
想从事客户端应用程序的开发,要会J2EE(SSH)。(看服务器端的构架了)
①Java基础知识 ②Linux基础知识 ③数据库基础知识 ④网络协议 ⑤Android基础知识 ⑥服务器端开发知识①Java基础知识很多朋友一上手就开始学习Android,似乎太着急了一些。
Android应用程序开发是以Java语言为基础的,所以没有扎实的Java基础知识,只是机械的照抄别人的代码,是没有任何意义的。万丈高楼平地而起,Java就是筑起高楼的每一块砖头。
那么Java学到什么程度才算是过关呢?我个人认为至少要掌握以下两个方面的内容:a)Java基础语法:具体的知识点列表可以在这里下载:《Java知识点列表》V1.0。这部分内容没有讨价还价的余地,必须烂熟于胸。
至于具体的学习方法,可以看书或者是看视频,但是关键是要多加练习,无论是书上的练习还是视频里面的练习,都需要仔仔细细的完成;b)设计模式:由于在Android系统的框架层当中,使用了大量的设计模式,如果没有这个方面的知识,对于Android的理解就会大打折扣。设计模式的种类非常之多,一个一个的全部掌握,是不现实的,必须首先掌握面向对象的基础设计原则,有了这些基础原则的支持,就可以举一反三。
这部分内容可以在《Effective Java》和《Agile.Software.Development:Principles,Patterns.and.Practices》这两本书中找到。②Linux基础知识大家都知道,Android系统的基础是Linux操作系统。
在开发过程当中,我们也需要使用到一些Linux命令。所以说一些Linux的基础知识是必须的(话说现在的程序员,不懂Linux都不好意思跟人家打招呼),推荐大家看看《鸟哥的私房菜》这本书,写的相当不错;③数据库基础知识这个比较简单,就是一个增删改查的数据库操作,可以看一下这本书:《SQL编程练习与解答》④网络协议至少需要学习两种基础的协议,HTTP协议与Socket协议;⑤Android基础知识有了以上的铺垫,再来看Android,是不是觉得轻松了很多呢?至于基础知识的学习顺序,最好的方法就是按照Android SDK帮助文档当中的Dev Guide里面的顺序,我的《Android视频教程》也基本上是按照这个顺序录制的;⑥服务器端开发知识由于很多Android应用程序都需要服务器端的支持,所以掌握一些服务器端开发知识还是非常有必要的。
至于选择哪一种服务器端知识进行学习,就比较麻烦了,因为技术的种类实在是太多了:a)Java EE:就是上面邮件当中所提到的SSH—Struts+Spring+Hibernate。这种技术的优点的功能完整、强大,已经使用了很多年,而且既然大家已经非常熟悉Java了,那么学习SSH看起来也顺理成章。
但是使用这种技术开发服务器端程序,非常麻烦。即使是一些简单的功能,也可能需要大量的代码和配置文件来实现;b)PHP:简单易学,开发快速。
但是我们需要多学一种语言,是否得不偿失,就要大家自己判断了;c).NET:这项技术的特点和Java EE差不多,但是要想掌握.NET,则需要掌握c#,也是个麻烦的事情;d)ruby on rails:这是我个人最喜欢的服务器端技术,简洁,优雅,寥寥几行代码,就可以实现很复杂的功能,但是这需要Ruby语言知识作为基础;至于选择哪一种知识,就看大家自己的判断了,毕竟每个人想法不一样,爱好也不相同。2怎样去获得这些技能基础。
(android大牛请绕开此段)看书,这确实是一个不错的选择。如果你想从零开始学习Java、Linux、数据库、网络协议、android基础知识……没错这些你都需要看书,看很多书(这是一句废话,跳过好了)。
但是!如果把获取这些技能基础量化为100%的话,那么看书这个途径只能为你提供15%的进步。看视频,这也是许多自学android开发的新手必经之路,毕竟看书只有你一个人的思维在活跃,看视频至少是两个人的思维在碰撞,你能发现你与别人的不同,如果你有心,你就能进步更多。
基础知识不用我担心太多,至少想学android的,找基础知识的资料还是没有问题的。在此你也可以试着了解一些android的基础视频。
也可以加入一下android的QQ群,去初步了解一下。感受一下氛围。
这个我个人觉得很有意义。敲代码,不为了其它的什么,就为了你能够熟练的掌握android开发工具,你是不是应该多话一点心思在上面呢?他的重要性不比“看书+看视频”的总和小,也许我就这样轻描淡写地说过去了,但是你最好不要轻描淡写地看过去,不然“返工重做”是很让你不舒服的。
思考,没错,就是“想”。想你怎么把这三块儿合在一块儿,让自己的学习效率更高;想你在学习中遇到哪些障碍,最后是怎么解决的,这很重要。
①Java基础知识 ②Linux基础知识 ③数据库基础知识 ④网络协议 ⑤Android基础知识 ⑥服务器端开发知识 ①Java基础知识 很多朋友一上手就开始学习Android,似乎太着急了一些。
Android应用程序开发是以Java语言为基础的,所以没有扎实的Java基础知识,只 是机械的照抄别人的代码,是没有任何意义的。万丈高楼平地而起,Java就是筑起高楼的每一块砖头。
那么Java学到什么程度才算是过关呢?我个人认为至 少要掌握以下两个方面的内容: a)Java基础语法:具体的知识点列表可以在这里下载:《Java知识点列表》V1.0。这部分内容没有讨价还价的余地,必须烂熟于胸。
至于具体的学习方法,可以看书或者是看视频,但是关键是要多加练习,无论是书上的练习还是视频里面的练习,都需要仔仔细细的完成; b)设计模式:由于在Android系统的框架层当中,使用了大量的设计模式,如果没有这个方面的知识,对于Android的理解就会大打折扣。设计模式 的种类非常之多,一个一个的全部掌握,是不现实的,必须首先掌握面向对象的基础设计原则,有了这些基础原则的支持,就可以举一反三。
这部分内容可以在 《Effective Java》和《Agile.Software.Development:Principles,Patterns.and.Practices》这两本书 中找到。 ②Linux基础知识 大家都知道,Android系统的基础是Linux操作系统。
在开发过程当中,我们也需要使用到一些Linux命令。所以说一些Linux的基础知识是必 须的(话说现在的程序员,不懂Linux都不好意思跟人家打招呼),推荐大家看看《鸟哥的私房菜》这本书,写的相当不错; ③数据库基础知识 这个比较简单,就是一个增删改查的数据库操作,可以看一下这本书:《SQL编程练习与解答》 ④网络协议 至少需要学习两种基础的协议,HTTP协议与Socket协议; ⑤Android基础知识 有了以上的铺垫,再来看Android,是不是觉得轻松了很多呢?至于基础知识的学习顺序,最好的方法就是按照Android SDK帮助文档当中的Dev Guide里面的顺序,我的《Android视频教程》也基本上是按照这个顺序录制的; ⑥服务器端开发知识 由于很多Android应用程序都需要服务器端的支持,所以掌握一些服务器端开发知识还是非常有必要的。
至于选择哪一种服务器端知识进行学习,就比较麻烦了,因为技术的种类实在是太多了: a)Java EE:就是上面邮件当中所提到的SSH—Struts+Spring+Hibernate。这种技术的优点的功能完整、强大,已经使用了很多年,而且既然 大家已经非常熟悉Java了,那么学习SSH看起来也顺理成章。
但是使用这种技术开发服务器端程序,非常麻烦。即使是一些简单的功能,也可能需要大量的代 码和配置文件来实现; b)PHP:简单易学,开发快速。
但是我们需要多学一种语言,是否得不偿失,就要大家自己判断了; c).NET:这项技术的特点和Java EE差不多,但是要想掌握.NET,则需要掌握c#,也是个麻烦的事情; d)ruby on rails:这是我个人最喜欢的服务器端技术,简洁,优雅,寥寥几行代码,就可以实现很复杂的功能,但是这需要Ruby语言知识作为基础; 至于选择哪一种知识,就看大家自己的判断了,毕竟每个人想法不一样,爱好也不相同。 2怎样去获得这些技能基础。
(android大牛请绕开此段) 看书,这确实是一个不错的选择。如果你想从零开始学习Java、Linux、数据库、网络协议、android基础知识……没错这些你都需要看书,看很多 书(这是一句废话,跳过好了)。
但是!如果把获取这些技能基础量化为100%的话,那么看书这个途径只能为你提供15%的进步。 看视频,这也是许多自学android开发的新手必经之路,毕竟看书只有你一个人的思维在活跃,看视频至少是两个人的思维在碰撞,你能发现你与别人的不 同,如果你有心,你就能进步更多。
基础知识不用我担心太多,至少想学android的,找基础知识的资料还是没有问题的。在此你也可以试着了解一些 android的基础视频。
也可以加入一下android的QQ群,去初步了解一下。感受一下氛围。
这个我个人觉得很有意义。 敲代码,不为了其它的什么,就为了你能够熟练的掌握android开发工具,你是不是应该多话一点心思在上面呢?他的重要性不比“看书+看视频”的总和小,也许我就这样轻描淡写地说过去了,但是你最好不要轻描淡写地看过去,不然“返工重做”是很让你不舒服的。
思考,没错,就是“想”。想你怎么把这三块儿合在一块儿,让自己的学习效率更高;想你在学习中遇到哪些障碍,最后是怎么解决的,这很重要。
android 技术内幕系统卷 第1章 准备工作 /1 1.1 深入认识android /2 1.1.1 android的系统构架 /2 1.1.2 android的初始化流程 /5 1.1.3 各个层次之间的相互关系 /8 1.1.4 android系统开发(移植)和应用开发 /11 1.2 获取和编译android的源码 /13 1.2.1 环境配置 /13 1.2.2 获取android源码 /14 1.2.3 编译android的源码及其工具包 /16 1.2.4 运行android系统 /21 1.3 开发环境搭建 /23 1.3.1 应用开发环境搭建 /23 1.3.2 源码开发环境搭建 /26 1.4 android源码结构 /32 1.5 小结 /33 第2章 android的内核机制和结构剖析 /34 2.1 linux与android的关系 /35 .2.1.1 为什么会选择linux /35 2.1.2 android不是linux /35 2.2 android对linux内核的改动 /37 2.2.1 goldfish /37 2.2.2 yaffs2 /38 2.2.3 蓝牙 /39 2.2.4 调度器(scheduler)/39 2.2.5 android新增的驱动 /40 2.2.6 电源管理 /41 2.2.7 杂项 /41 2.3 android对linux内核的增强 /42 2.3.1 alarm(硬件时钟)/43 2.3.2 ashmem(匿名内存共享)/46 2.3.3 low memory killer(低内存管理)/52 2.3.4 logger(日志设备)/56 2.3.5 android pmem /65 2.3.6 switch /79 2.3.7 timed gpio /88 2.3.8 android ram console /94 2.4 小结 /99 第3章 android的ipc机制--binder /100 3.1 binder概述 /101 3.1.1 为什么选择binder /101 3.1.2 初识binder /102 3.2 binder驱动的原理和实现 /102 3.2.1 binder驱动的原理 /102 3.2.2 binder驱动的实现 /103 3.3 binder的构架与实现 /132 3.3.1 binder的系统构架 /132 3.3.2 binder的机制和原理 /133 3.4 小结 /150 第4章 电源管理 /151 4.1 电源管理概述 /152 4.2 电源管理结构 /152 4.3 android的电源管理机制 /153 4.4 android电源管理机制的实现 /154 4.5 小结 /187 第5章 驱动的工作原理及实现机制 /188 5.1 显示驱动(framebuffer)/189 5.1.1 framebuffer的工作原理 /189 5.1.2 framebuffer的构架 /190 5.1.3 framebuffer驱动的实现机制 /190 5.2 视频驱动(v4l和v4l2)/201 5.2.1 v4l2介绍 /201 5.2.2 v4l2的原理和构架 /201 5.2.3 v4l2的实现 /202 5.3 音频驱动(oss和alsa)/208 5.3.1 oss与alsa介绍 /208 5.3.2 oss的构架与实现 /209 5.3.3 alsa的构架与实现 /213 5.4 mtd驱动 /214 5.4.1 mtd驱动的功能 /214 5.4.2 mtd驱动的构架 /215 5.4.3 mtd驱动的原理及实现 /215 5.5 event输入设备驱动 /223 5.5.1 input的系统构架 /223 5.5.2 event输入驱动的构架 /224 5.5.3 event输入驱动的原理 /224 5.5.4 event输入驱动的实现 /225 5.6 蓝牙驱动(bluetooth)/235 5.6.1 bluetooth驱动的构架 /235 5.6.2 bluez的原理及实现 /237 5.7 wlan驱动(wi-fi)/244 5.7.1 wlan构架 /244 5.7.2 wi-fi驱动的实现原理 /245 5.8 小结 /245 第6章 原生库的原理及实现 /246 6.1 系统c库(bionic libc)/247 6.1.1 bionic libc功能概述 /247 6.1.2 bionic libc实现原理 /248 6.2 功能库 /258 6.2.1 webkit构架与实现 /258 6.2.2 多媒体框架与实现 /275 6.2.3 android sqlite框架及原理 /285 6.3 扩展库 /289 6.3.1 skia底层库分析 /289 6.3.2 opengl底层库分析 /299 6.3.3 android-openssl实现及运用 /306 6.3.4 freetype及font engine manager /317 6.3.5 freetype结构体系和渲染流程 /317 6.4 原生服务 /328 6.4.1 audioflinger实现 /328 6.4.2 surfaceflinger实现 /341 6.5 小结 /353 第7章 硬件抽象层的原理与实现 /354 7.1 硬件抽象层的实现原理 /355 7.1.1 android hal构架 /355 7.1.2 android hal的实现 /357 7.2 android overlay构架与实现 /361 7.2.1 android overlay系统构架 /361 7.2.2 overlay hal框架与实现 /362 7.2.3 overlay与surfacefinger /369 7.3 android camera 构架与实现 /375 7.3.1 android camera系统构架 /375 7.3.2 camera hal框架与实现 /377 7.3.3 camera本地实现 /385 7.4 android audio hal实现 /394 7.4.1 audio hal框架 /395 7.4.2 android默认的audio hal实现 /398 7.4.3 dump功能的audio hal实现 /400 7.4.4 基于a2dp的蓝牙音频设备hal实现 /402 7.4.5 模拟器上的audio hal实现 /403 7.5 android ril实现 /404 7.5.1 android ril构架 /404 7.5.2 radiooptiongs实现 /407 7.5.3 libril库实现 /409 7.5.4 reference-ril库实现 /415 7.5.5 rild守护进程实现 /418 7.5.6 request流程分析 /423 7.5.7 response流程分析 /427 7.6 android sensor hal实现 /434 7.6.1 android sensor构建 /434 7.6.2 sensor hal接口 /435 7.6.3 sensor hal实现 /438 7.7 android wifi hal实现 /441 7.7.1 android wifi系统构架 /441 7.7.2 wpa_supplicant框架 /442 7.7.3 wifi hal实现 /444 7.8 android蓝牙本地实现 /447 7.8.1 android蓝牙构架 /447 7.8.2 bluez结构体系 /448 7.8.3 bluez适配层 /452 7.9 android 定位实现 /453 7.9.1 定位系统构架 /453 7.9.2 gps hal实现 /454 7.10 android power hal实现 /459 7.11 android vibrator hal实现 /461 7.12 小结 /462 第8章 dalvik虚拟机的构架、原理与实现 /463 8.1 dalvik虚拟机概述 /464 8.1.1 什么是dalvik虚拟机 /464 8.1.2 dalvik虚拟机的功能 /464 8.1.3 dalvik虚拟机与java虚拟机的区别 /465 8.2 dalvik构架与实现 /466 8.2.1 dalvik系统构架 /466 8.2.2 dx和dexdump工具 /468 8.2.3 .dex文件格式解析 /470 8.2.4 dalvik内部机制 /487 8.2.5 dalvik进程管理 /492 8.2.6 dalvik内存管理 /501 8.2.7 dalvik加载器 /509 8.2.8 。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:3.081秒