- 浏览: 472082 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
bewithme:
我把一个透明背景的PNG画到了另外一张图片上,为啥透明背景就变 ...
Java绘制PNG图片时的黑色背景问题 -
davidwkj:
Y坐标的公式不对。算出来的值是错的!!!!!!!!!!!!!! ...
两条线段是否相交,计算交点公式。 -
zhang9181156:
茅塞顿开哈,感谢
android--相机开发 -
leecinwell:
哈
Android条用照相机,实现可剪切功能 -
life_菜鸟飞:
非常感谢作者这么详细的讲解,自己也动手实践了一下,发现前面几个 ...
android--相机开发
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)复杂数据和逻辑的处理
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)复杂数据和逻辑的处理
发表评论
-
浅析android应用增量升级
2013-05-29 13:31 2730背景 随着android应用体积的不断增大 ... -
Activity是如何生成一个 view 的
2013-05-16 11:09 1369Activity是一个工人,它来控制Window;Windo ... -
Android 获取新浪天气预报数据
2012-12-07 13:07 3084新浪天气预报地址: http://php.weathe ... -
Android连接网络问题
2012-11-23 11:14 2043一、检查网络是否连接 方法一、 publ ... -
Android异步下载图片并且缓存图片到本地
2012-09-06 16:21 1942转来的,以备不时之需!! 在Android开发中 ... -
Android条用照相机,实现可剪切功能
2012-08-12 12:35 4599public class CameraActivity ... -
android--相机开发
2012-08-10 08:17 11612在android中应用相机功能,一般有两种:一种是直接调 ... -
15个令人震惊的HTML5效果
2012-07-04 10:09 136415个令人震惊的HTML5效果 除非你一直 ... -
Android 读写文件的N种写法
2012-07-04 09:54 1114Android 读写文件的N种写法(待续。。。) ... -
如何干掉360(付代码)
2012-06-29 16:09 1370最近360很凶,有推送的,有桌面图标的,全部会被提示有风 ... -
Cocos2d-x跨Android&iOS平台开发入门
2012-06-26 10:22 1566好吧,确实存在这 ... -
解决Android加载图片时内存溢出的问题
2012-06-18 13:52 46355尽量不要使用setImageBitmap或setImag ... -
android 代码 混淆
2012-06-04 10:22 20761、得到 classes.dex文件;直接用你机器上的 ... -
android代码混淆是出现Conversion to Dalvik format failed with error 1的解决方法
2012-06-04 10:18 4499最近做android项目,给代码混淆时遇到问题,在项目加入混淆 ... -
Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系
2012-03-20 16:44 1897一、Surface Surface就是“表面”的意思。 ... -
Re-installation failed解决方法
2011-12-27 22:49 4854我的方法:去模拟器卸载上次安装的*.apk ... -
Failed to install *.apk on device 'emulator-5554': timeout
2011-12-20 00:31 9324错误提示: Failed to inst ... -
android 中的 Bitmap
2011-12-20 00:32 3959在Android SDK中说明可以支持的图片格式如下:p ... -
Android 小球重力感应实现
2011-12-16 20:49 1674重力感应主要是依靠手机的加速度传感器(acceleromete ... -
Android中资源文件夹res/raw和assets的使用
2011-12-16 20:37 9566*res/raw和assets的相同点: 1.两者目录 ...
相关推荐
"MTK android online faq" 是针对使用MTK平台进行Android开发时常见问题的综合解答,这份文档可能是6月份更新的,旨在帮助开发者更顺利地进行项目调试。 1. **MTK Android开发基础**: - MTK平台的Android系统构建...
【Android高手过招FAQ】 Android,作为全球最受欢迎的移动操作系统之一,是许多开发者尤其是毕业生们热衷探索的领域。这份“Android高手过招FAQ”压缩包文件,旨在为那些正在学习和研究Android开发的同学们提供宝贵...
在“Android高手过招 FAQ.doc”文档中,可能涵盖了开发者在实践中遇到的问题及其解答,比如性能优化、内存管理、多线程、网络编程、数据库操作(SQLite)等方面的问题,这些都是进阶Android开发必须掌握的知识点。...
这个"Android高手过招 FAQ .zip"文件很可能包含了一系列与Android开发相关的常见问题解答(FAQ),旨在帮助开发者解决他们在毕业设计、项目实战或构建安卓应用时遇到的问题。让我们深入探讨一下可能涵盖的知识点。 ...
Android高手过招 FAQ
1. **文档性质**:此文档属于MediaTek公司发布的Android方案常见问题解答(FAQ),旨在为用户提供详尽的Android方案BUG说明及解决方法。 2. **版权与免责声明**: - 该文档明确指出其版权归属MediaTek Inc.所有,...
"基于Android的Android高手过招 FAQ .zip" 提供了一套详细的解答方案,涵盖了从基础概念到高级技术的各种挑战。这个资源适用于刚毕业的学生以及正在提升技能的专业人士,支持使用Android Studio、IntelliJ IDEA和...
以上知识点只是Android开发中的冰山一角,"Android高手过招 FAQ .doc"文档可能会更深入地讨论这些问题的解决方案和实践经验,对于进阶开发者来说是一份宝贵的参考资料。通过深入学习和实践,开发者可以不断提升自己...