`
263229365
  • 浏览: 472082 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android中级进阶 FAQ

阅读更多
1、Q:Android开发者应该先看什么文档?

      A:对开发者来说,最重要的是概念,而DOCS中的Dev Guide里面对其解释十分清晰,请仔细阅读。并可以到eoeAndroid开发者社区中找到很多的文档和学习资料。


2、Q:Android系统架构有哪些?
    
       A:Android的系统架构和其操作系统一样,采用了分层的架构。从架构图看,android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。


3、Q:什么是开源?

       A:开源,意为开放源代码,由Bruce Perens(曾是Debian的创始人之一)定义如下:

          1)自由再散布(Free Distribution):获得源代码的人可自由再将此源代码散布。

           2)源代码(Source Code):程式的可执行档在散布时,必需随附完整源代码或是可让人方便的事后取得源代码。

          3)衍生著作(Derived Works):让人可依此源代码修改后,在依照同一授权条款的情形下再散布。

          4)原创作者程式源代码的完整性(Integrity of The Author’s Source Code):意即修改后的版本,需以不同的版本号码以与原始的程式码做分别,保障原始的程式码完整性。

          5)不得对任何人或团体有差别待遇(No Discrimination Against Persons or Groups):开放源代码软件不得因性别、团体、国家、族群等设定限制,但若是因为法律规定的情形则为例外(如:美国政府限制高加密软件的出口)。

           6)对程式在任何领域内的利用不得有差别待遇(No Discrimination Against Fields of Endeavor):意即不得限制商业使用。

           7)散布授权条款(Distribution of License):若软件再散布,必需以同一条款散布之。

          授权条款不得专属于特定产品(License Must Not Be Specific to a Product):若多个程式组合成一套软件,则当某一开放源代码的程式单独散布时,也必需要符合开放源代码的条件。

           9)授权条款不得限制其他软件(License Must Not Restrict Other Software):当某一开放源代码软件与其他非开放源代码软件一起散布时(例如放在同一光碟片),不得限制其他软件的授权条件也要遵照开放源代码的授权。

          10)授权条款必须技术中立(License Must Be Technology-Neutral):意即授权条款不得限制为电子格式才有效,若是纸本的授权条款也应视为有效。


4、Q:如何搭建编程环境?

       A:开发平台推荐Eclipse。VS基本不要想,除非你特别钟爱于传统的vim或其他编程环境并且打算让自己每天敲一堆命令,否则还是用Eclipse吧。它是官方推荐的,目前支持的还算中规中距。而且Linux,windows都能用。
  
            这里拿eoe的技术大牛pcr所使用的开发环境举例,SDK_2.3+Eclipse_3.6.1+ADT 8.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:针对于Java SE或Java EE的程序员想转到Android平台上进行开发,有以下几点常规的支持:

           1)目前来看JDK的高级特性均支持,比如说1. Java的反射、2.NIO (New I/O)、3. JNI (Java Native Interface)相对而言 对于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平台也能用,其实在Google Android上面开发目前2.2以后的固件支持的方法除了Flash Player外,更好的兼容方法就是使用万能的webkit浏览器了。直接在工程中内嵌一个webView,当然了路径大家可以换成本地的,对于浏览器使用本地资源url为file://开头。

           不过webView的资源消耗也不小,开个webView对象可能占用了至少8MB的RAM吧,保守估计,当然更多的要看插件和以及html的复杂程度所决定的。

10、Q:线程在Android应用当中的作用?

        A:1)动态更新UI 如AsyncTask 类,在开发Android应用时必须遵守单线程模型的原则: Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行
              2)SOCKET之间的通信
              3)文件的下载
              4)与服务端之间的交互
              5)复杂数据和逻辑的处理
分享到:
评论

相关推荐

    MTK android online faq

    "MTK android online faq" 是针对使用MTK平台进行Android开发时常见问题的综合解答,这份文档可能是6月份更新的,旨在帮助开发者更顺利地进行项目调试。 1. **MTK Android开发基础**: - MTK平台的Android系统构建...

    基于Android的Android高手过招 FAQ.zip

    【Android高手过招FAQ】 Android,作为全球最受欢迎的移动操作系统之一,是许多开发者尤其是毕业生们热衷探索的领域。这份“Android高手过招FAQ”压缩包文件,旨在为那些正在学习和研究Android开发的同学们提供宝贵...

    Android高手过招 FAQ.zip

    在“Android高手过招 FAQ.doc”文档中,可能涵盖了开发者在实践中遇到的问题及其解答,比如性能优化、内存管理、多线程、网络编程、数据库操作(SQLite)等方面的问题,这些都是进阶Android开发必须掌握的知识点。...

    Android高手过招 FAQ .zip

    这个"Android高手过招 FAQ .zip"文件很可能包含了一系列与Android开发相关的常见问题解答(FAQ),旨在帮助开发者解决他们在毕业设计、项目实战或构建安卓应用时遇到的问题。让我们深入探讨一下可能涵盖的知识点。 ...

    Android高手过招 FAQ.rar

    Android高手过招 FAQ

    MTK android方案FAQ

    1. **文档性质**:此文档属于MediaTek公司发布的Android方案常见问题解答(FAQ),旨在为用户提供详尽的Android方案BUG说明及解决方法。 2. **版权与免责声明**: - 该文档明确指出其版权归属MediaTek Inc.所有,...

    基于Android的Android高手过招 FAQ .zip

    "基于Android的Android高手过招 FAQ .zip" 提供了一套详细的解答方案,涵盖了从基础概念到高级技术的各种挑战。这个资源适用于刚毕业的学生以及正在提升技能的专业人士,支持使用Android Studio、IntelliJ IDEA和...

    Android高手过招 FAQ (2).zip

    以上知识点只是Android开发中的冰山一角,"Android高手过招 FAQ .doc"文档可能会更深入地讨论这些问题的解决方案和实践经验,对于进阶开发者来说是一份宝贵的参考资料。通过深入学习和实践,开发者可以不断提升自己...

Global site tag (gtag.js) - Google Analytics