【网学网提醒】:网学会员为需要朋友们搜集整理了Android开发 FAQ相关资料,希望对各位网友有所帮助!
Android新手入门FAQ
Android?1、Q:什么是Android?A:Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。简单来说是个开源的手机操纵系统。
2、Q:Android就业前景A:Android是Google开发的基于Linux平台的开源移动操作系统。它包括操作系统、用户界面和应用
程序----移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开发和完整的移动软件。国外Android市场正在如日中天的扩展,据市场调研机构最近发布的一份报告称,今年第一季度基于Android操作系统的智能手机在美国智能手机总销量中所占比例达到28%,首度超过苹果iphone,苹果iphone约为21%,相信在不久的将来会有更多的用户选择Android系统的手机或是无线终端设备。
的特点都有哪些?3、Q:Android的特点都有哪些?A:1)应用
程序框架:支持组件的复用和更换2)Dalvik虚拟机:专门为移动设备进行过优化3)集成的浏览器:基于开源的WebKit引擎,TV上会内置Chrome浏览器4)优化的图形机制:自定义的2D图形库,基于OpenGLES1.0规范的3D图形实现(本项为硬件加速器可选)5)SQLite:轻量级的数据库,支持结构化数据的存储6)媒体支持:面向常见的音频、视频以及静态图形档案格式(MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)7)GSM技术GSM:globalsystemformobilecommunications(依赖硬件支持)
8)Bluetooth,EDGE,3G,andWiFi(依赖硬件支持)9)Camera,GPS,compass,andaccelerometer(依赖硬件支持)10)Richdevelopmentenvironment:丰富的开发环境,包含一套硬件仿真器,一些用于
程序调试、内存和性能剖析的工具,以及支持Eclipse集成开发环境的插件(ADT)。
需要哪些基础?4、Q:学习android需要哪些基础?A:学习Android一定要有Java基础,最差也要类似Java的其他面对像对象语言的基础。很多朋友从来没有搞过编程,听说Android能赚钱,就疯了一样冲过来要
学习。这明显是不靠谱的,甚至有的朋友一个字母一个字母的按照我的例子去敲代码,然后非常努力的把代码背下来。像背英文单词一样的背代码,编程学成这个样子,还真是让小生佩服啊!不管怎样,你最少也要掌握Java语言的如下知识点才能够开始学Android:a)Java基本数据类型及其特点b)Java分支语句和循环语句的使用c)类和对象的创建和使用方法d)函数的使用e)抽象类和接口f)
继承和实现g)对象的多态性h)包和访问权限i)异常的处理j)类集框架k)eclipse的基本用法
上编程用什么语言?5、Q:Android上编程用什么语言?A:Android应用基于Java,支持SQL,由于底层是Linux所以底层支持C/C++。目前有两种编程:1)基于ADT的JAVA编程2)基于NDK的C编程
编程环境需要哪些?6、Q:Android编程环境需要哪些?
A:编程环境:Ide、AndroidSDK、JDK、Java官方推荐用JDK+ECLIPSE+ADT+ADK(WINDOWS开发环境下。
APK?7、Q:什么是APK?A:APK是AndroidPackage的缩写,即Android安装包(anapk)。APK是类似SymbianSis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。apk文件和sis一样最终把androidsdk编译的工程打包成一个安装程序文件格式为apk。APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是DalvikVMexecutes的全称,即AndroidDalvik执行
程序,并非JavaME的字节码而是Dalvik字节码。
SDK?8、Q:什么是SDK?A:SDK,SoftwareDevelopmentKit的缩写,中文即“软件开发工具包”。广义上指辅助开发某一类软件的相关文档、范例和工具的集合。SDK是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,一般而言SDK即开发Windows平台下的应用程序所使用的SDK。它可以简单的为某个程序设计语言提供应用
程序接口API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考
资料澄清疑点的支持文档。
ADT?9、Q:什么是ADT?A:ADT(AndroidDevelopmentTools):目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升级或者变更,简单理解为在Eclipse下开发工具,它可以连接sdk和Eclipse,帮助Eclipse找到sdk
API?10、10、Q:什么是API?
A:API(ApplicationProgrammingInterface)其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的API而使操作系统去执行应用程序的命令(动作)。其实早在DOS时代就有API的概念,只不过那个时候的API是以中断调用的形式(INT21h)提供的,在DOS下跑的应用
程序都直接或间接的通过中断调用来使用操作系统功能,比如将AH置为30h后调用INT21h就可以得到DOS操作系统的版本号。而在Windows中,系统API是以函数调用的方式提供的。同样是取得操作系统的版本号,在Windo
ws中你所要做的就是调用GetVersionEx()函数。11、协议?11、Q:什么是TCP协议和UDP协议?协议的名称中只有TCP这个协议名,但是在TCP/IP的传输层同A:TCP/IP协议时存在TCP和UDP两个协议。TranferControlProtocol的简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个顺序的无差错的数据流。发送方和接收方的成对的两个socket之间必须建立连接,以便在TCP协议的基础上进行通信,当一个socket(通常都是serversocket)等待建立连接时,另一个socket可以要求进行连接,一旦这两个socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或接收操作。协议是UDP协议UserDatagramProtocol的简称,是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。
12、IPC?12、Q:什么是IPC?
TPC(Inter-ProcessCommunication):进程间通信A:TPC
Android中级进阶FAQ
开发者应该先看什么文档?1、Q:Android开发者应该先看什么文档?A:对开发者来说,最重要的是概念,而DOCS中的DevGuide里面对其解释十分清晰,请仔细阅读。并可以到eoeAndroid开发者社区中找到很多的文档和学习
资料。
系统架构有哪些?2、Q:Android系统架构有哪些?A:Android的系统架构和其操作系统一样,采用了分层的架构。从架构图看,android分为四个层,从高层到低层分别是应用程序层、应用
程序框架层、系统运行库层和linux核心层。
什么是开源?3、Q:什么是开源?A:开源,意为开放源代码,由BrucePerens(曾是Debian的创始人之一)定义如下:1)自由再散布(Distribution):):获得源代码的人可自由再将1)自由再散布(FreeDistribution):自由再散布此源代码散布。2)源代码(Code):):程式的可执行档在散布时,必需随附2)源代码(SourceCode):源代码完整源代码或是可让人方便的事后取得源代码。3)衍生著作(Works):):让人可依此源代码修改后,在依照3)衍生著作(DerivedWorks):衍生著作同一授权条款的情形下再散布。4)原创作者程式源代码的完整性(4)原创作者程式源代码的完整性(IntegrityofTheAuthor’s
原创作者程式源代码的完整性Code):):意即修改后的版本,需以不同的版本号码以与原始的程式码做SourceCode):分别,保障原始的程式码完整性。5)不得对任何人或团体有差别待遇(5)不得对任何人或团体有差别待遇(NoDiscriminationAgainst不得对任何人
或团体有差别待遇Groups):):开放源代码软件不得因性别、团体、国家、族群等设定PersonsorGroups):限制,但若是因为法律规定的情形则为例外(如:美国政府限制高加密软件的出口)。
6)对程式在任何领域内的利用不得有差别待遇(6)对程式在任何领域内的利用不得有差别待遇(No对程式在任何领域内的利用不得有差别待遇Endeavor):):意即不得限制商业使用。DiscriminationAgainstFieldsofEndeavor):7)散布授权条款(License):):若软件再散布,7)散布授权条款(DistributionofLicense):散布授权条款必需以同一条款散布之。8)授权条款不得专属于特定产品(8)授权条款不得专属于特定产品(LicenseMustNotBe授权条款不得专属于特定产品Product):):若多个程式组合成一套软件,则当某一开放源代码SpecifictoaProduct):的程式单独散布时,也必需要符合开放源代码的条件。9)授权条款不得限制其他软件(9)授权条款不得限制其他软件(LicenseMustNotRestrict授权条款不得限制其他软件Software):):当某一开放源代码软件与其他非开放源代码软件一起散布OtherSoftware):时(例如放在同一光碟片),不得限制其他软件的授权条件也要遵照开放源代码的授权。10)授权条款必须技术中立(Technology10)授权条款必须技术中立(LicenseMustBeTechnology授权条款必须技术中立Neutral):):意即授权条款不得限制为电子格式才有效,若是纸本的授权条款也Neutral):应视为有效。
4、Q:如何搭建编程环境?如何搭建编程环境?A:开发平台推荐Eclipse。VS基本不要想,除非你特别钟爱于传统的vim或其他编程环境并且打算让自己每天敲一堆命令,否则还是用Eclipse吧。它是官方推荐的,目前支持的还算中规中距。而且Linux,windows都能用。这里拿eoe的技术大牛pcr所使用的开发环境举例,SDK_2.3+Eclipse_3.6.1+ADT8.0.1。这应该就是目前最普通的开发环境组合了。至于其他的辅助工具,可以在对android有一定了解之后在考虑添加。
NDK?5、Q:什么是NDK?Q是一系列工具的集合。A:1)NDK是一系列工具的集合。NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、
ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。提供了一份
稳定了一份稳定、头文件声明。2)NDK提供了一份稳定、功能有限的API头文件声明。Google明确声明该API是稳定的,在后续所有版本中都稳定支持当前发布的API。从该版本的NDK中看出,这些API支持的功能非常有限,包含有:C标准库(libc)、标准数学库(libm)、压缩库(libz)、Log库(liblog)
应用程序的速度?6、Q:怎样提高Android应用程序的速度?A:首先,我们要先明白“加快”是有两层意思的,第一层是代码执行所需要的时间,第二层意思是用户需要等待用户界面响应的时间。下面是提高Android应用
程序运行速度的几条原则。1)不要让UI线程等待2)耗时操作不可取3)模拟器和真实的设备有不同4)通知用户,要注意用户体验。
运行库有哪些?7、Q:Android运行库有哪些?A:Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用
程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中的"dx"工具转化成.dex格式由虚拟机执行。Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。
8、Q:Android都支持哪些Java特性
A:针对于JavaSE或JavaEE的程序员想转到Android平台上进行开发,有以下几点常规的支持:1)目前来看JDK的高级特性均支持,比如说1.Java的反射、2.NIO(NewI/O)、3.JNI(JavaNativeInterface)相对而言对于OpenGL和SQLite的支持比较强大,但是AWT和JDBC这些东西都不支持。2)在Xml解析上,兼容DOM、XmlPull和SAX,同时数据交换格式上,Android虽然不支持LINQ但对于Java来说JSON同样支持。3)对于Http处理方面,提供了轻量级的Http处理类,以及更完善的Apache库支持。4)音频方面Android比较强大,使用了OpenCore库,很多地方我们可以自己编写编码、解码器进行扩展。5)Android在文件系统上基本山和Java是相同的,不过对于高效率的内存影射文件而言提供了android.os.MemoryFile这个类。总体而言,Java
程序员转入Android开发只需要了解平台特有的,Intent,Service,Receiver和Activity就差不多了,深入了解下AIDL和UI控件和自定义Widget基本上可以胜任常规的工作。动画方法是什么?9、Q:Android最简单播放GIF动画方法是什么?A:GIF动画的原理就是逐帧播放,在Android中提供了AnimationDrawable类
可以实现,GIF89A的解码方法在过去的J2ME平台移植到Android平台也能用,其实在GoogleAndroid上面开发目前2.2以后的固件支持的方法除了FlashPlayer外,更好的兼容方法就是使用万能的webkit浏览器了。直接在工程中内嵌一个webView,当然了路径大家可以换成本地的,对于浏览器使用本地资源url为file://开头。不过webView的资源消耗也不小,开个webView对象可能占用了至少8MB的RAM吧,保守估计,当然更多的要看插件和以及html的复杂程度所决定的。10、Q应用当中的作用?10Q:线程在Android应用当中的作用?
A:1)动态更新UI如AsyncTask类,在开发Android应用时必须遵守单线程模型的原则:AndroidUI操作并不是线程安全的并且这些操作必须在UI线程中执行2)SOCKET之间的通信3)文件的
下载4)与服务端之间的交互5)复杂数据和逻辑的处理
Android高手过招FAQ
1、Q:如何成为高手?如何成为高手?A:成为一名真正的Android高手必须掌握和遵循的一些准则:1)学会懒惰aDon'tReinventtheWheel(不要重复发明轮子)。bInventingtheWheel(发明轮子)。cDon'tReinventtheWheel(不要重复发明轮子)。“轮子理论”,也即“不要重复发明轮子”,这是西方国家的一句谚语,原话是:Don'tReinventtheWheel。“不要重复发明轮子”意思是企业中任何一项工作实际上都有人做过,我们所需要做的就是找到做过这件事情的人。拿到软件领域中就是指有的项目或功能,别人已经做过,我们需要用的时候,直接拿来用即可,而不要重新制造。体系架构、MVC、常见的设计模式、2)精通Android体系架构、MVC、常见的设计模式、控制反转(IoC)IoC)3)编写可重用、可扩展、可维护、灵活性高的代码编写可重用、可扩展、可维护、4)高效的编写高效的代码5)学会至少一门服务器端开发技术
是什么?2、Q:JNI是什么?
A:JNI是JavaNativeInterface的缩写,中文为JAVA本地调用。从Java1.1开始,JavaNativeInterface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。使用java与本地已编译的代码交互,通常会丧失平台可移植性。但是,有些情况下这样做是可以接受的,甚至是必须的,比如,使用一些旧的库,与硬件、操作系统进行交互,或者为了提高程序的性能。JNI标准至少保证本地代码能工作在任何Java虚拟机实现下。
的区别?3、Q:Android和Linux的区别?A:Android是一个专
门针对移动设备的软件集,包括一个操作系统,中间件和一些重要的应用程序。AndroidSDK提供了在Android平台使用java语言进行android应用程序开发必须的工具和API接口。Android系统架构除了Linux2.6内核之外,还提供了丰富的lib和适用于java的运行时环境(很重要的一点是Dalvik虚拟机,类似于JVM)、应用程序框架和核心应用。在此基础之上可以快速开发应用程序。linux内核像是核心技术支持,而google将其商业化于移动设备上。android上开发应用程序和WindowsMFC开发有些类似。
升级了,SDK?4、Q:SDK升级了,如何更新SDK?A:更新SDK是非常棘手的。当一个新的SDK发布,必须是plugin也发布。更新容易出现的错误是两个版本都存在,而且都不正常。最终不得不卸载了它们并且重新安装最新的一个。然后那个最新的SDK工作正常了。建议任何面对SDK或者plugin升级的人都采用相同的过程。简单的卸载老版本,然后安装新版本。不要升级。
5、Q:如何进入Recovery模式A:每部Android设备进入Recovery模式的方法不同。以Milestone为例:若bootloader为90.78,按住键盘的“X”键,再按电源键开机,看到
moto的经典logo即可放开此2键。等待出现一个三角形图标,然后按住音量向上键+轻按拍照键,会出现四个选项。放开按键,可以用方向键选择一个选项。作用分别为重启,应用update.zip,清除所有数据至出厂状态、清除cache。6、Q:Androidbionic移植需要注意的事项A:下面通过一个例子来说明移植binic需要做的事情(BIONIC使用的内核头文件从2.6.29升级到2.6.31):修改之前,1)修改之前,先要备份android/bionic头文件:2)按照下面方法复制linuxkernelv2.6.31头文件:复制include/asm-generic到bionic/libc/kernel/originalfolder复制include/linux到bionic/libc/kernel/originalfolder复制include/mtd到bionic/libc/kernel/originalfolder脚本,生成新的头文件,方法如下.3)运行tools/update_all.py脚本,生成新的头文件,方法如下.$cdandroid/bionic/libc/kernel$tools/update_all.py以上的操作将复制新的头文件到bionic/libc/kernel/common目录4)删除bionic/libc/kernel/original目录5)复制平台相关的头文件:复制平台相关的头文件:复制linuxv2.6.31平台相关的asm目录到指定的路径,方法如下:复制arch/arm/include/asm到android/bionic/libc/kernel/arch-arm/复制arch/x86/include/asm到android/bionic/libc/kernel/arch-x86/6)从v2.6.29bionic/libc/kernel/common/linux复制一下的目录:头文件到新的android/bionic/libc/kernel/common/linux目录:android-alarm.handroid-pmem.handroid_power.h
ashmem.hbinder.hmsm_adsp.hmsm_audio.hmsm_mdp
.hkeychord.h7)编译$cdandroid$make-j4
目录下文件的作用?7、Q:Android源码下vendor目录下文件的作用?Android指的是某些公司的产品型号,主要是一些针对硬件配置的东西A:指的是某些公司的产品型号主要是一些针对硬件配置的东西,比如radio方面的,若是采用TI的,这里面会有TI提供的一些RIL方面的接口等若是采用方面的接口等。
内核有什么区别?8、Q:编译Android源码和编译Android内核有什么区别?其实没什么区别,就多了几个android特有的驱动,最重要的是最重要的是A:其实没什么区别binder
如何获取手机和存储卡上的图片?9、Q:如何获取手机和存储卡上的
图片?A:Java代码1./**2.*通过uri获取文件的绝对路径3.*@paramuri4.*@return5.6.7.8.9.*/protectedStringgetAbsoluteImagePath(Uriuri){//canpostimageString[]proj={MediaStore.Images.Media.DATA};
10.11.
Cursorcursor=managedQuery(uri,proj,//Whichcolumnstoreturn12.null,//WHEREclause;whichrowstoreturn(allrows)13.guments(none)14.15.16.17.18.19.20.null);byclause(ascendingbyname)intcolumn_index=cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);cursor.moveToFirst();returncursor.getString(column_index);}//Ordernull,//WHEREclauseselectionar
10、如何使用双缓冲?10、Q:如何使用双缓冲?A:系统自身已经实现了双缓冲,也就是说为了避免重影,必须连续onDraw两次,或者是对上一次onDraw里面画脏的部分进行修复。执行Bitmap.createBitmap函数一般要花销100-300ms的时间,要想提高它的效率,只能祈祷google能把android的代码写得更高效一些了。
Android平台越来越火已经成为事实,前一篇文章给大家介绍了什么是android?android在中国的发展以及就业前景,那么想要从事Android开发的初级入门人员应该如何进行准备,如何进行学习呢?本文给大家进行了详细的介绍。1、我们知道Android是使用Java语言进行应用开发的,对于一个入门者,想要开发Android知识有哪些要求?需要哪些知识储备?答:对于该
问题确实有不少人咨询过,始终有一点可以肯定,那就是Java基础越好,学习Android应用开发就越容易,越轻松。没有Java基础也可以同时学习Java和Android(这需要根据自身情况来看,我个人不推荐这种方式)。因为Android应用程序使用Java语言来编写,使用JDK中的Javac编译器进行编译,从而产生Java字节码(.class文件)。然后,这些文件还要被转化成Android的.dex文件,这部分转换工作包括一些优化和压缩等技术,由Dalvik虚拟机来完成,应用开发人员只需要使用Android提供的API来完应用程序编写即可,所以
在学习Java基础时就可以针对Android所引入的这部分来学习,概括一下就是:Java标准语法规则、Java提供的一些工具内库。另外,Android的界面布局使用xml语法规则,所以有必要了解一下xml相关的知识。2、已经有一定经验的Java开发者,想要走进Android进行应用或者游戏的开发,需要重新学习哪些知识?答:Android引入了大部分JavaAPI及其规则,其实在Android平台中很多应用程序功能的实现是既可以使用标准的JavaAPI,也可以使用AndroidAPI,比如网络通信、I/O模块等都能同时兼容,但是Android也增加了一部分专门使用于Android的API,比如图形图形,IPC机制等。那么对于有Java经验的开发者所要学习就主要在Android所新增这部分API及其工作原理。其实我在写《Android应用开发揭秘》时就考虑了这部分有一定Java经验的开发者,同时对应用和游戏进行了分别讲解,几乎介绍了Android平台所新增的API的使用,另外该书还特别适用于有一定J2ME经验的开发者。3、之前进行.NET或者PHP开发的程序员转向Android开发有什么快速的方法吗?答:这个问题就好比我已经可以驾驶小桥车了,该如何去驾驶大客车或者大货车呢?因此需要学习的就是大客车或者大货车与小桥车。Android是一个操作系统,因此其应用程序编写的规则、工作原理和机制都需要符合其系统要求,所以这部分开发者应该从该平台不同的规则、构架、原理和机制出发,学习Android所提供的API。对于PHP转Android的稍微麻烦一点儿,需要首先学习面向对象的编程(学习Java)。4、Android开发是针对移动设备的,与传统的软件开发相比有哪些不一样的地方需要我们注意?
答:这个问题,我觉得用“灵活”两个字来回答再好不过了,传统的软件开发受到诸多因素的影响,比如:设备、API限制等,而Android本身就是一个开放源码的操作系统,这样就使得开发者可以很轻松的通过源码来解决很多传统软件开发中遇到的非常痛苦的问题。说实话,我在当初接触Android的时候,第一感觉就是这个系统太灵活了,是一个适合开发者根据自己的思路来创新的平台,比如:对于某些功能的实现,他并没有限定开发者必须使用某种方式或者某个API来完成,而是让开发者自由的发挥,这就是与传统软件开发最大的不同,但是需要注意,在开发过程中,我们要始终保持不违背Android系统的权限、机制和原则。5、能不能为Android开发的初学者推荐一条学习路线?在这条线路中有哪些重点需要关注?答:对于一个初学者首先应该学习Java基础,熟悉Java这种编程语言,这部分比较重要将直接
关系到学Android的时间进度,当你能够独立写出部分Java程序时,可以开始进入Android的学习了,进入Android的学习应该首先掌握Android的系统结构,应用程序框架,应用程序必须的各个模块,当然这部分内容可以直接参考官方提供的开发入门文档,当入门之后可以开始深入Android各个模块进行学习,了解各模块的功能、机制,从而对其提供的API接口进行熟练且灵活的运用。6、这样的路线走下来大概需要多长时间?从事应用开发和游戏开发的学习路线和重点是否会有所不同?答:时间的问题就需要根据个人的不同情况来衡量,一般对于没有任何Java基础的开发者来说至少需要2月以上来学习Java,因为这也将直接影响后期对Android的学习,有了Java基础,对于Android的学习就简单很多了,几天时间都能完成Android入门。入门简单,但是入门之后的深入需要一个长期的经验积累。对于应用方向的开发者需要重点掌握Android的各个组件(包括各个组件的组合运用)、网络通信、音频和视频这些模块,对于游戏开发方向则应该把重点放在图形图像方面包括2D和3D(OpenglES)渲染。7、Android的应用,与ava程序有什么不同之处?答:首先从运行环境层次来分析,Java程序在拥有Java虚拟机的情况下就能运行,而Android应用程序不仅需要Dalvik虚拟机来解释,而且需要很多系统组件及API的支持。另外每个Android应用程序都是相对独立的,不能在一个应用程序中调用另一个应用程序。因此这些都是传统Java程序开发者需要注意的地方,Java编程的IDE和工具确实比较多,但是Google选择了Eclipse并提供了基于Eclipse的插件ADT使得应用程序的开发变得非常方便,相信大家都知道,开发应用最困难的就是Debug了吧,在Android平台除了Eclipse本身的调试工具之外,ADT还提供了众多辅助调试的功能,
比如:ddms,模拟器工具等。同时,如果我们的应用程序需要使用NDK来开发原生程序,那么Eclipse也可以很方便的集成C\C++开发环境等,总的说来使用Eclipse和ADT来开发应用程序是个非常完美的组合,当然不排除可以使用其他的工具来开发!8、能不能从项目管理的角度为我们介绍一下,一个Android项目的具体开发流程,在移动软件的项目开发中需要注意哪些问题?答:这个问题比较大了,那么我就自己开发Android项目的流程来说说,首先Android目前的应用程序虽然不像iPhone上那么多,但是其项目的同质化越来越严重,因此在最初对项目的定义阶段非常重要,将直接影响产品的生命周期,客户需要一个独特的,新颖的、便于操作的产品,这都是我
们在可以在开发中嵌入相关程序或其他,对项目进行更新及其完善9、目前除了AndroidSDK,还有NDK。NDK主要应用在哪类项目的开发?是否值得我们关注和学习?答,Android平台的第三方应用程序均是依靠基于Java的Dalvik特制虚拟机进行开发的。原生SDK(NDK)的可以让开发者更加直接的接触Android系统资源,并使用传统的C或C++语言编写程序,并在程序封包文件(.apks)中直接嵌入原生库文件。NDK主要用于一些具有大量逻辑计算和高性能的图像渲染的工作,比如我们要开发款大型的3D游戏,那么如果使用AndroidSDK通过Java来开发,速度和性能上很难满足我们的要求,这是就可以使用NDK通过C\C++来开发原生的程序来处理这些渲染,可以极大的提高我们游戏的性能。所以我们很有必要对NDK进行学习。
Q:学习android需要哪些基础?A:学习Android一定要有Java基础,最差也要类似Java的其他面对像对象语言的基础。很多朋友从来没有搞过编程,听说Android能赚钱,就疯了一样冲过来要学习。这明显是不靠谱的,甚至有的朋友一个字母一个字母的按照我的例子去敲代码,然后非常努力的把代码背下来。像背英文单词一样的背代码,编程学成这个样子,还真是让小生佩服啊!不管怎样,你最少也要掌握Java语言的如下知识点才能够开始学Android:a)Java基本数据类型及其特点b)Java分支语句和循环语句的使用c)类和对象的创建和使用方法d)函数的使用e)抽象类和接口f)继承和实现g)对象的多态性h)包和访问权限i)异常的处理j)类集框架k)eclipse的基本用法刚才看了一个论坛的以上问题后,突然自己有个疑问,请问各位前辈,要是我以上的基础我都很熟练的掌握了,想入手Android方向的开发一般需要多久呢?我是广西的一个本科应届毕业生,今年7月我就可以毕业了,在大学,我主要便向就是java开发,自学掌握了jsp以及ssh2的相关基础,做过一些简单的web应用开发。恳请这里的前辈给我指点指点,谢谢!