Android试题
第1章 初识Android 1
1.1 Android历史 1
lAndroid之父是谁?
答案:AndyRubin(安迪鲁宾)。
1.2 移动操作系统简介 2
l请写出当前比较流行的几款移动操作系统与其开发语言。
答案:WindowsMobile/Phone的开发语言是C#和C++、iOS的开发语言是Objective-C、Symbian的开发语言是C++、BlackBerry的开发语言是Java、Android使用Java作为主要的应用开发语言,在需要更改Android的底层功能时,需要使用C或C++。
1.3 Android版本更替 3
l现在最新的Android版本叫什么?
答案:叫做JellyBean(果冻豆),也就是4.2版。
1.4 Android系统特性 5
lAndroid系统的特性有很多,请说出四个特性。
答案:显示布局、数据存储、网络、信息、浏览器、编程语言支持、媒体支持、流媒体支持、硬件支持、多点触控、蓝牙、多任务处理、语音功能、无线共享功能、截图功能、跨平台、应用程序安全机制。
1.5 Android系统架构 7
l请写出Android系统架构有几层,分别是哪几层。
答案:有四层。分别是Linux内核、本地库和Java运行时环境、应用程序框架、应用程序。
lAndroid系统的架构。
答案:android的系统架构和其操作系统一样,采用了分层的架构。从架构图看,android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
1.应用程序
Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。
2.应用程序框架
开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。
隐藏在每个应用后面的是一系列的服务和系统,其中包括;
*丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表(lists),网格(grids),文本框(textboxes),按钮(buttons),甚至可嵌入的web浏览器。
*内容提供器(ContentProviders)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据
*资源管理器(ResourceManager)提供非代码资源的访问,如本地字符串,图形,和布局文件(layoutfiles)。
*通知管理器(NotificationManager)使得应用程序可以在状态栏中显示自定义的提示信息。
*活动管理器(ActivityManager)用来管理应用程序生命周期并提供常用的导航回退功能。
有关更多的细节和怎样从头写一个应用程序,请参考如何编写一个Android应用程序.
3.系统运行库
1)程序库
Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过Android应用程序框架为开发者提供服务。以下是一些核心库:
*系统C库-一个从BSD继承来的标准C系统函数库(libc),它是专门为基于embeddedlinux的设备定制的。
*媒体库-基于PacketVideoOpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4,H.264,MP3,AAC,AMR,JPG,PNG。
*SurfaceManager-对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。
*LibWebCore-一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。
*SGL-底层的2D图形引擎
*3Dlibraries-基于OpenGLES1.0APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。
*FreeType-位图(bitmap)和矢量(vector)字体显示。
*SQLite-一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。
2)Android运行库
Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。
每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中的“dx”工具转化成.dex格式由虚拟机执行。
Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。
4.Linux内核
Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的抽象层。
1.6 在Windows下搭建Android开发环境 10
1.6.1 环境搭建步骤 10
1.6.2 一次性打包下载 16
l请写出整个Android开发环境的搭建过程步骤。
答案:安装JDK->安装Eclipse->下载AndroidSDK->在Eclipse中安装并配置ADT。
1.7 AndroidHelloWorld 17
l编写一个简单的Android开发HelloWorld应用的步骤是什么。
答案:①建立项目;②编写代码;③建立AVD(Android模拟器);④运行HelloWorld。
1.8 Android应用程序框架 23
lAndroid的每一个应用都是一套具有固定框架的程序与代码集合,里面包括哪些内容,请说不少于四个。
答案:里面包括Java源代码、界面布局文件、项目配置文件(AndroidManifest.xml)、字符串数据配置文件、主题和样式(Style)配置文件、图片资源、菜单布局文件、自动生成的R.java、Apk(可执行的安装包)文件、库文件等。
1.9 常用的开发与调试工具介绍 24
lAndroid开发中常用的开发与调试工具有很多,请说出不少于两个。
答案:adb、DDMS、AVDManager、Emulator、LogCat、SDKManager。
1.10 Android四大组件简介 25
l请简要介绍Android的四大组件。
答案:Android系统有四种组件,这四种组件构成了Android应用的框架,然后由Intent联系这四种组件。Activity用来显示Android的程序界面,一个应用往往有多个界面,所以一个应用中会有多个Activity。Service没有界面的后台服务,会一直运行在后台。常被用来做数据处理,也可以做一些定时的任务。BroadcastReceiver是Android的广播接收器,在广播机制中充当广播的接受者的作用,Android中充满了各种广播,所有需要有选择地接收一些有用的广播,然后处理这些广播。ContentProvider可直译为内容提供者,它是用在不同的应用程序之间共享数据时,可以把一个应用的数据提供给其他的应用使用。
l你如何评价Android系统?优缺点。
答案:优点:1、学习的开源性;
2、软件兼容性比较好;
3、软件发展迅速;
4、界面布局好。
缺点:1、版本过多;
2、先有软件少3、商务性能差。
lAndroid中Activity,Intent,ContentProvider,Service各有什么区别。
答案:Activity:活动,是最基本的android应用程序组件。一个活动就是一个单独的屏幕,每一个活动都被实现为一个独立的类,并且从活动基类继承而来。
Intent:意图,描述应用想干什么。最重要的部分是动作和动作对应的数据。
ContentProvider:内容提供器,android应用程序能够将它们的数据保存到文件、SQLite数据库中,甚至是任何有效的设备中。当你想将你的应用数据和其他应用共享时,内容提供器就可以发挥作用了。
Service:服务,具有一段较长生命周期且没有用户界面的程序。
lManifest.xml文件中主要包括哪些信息?
答案:manifest:根节点,描述了package中所有的内容。
uses-permission:请求你的package正常运作所需赋予的安全许可。
permission:声明了安全许可来限制哪些程序能你package中的组件和功能。
instrumentation:声明了用来测试此package或其他package指令组件的代码。
application:包含package中application级别组件声明的根节点。
activity:Activity是用来与用户交互的主要工具。
receiver:IntentReceiver能使的application获得数据的改变或者发生的操作,即使它当前不在运行。
service:Service是能在后台运行任意时间的组件。
provider:ContentProvider是用来管理持久化数据并发布给其他应用程序使用的组件。
更多相关文章
- Android应用程序组成
- android 基本组件
- Android例子源码集成安卓主流优秀第三方组件框架
- Android 应用程序如何获取system权限
- Android Studio TV开发教程(十六)让电视应用程序可搜索
- Android四大基本组件介绍
- (三)Android官方MVVM框架实现组件化之DataBinding
- [原]Android应用程序组件Content Provider简要介绍和学习计划