1.android开发的知识体系
1、Unix/Linux平台技术:基本命令,Linux下的开发环境
2、企业级数据库技术:SQL语言、SQL语句调优、Oracle数据库技术
3、Java 语言核心技术:Java语言基础、Java面向对象编程、JDK核心API、Java集合框架、Java网络编 程、JavaI/O编程、Java多线程编程、Java异常机制、Java安全、JDBC、XML
4、软件工程和设计模式:软件工程概述、配置管理及SVN、UML、基本设计模式
5、Android应用开发基础:Android开发平台、Eclipse+ADT开发环境、AVD及传感模拟器调试、Android核心组件、Android常用组件、Android高级组件、文件及网络访问、SQLite数据库编程、后台服务编程
6、互联网核心技术: HTML、CSS、JavaScript、JQuery、Ajax应用
7、Android高级应用开发:音频\视频\摄像头、互联网应用、GPS和位置服务、Google Map、2D\3D绘制、传感器开发、游戏开发、电话及SMS服务、网络\Bluetooth\Wi-Fi等。
8、Android系统级开发:移植、驱动、NDK(C方向)。
9、JavaEE核心技术:Servlet核心技术、JSP核心技术、Struts、Spring、Hibernate框架。
2.关于Android体系结构的知识有哪些
什么是Android?Android是一个移动设备的程序集合,包括的操作系统、中间件和关键的应用程序。
Android SDK 提供了必要的工具和API,使用Java编程语言在Android平台开发应用程序。特点* 应用程序框架* 使组件可以被重用和替换* Dalvik虚拟机* 为移动设备优化* 集成的浏览器* 基于开源的WebKit引擎* 基于优化的图形* 由一个自定义的2D图形库支持;3D图形的OpenGL ES 1.0规范(可选硬件加速)* SQLite* 结构化的数据存储* 媒体支持* 常见的音频、视频和静止图像格式(MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF)* GSM电话* (依赖于硬件)* 蓝牙、EDGE、3G和WiFi* (依赖于硬件)* 摄像头、GPS、指南针、和加速度计* (依赖于硬件)* 丰富的开发环境* 包括设备模拟器、调试器、内存和性能分析工具,以及一个eclipse IDE的插件Android架构下图展示了Android操作系统的主要组成部分,每一部分在下面有更详细地描述。
文件:Android framework.png应用程序Android会附带了一套核心应用,包括电子邮件客户端,短信程序,日历,地图,浏览器,联系人等。所有应用程序都使用Java编程语言编写。
应用框架Android通过一个开放的开发平台,给开发人员在创建极为丰富创新性的应用程序上提供了有力的支持。开发者可以自由设定设备的硬件场景、接入位置信息、运行后台服务、设置闹钟、添加状态栏通知和更多的在其他优势方面上。
开发者拥有使用相同的框架API访问核心应用程序的全部权利。应用程序架构旨在简化组件的重用,任何应用都可以发布它的功能,之后任何其他应用程序都能使用这些功能(受强制执行的安全框架约束)。
该机制允许用户更换组件。在所有应用程序的背后都是使用一套服务和系统,包括:* 丰富的 视图和扩展,可以用来构建应用程序,包括列表、网格、文本框、按钮、甚至内嵌的网页浏览器* 内容提供者(Content Providers),使应用程序能够访问其他应用程序的数据(如通讯录)或共享自己的数据* 资源管理器(Resource Manager),提供非代码资源的访问,如本地化的字符串、图形、和布局文件* 通知管理器(Notification Manager),使所有的应用程序都能在状态栏显示自定义警报信息* 活动管理器(Activity Manager)管理应用程序的生命周期,并提供一个导航使用的共同的返回栈对于更多的细节和应用程序的演示,请看记事本教程。
库Android包括一组由C / C + Android系统组成的各个部分所用的库。这些功能都通过Android应用程序框架提供给开发者。
下面列出了一些核心库:* * 系统C库* – BSD,一个为基于嵌入式Linux的设备调整的标准C系统库(libc)的派生实现* * 媒体库* – 基于PacketVideo的OpenCORE库支持许多流行的音频和视频格式的播放和录音,以及静态图像文件,包括MPEG4,H.264标准,支持MP3,AAC,AMR,JPG和PNG格式* * Surface Manager* – 管理访问显示子系统和从多个应用程序无缝合成2D和3D图形层* * LibWebCore* – 一个为Android浏览器和可嵌入的网页视图提供支持的现代化的网页浏览器引擎* * SGL* – 底层的2D图形引擎* * 3D库* – 基于OpenGL ES 1.0 API的实施库,无论使用或是包含硬件3D加速(如果可用)和高度优化的3D软件光栅化* * FreeType* – 位图和矢量字体渲染* * SQLite* – 为所有的应用程序提供一个强大而且轻量级的关系数据库引擎Android运行时Android包括一套核心库,提供在Java编程语言的核心库中大部分可用的功能。每一个Android应用程序与自己的Dalvik虚拟机运行在它自己的进程中。
Dalvik被设计成设备可以有效地运行多个虚拟机。Dalvik虚拟机执行的Dalvik可执行格式(.dex)是最小的内存占用优化文件。
虚拟机是基于寄存器的,运行已所包含的“dx”工具转化成.dex格式的Java语言的编译器编译的类。Dalvik虚拟机依赖于Linux内核的基本功能,如:线程和低级别的内存管理。
Linux内核Android依赖Linux 2.6版本的系统核心服务,如安全,内存管理,进程管理,网络堆栈,驱动模型。内核也作为硬件和软件堆栈的其余部分之间的抽象层。
3.如何构建android知识体系
通过大量阅读,特别主题阅读来建立自己的知识体系,主题阅读具体体现在读书笔记和思维导图。
一、我对笔记的要求: 能把书中的框架和重点都展现出来或者你用一页纸能把重点说清楚,就算合格。 第一步来说理清结构,归纳重点。
第二步是舍弃对自己无用的部分, 第三部分按自己的理解进行整理,有时会把导图按照7W3H的方式从新做一个思维导图 第四步用自己的话从新表达出来, 第五步是实践,然后根据结果进行调整和改进。不断重复这几步 二、建立初步框架 1、读过的书,尽可能做成笔记或导图,笔记放在OneNote里。
导图放在MindManage里 2、针对不同的主题,建立思维导图,尽量提练重点,然后在Note或分支中加下注释或出处。 3、定期整理和汇总,不段调整分支和整体结构。
4、如果有时间的话,最好做成PPT或写文章,能把所关注的问题,用自己的话给清楚表达出来 5、不断重复这个过程。 三、资料补充 如果学习的东西是一个专业性比较强的行业 1、还需要建立自己的专业名词字典 2、做资料收集工作,定期整理。
4.学android开发必备基础知识有哪些
学习Android一定要有Java基础,最差也要类似Java的其他面对像对象语言的基础。
很多同学从来没有搞过软件编程,听说Android能赚钱,就疯了一样冲过来要学习。这明显是不靠谱的,甚至有的朋友一个字母一个字母的按照我们的例子去敲代码,然后非常努力的把代码背下来,像背英文单词一样的背代码,编程如果要是学成这个样子,还真是让人佩服不已啊!不管怎样,学习Android你最少也要掌握Java语言的如下知识点才能够开始学习:a)Java基本数据类型及其特点b)Java分支语句和循环语句的使用c)类和对象的创建和使用方法d)函数的使用e)抽象类和接口f)继承和实现g)对象的多态性h)包和访问权限i)异常的处理j)类集框架k)eclipse的基本用法。
5.学android开发必备基础知识有哪些
学习Android一定要有Java基础,最差也要类似Java的其他面对像对象语言的基础。很多同学从来没有搞过软件编程,听说Android能赚钱,就疯了一样冲过来要学习。这明显是不靠谱的,甚至有的朋友一个字母一个字母的按照我们的例子去敲代码,然后非常努力的把代码背下来,像背英文单词一样的背代码,编程如果要是学成这个样子,还真是让人佩服不已啊!不管怎样,学习Android你最少也要掌握Java语言的如下知识点才能够开始学习:
a)Java基本数据类型及其特点
b)Java分支语句和循环语句的使用
c)类和对象的创建和使用方法
d)函数的使用
e)抽象类和接口
f)继承和实现
g)对象的多态性
h)包和访问权限
i)异常的处理
j)类集框架
k)eclipse的基本用法
6.作为一个Android工程师,应该掌握哪些专业技能
1、Android工程师必需比较熟悉常见控件使用,最好都可以通过一个实际Demo测试
2、熟悉Java基本语法,比如:接口、抽象类、链表、数组
3、熟悉其中一种数据库的操作,比如MySQL、SQLServer,Android开发中使用内置的SQLite数据库,但是数据库语法还是一样的
4、理解Android四大组件各生命周期,在何时执行各自回调方法,实际开发中在对应的回调方法调用函数
5、懂得Fragment的和Activity的使用,实现一个更加漂亮的效果
6、实际开发的过程中,做到不懂的记录、总结、不断提高!谢谢博客,那其实很必要!
7.开发一个完整的Android App需要掌握哪些知识
这个问题有些笼统,一个完整的app有简单有复杂,不同的app应用功能的差异也导致不同的技术实现或者算法模型。大体来说,一个app从设计到最终实现需要懂得以下几个必要方面:
1、前期需求规划与信息、交互设计——需要制定出一个完整的需求文档,功能文档,流程图,时序图。
2、交互设计、UI设计——设计出基本且完善的原型图和app基础的交互设计效果,之后再根据这些设计出完整的UI界面并学会切图,一些需要做自适应的素材图片需要做点9patch。 这里还需要懂得px,pt和dp之间的换算,屏幕密度的换算和相互之间的系数,以便app能完美适应不同分辨率设备。其中交互设计需要懂得很多人机操作的技巧经验,掌握Axure等交互工具的使用,UI设计需要掌握Photoshop和Illustrator等操作。
3、使用ADT之类的开发环境进行app开发,最基本的也得掌握java语言,熟悉android环境和机制,这里面涉及面广,请根据项目自行学习相关知识。
4、如果不是单机版的app,需要用到服务器,那还得掌握WebService相关知识和开发语言,常用的有ASP.Net,PHP,JSP等。
5、熟悉并能开发数据库。
6、某些功能需要做算法,这还需要一定得专业知识,尤其是数学基础。
7、熟悉API接口开发,这里包括自行开发API的能力以及调用第三方API的经验。
8、熟悉TCP/IP,socket等网络协议和相关知识。
9、熟练掌握App发布的流程,真机调试技巧,证书,打包,上架。
App开发其实不一定适合一个人搞,太费劲,除非是一个单机版的小应用,或者利用现成的api开发简单的第三方应用,否则还是让一个团队来完成各自擅长的领域。
8.怎样真正深入去学习android
从生命周期入手,好好研究一下Activity这个类到底做了些什么。
然后仔细去体会一下Acitivity的系统架构。自然就明白为什么了。
这里说到系统架构,就跟你分享一下高焕堂老师讲的内容。
1. 整个Android体系实际上是一个父类调用子类的体系,和传统的模式有一定差异。
2. 父类如何知道有哪些子类,这就是AndroidManifest.xml这个配置文件的作用。
3. Android系统升级而客户端不受影响,这是一个系统架构再变,而功能模块不变的过程。
9.从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开发工具,你是不是应该多话一点心思在上面呢?他的重要性不比“看书+看视频”的总和小,也许我就这样轻描淡写地说过去了,但是你最好不要轻描淡写地看过去,不然“返工重做”是很让你不舒服的。
思考,没错,就是“想”。想你怎么把这三块儿合在一块儿,让自己的学习效率更高;想你在学习中遇到哪些障碍,最后是怎么解决的,这很重要。