当前位置: 网学 > 编程文档 > Android > 正文

andriod开发技术

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: myeducs.cn 发布时间: 13/03/17

【网学网提醒】:网学会员鉴于大家对十分关注,论文会员在此为大家搜集整理了“andriod开发技术”一文,供大家参考学习


    1、Q:Android开发者应该先看什么文档?
    A:对开发者来说,最重要的是概念,而DOCS中的DevGuide里面对其解释十分清晰,请仔细阅读。并可以到eoeAndroid开发者社区中找到很多的文档和学习资料
    2、Q:Android系统架构有哪些?
    
    A:Android的系统架构和其操作系统一样,采用了分层的架构。从架构图看,android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
    3、Q:什么是开源?
    A:开源,意为开放源代码,由BrucePerens(曾是Debian的创始人之一)定义如下:
    1)自由再散布(FreeDistribution):获得源代码的人可自由再将此源代码散布。
    2)源代码(SourceCode):程式的可执行档在散布时,必需随附完整源代码或是可让人方便的事后取得源代码。
    3)衍生著作(DerivedWorks):让人可依此源代码修改后,在依照同一授权条款的情形下再散布。
    4)原创作者程式源代码的完整性(IntegrityofTheAuthor’sSourceCode):意即修改后的版本,需以不同的版本号码以与原始的程式码做分别,保障原始的程式码完整性。
    5)不得对任何人或团体有差别待遇(NoDiscriminationAgainstPersonsorGroups):开放源代码软件不得因性别、团体、国家、族群等设定限制,但若是因为法律规定的情形则为例外(如:美国政府限制高加密软件的出口)。
    6)对程式在任何领域内的利用不得有差别待遇(NoDiscriminationAgainstFieldsofEndeavor):意即不得限制商业使用。
    7)散布授权条款(DistributionofLicense):若软件再散布,必需以同一条款散布之。
    8)授权条款不得专属于特定产品(LicenseMustNotBeSpecifictoaProduct):若多个程式组合成一套软件,则当某一开放源代码的程式单独散布时,也必需要符合开放源代码的条件。
    9)授权条款不得限制其他软件(LicenseMustNotRestrictOtherSoftware):当某一开放源代码软件与其他非开放源代码软件一起散布时(例如放在同一光碟片),不得限制其他软件的授权条件也要遵照开放源代码的授权。
    10)授权条款必须技术中立(LicenseMustBeTechnology-Neutral):意即授权条款不得限制为电子格式才有效,若是纸本的授权条款也应视为有效。
    4、Q:如何搭建编程环境?
    A:开发平台推荐Eclipse。VS基本不要想,除非你特别钟爱于传统的vim或其他编程环境并且打算让自己每天敲一堆命令,否则还是用Eclipse吧。它是官方推荐的,目前支持的还算中规中距。而且Linux,windows都能用。
    
    这里
    拿eoe的技术大牛pcr所使用的开发环境举例,SDK_2.3+Eclipse_3.6.1+ADT8.0.1。这应该就是目前最普通的开发环境组合了。至于其他的辅助工具,可以在对android有一定了解之后在考虑添加。
    5、Q:什么是NDK?
    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:线程在Android应用当中的作用?
    A:1)动态更新UI如AsyncTask类,在开发Android应用时必须遵守单线程模型的原则:AndroidUI操作并不是线程安全的并且这些操作必须在UI线程中执行
    2)SOCKET之间的通信
    3)文件的下载
    4)与服务端之间的交互
    5)复杂数据和逻辑的处理
    
  • 上一篇资讯: Andriod缺口
  • 下一篇资讯: 3G方向的学习
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号