安卓移动开发简答题 程序.docx
- 文档编号:25834651
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:15
- 大小:471.89KB
安卓移动开发简答题 程序.docx
《安卓移动开发简答题 程序.docx》由会员分享,可在线阅读,更多相关《安卓移动开发简答题 程序.docx(15页珍藏版)》请在冰豆网上搜索。
安卓移动开发简答题程序
安卓简答+程序题
1、请简述AndroidADT(参见23)
答:
ADT,是AndroidDevelopmentToolKit的缩写,表示开发工具包,是Eclipse的一个插件,用于快速创建Android工程、用户界面和基于AndroidAPI的组件。
(3’)
ADT可以在Eclipse中输入其下载地址进行安装。
在Eclipse中单独安装ADT插件的方法是使用菜单“Help→InstallNewSoftware”。
(1’或2’)
在Eclipse的首选项中,只有安装了ADT,才会出现做Android应用开发的选项“Android”。
(0’或1’)
2、请简述AndroidSDK(参见23)
答:
AndroidSDK(SoftwareDevelopmentKit),表示Android软件开发包,是Android整体开发中所用到的工具包,提供了库文件以及其他开发所用到的工具。
如果在Eclipse中不关联AndroidSDK,则无法开发Android应用程序。
(2’)
在Eclipse中使用AndroidSDK提供的工具可以进行程序调试或对.apk文件进行签名等。
AndroidAPI是AndroidSDK的主体。
(1’)
AndroidSDK目录包含的子目录中build-tools:
包含了Android应用的编译工具;platforms:
存放AndroidSDKPlatforms平台相关的文件;add-ons:
存放Android的扩展库;sources:
存放AndroidAPI的源码;platform-tools:
存放平台工具;tools:
包含了用于操作SQLite数据库的程序、模拟器管理程序、对Android应用程序进行调试和模拟服务的批处理程序等工具。
(2’)
3、请简述AndroidAVD(参见29)
答:
AVD(androidvirtualdevice),表示Android虚拟设备即模拟器,是AndroidSDK提供的重要工具之一,用于在没有物理设备的情况下,在计算机上对Android程序进行开发、调试和仿真。
(3’)
AVD可以通过Eclipse菜单中Windows→AndroidAVDManager→new创建,通过AndroidAVDManager→start启动。
(1’)
在Android应用工程名的的快捷菜单中,选择“RunAs→AndroidApplication”可将工程部署到AVD并运行。
(1’)
4、请简述“I18n"警告性错误(35)
答:
I18n是国际化(Internationalization)的简称,国际化是指在设计软件时,将软件与特定语言及地区脱钩的过程。
(2’)
“I18n"警告性错误在程序的写法不符合国际化做法的时候发生。
(1’)
如文本框控件值的引用要通过引用字符串的变量的方法来实现(如 text=”@string/hello_world”/>)这是符合国际化的做法,如果不通过引用字符串的变量的方法,而直接用字符串常量代替(如 text=”字符串常量”/>)则不符合国际化做法,会导致“I18n"警告性错误——黄色的感叹号。 (2’) 5、请简述Activity组件与视图View(46、60) 答: Activity是安卓最重要的组件,负责用户界面的设计,Activity用户界面框架采用MVC模式(modelviewcontroller)。 (1’) 控制器负责接受并响应程序的外部动作 ;通过视图来反馈应用程序给用户的信息(通常是屏幕信息反馈);模型是应用程序的核心,用于保存数据和代码。 (1’) Android组件在清单文件中使用 Activity组件通过Intent对象激活。 (1’) Activity作为用户界面,提供了一些基本方法,如设置内容视图方法setContentView()、找控件方法findViewById()、关闭当前窗口方法finish()等。 (1’) Activity的一些扩展方法包括,用于数据共享存储的getPreference()方法、用于动态加载页面布局的getLayoutInflater()方法,开始后台服务的startService()方法、发送广播的sendBroadcast()方法、获得程序间数据共享的内容解析器的getContentResolver()方法等。 (1’) 每个Activity除了有创建onCreat()、销毁onDestroy()两个基本方法外,还有停止onStop()、激活onStart()、暂停onPause()、恢复onResume()等方法。 (1’) Activity在其生命周期有三种状态: 运行态、暂停态和停止态。 运行态是指Activity出现在屏幕的最上层的状态,此时用户通常可以获取焦点;暂停态是指Activity调用onPause()方法后出现的状态,其上还有处于运行态的Activity存在,并且Activity没有被完全遮住,即处于暂停态的Activity有一部分视图被用户所见;停止态是指当前Activity调用onStop()方法后出现的状态,此时它完全被处于运行态的Activity遮挡住,即用户界面完全不被用户所见。 6、请简述Service组件(46/171)(简不了啊妈妈) 答: Service服务类组件是Android提供的无用户界面、长时间在后台运行的组件。 Android组件在清单文件中使用 Service组件通过Intent对象激活。 Service有利于降低系统资源的开销,而且比Activity有更高的优先级。 Service服务的调用分为显式启动和隐式启动。 显式启动是指在创建Intent对象时,指明Service所在的类,并调用方法startService(Intent)启动Service。 隐式启动是指在注册Service的同时,内嵌标签 name属性指定了引用该服务的名称。 隐式启动的好处是不需要指明需要启动哪一个Activity,而由Android系统根据Intent的动作和数据来决定,这样有利于降低Android组件之间的耦合度,强调Android组件的可复用性。 若Service与调用它的组件在同一个应用程序中,则既可以使用显式启动,也可以使用隐式启动(显式启动代码简洁);若服务和调用服务的组件在不同的应用程序中,则服务只能用隐式启动方式。 Service有startService()的非绑定启动方式和bindService()的绑定启动方式两种。 Service的两种启动方式: 1、采用start开启服务 使用Service的步骤: (1).定义一个类继承Service (2).在Manifest.xml文件中配置该Service (3).使用Context的startService(Intent)方法启动该Service (4).不再使用时,调用stopService(Intent)方法停止该服务 使用这种start方式启动的Service的生命周期如下: onCreate()--->onStartCommand()(onStart()方法已过时)--->onDestory() 说明: 如果服务已经开启,不会重复的执行onCreate(),而是会调用onStart()和onStartCommand()。 服务停止的时候调用onDestory()。 服务只会被停止一次。 特点: 一旦服务开启跟调用者(开启者)就没有任何关系了。 开启者退出了,开启者挂了,服务还在后台长期的运行。 开启者不能调用服务里面的方法。 二、采用bind的方式开启服务 使用Service的步骤: (1).定义一个类继承Service (2).在Manifest.xml文件中配置该Service (3).使用Context的bindService(Intent,ServiceConnection,int)方法启动该Service (4).不再使用时,调用unbindService(ServiceConnection)方法停止该服务 使用这种bind方式启动的Service的生命周期如下: onCreate()--->onBind()--->onunbind()--->onDestory() 注意: 绑定服务不会调用onstart()或者onstartcommand()方法 特点: bind的方式开启服务,绑定服务,调用者挂了,服务也会跟着挂掉。 绑定者可以调用服务里面的方法。 服务的整个生命周期从调用onCreate()开始起,到onDestroy()返回时结束。 与Activity类似,服务也在onCreate()中完成初始设置,并在onDestroy()中释放所有剩余资源。 无论服务是通过startService()还是bindService()创建,都会为所有服务调用onCreate()和onDestroy()方法。 服务的有效生命周期从调用onStartCommand()或onBind()方法开始。 每种方法均有Intent对象,该对象分别传递到startService()或bindService()。 对于启动服务,有效生命周期与整个生命周期同时结束(即便是在onStartCommand()返回之后,服务仍然处于活动状态)。 对于绑定服务,有效生命周期在onUnbind()返回时结束。 启动服务 该服务在其他组件调用startService()时创建,然后无限期运行,且必须通过调用stopSelf()来自行停止运行。 此外,其他组件也可以通过调用stopService()来停止服务。 服务停止后,系统会将其销毁。 绑定服务 该服务在另一个组件(客户端)调用bindService()时创建。 然后,客户端通过IBinder接口与服务进行通信。 客户端可以通过调用unbindService()关闭连接。 多个客户端可以绑定到相同服务,而且当所有绑定全部取消后,系统即会销毁该服务。 (服务不必自行停止运行) 7、请简述BroadcastReceiver组件(46、191) 答: BroadcastReceiver,即广播接收者,用来接收来自系统或其它应用程序的广播,并作出回应。 广播接收者组件没有UI界面。 (2’) 在Android应用中,广播接收者类使用标签 动态注册是在程序中通过使用Context类提供的方法registerReceiver()完成的。 (2’) 创建广播接收者的方法有两种,一是标准的类继承方法,二是通过向导创建广播接收者。 (1’) BroadcastReceiver组件通过Intent对象激活。 一个BroadcastReceiver的生命周期从调用onReceiver(Context,Intent)方法开始,到该方法返回结束。 (1’) 8、请简述ContentProvider组件(46、251) 答: ContentProvider(内容提供者)是Android系统中不同应用程序之间共享数据的接口,用于保存和检索数据。 使用ContentProvider访问某个应用程序的数据,不必关心其数据的存储方式,其他应用程序可以通过一个ContentProvider类型的对象来操作某个程序的数据。 (2’) Android应用开发者将自己的持久化数据公开给其他应用程序有两种方法: 一是定义自己的ContentProvider子类,在清单文件里使用 (2’) 组件ContentProvider的四个CRUD方法的第一方法参数均为Uri类型。 创建ContentProvider子类时, (1’) 9、请简述意图对象intent(47) 答: Intent,意图、打算,用于对某个操作的抽象描述,包括动作名称、操作数据以及附加数据的描述。 在Android中,通过Intent对象实现组件之间相互调用的相关信息。 意图类Intent在Android程序设计中起纽带作用,负责传递信息和数据。 (1’) Android组件调用时,Intent除了封装意图名称,还封装了一些方法,主要包括构造方法、存放附加数据方法、获取数据方法和设置属性方法等。 (1’) Intent显式调用是通过使用显式意图明确要激活的组件,其方法是通过Intent提供的方法setClass()、setClassName()或setComponent()来指定的。 (1’) Intent隐式调用需要在清单文件中使用标签 (1’) 隐式意图就是在意图激活Activity、Service或BroadcastReceiver这三类组件时,不需要显式指出组件的名称,而是指定action及category,Android系统会根据其特征找到相应的组件并激活。 延其意图类PendingIntent一般用在Notification上,可以理解为延期执行的Intent,是对Intent的一个包装。 (1’) 10、请简述AIDL(185) 答: AIDL(androidinterfacedefinitionlanguage)是Android自定义的接口描述语言,可以简化进程间数据格式转换和数据交换的代码,通过定义Service内部的共有方法,允许在不同进程的调用者和Service之间相互传递数据。 (2’) AIDL允许定义函数参数的传递方向,有三种方向: 标识为in的参数将从调用者传递到远程服务中,标识为out的参数将从远程服务传递到调用者中,标识为inout的参数先从调用者传递到远程服务中,再从远程服务返回到调用者。 (2’) 使用AIDL跨进程调用(远程服务)的服务器端开发,其主要步骤如下: (1).创建接口描述文件; (2).建立一个服务类(service的子类)并实现接口; (3).在Service的绑定方法onBind(Intent)里返回实现了接口的实例对象; (4).在清单文件中注册AIDL对应的服务。 使用AIDL跨进程调用(远程服务)的客户端开发,其主要步骤如下: (1).创建与服务器端相同的接口描述文件; (2).在主Activity中,定义远程服务连接对象,在其内创建远程服务对象; (3).在主Activity中使用绑定方式调用远程服务,通过远程服务对象调用远程服务里的方法。 (2’) 11、请简述SQLite数据库的特点(218) 答: SQLite数据库适合于嵌入式系统,占用资源少、运行高效、可移植性好、并且提供了零配置的运行模式,是Android手机自带(即内置)的轻量级数据库软件,提供了对数据库的增删改查等操作。 (3’) SQLite数据库体系结构中最核心的部分是虚拟机,也称虚拟数据库引擎(virtualdatabaseengine,VDBE),用来解释字节代码,以完成对数据库的操作。 (2’) 12、请简述Android移动开发与javaWeb开发的异同。 (P5) 答: 相似之处: javaWeb开发中的用户界面UI与Android中的用户界面Activity是平行的;(1’) javaWeb网站开发和Android都有UI设计;(1’) Android开发是java开发的一个分支,Android类库用了java中的部分常用类库;(1’) 相异之处: 二者的工程文件结构有很大的差异;(1’) 就难易程度来说,Android开发比javaWeb开发要简单容易很多;(1’) 13、请简述Android系统架构(参见P14) 答: Anndroid是基于Linux内核的软件平台和操作系统,采用了软件堆栈架构,共分为四层: Linux内核层、Anndroid函数库及运行时层、应用程序框架层和应用程序层。 (2’) Linux内核是硬件和其他软件堆层之间的一个抽象隔离层,提供由操作系统内核管理的底层基础功能,,主要有安全机制、内存管理、进程管理、网络协议栈和驱动程序等。 Anndroid函数库及运行时是第二层,位于Linux内核之上,也称中间件层。 Anndroid运行时由核心库和Dalvik虚拟机构成。 核心库为开发人员提供了Android系统的特有函数功能和java语言的基本函数功能,Dalvik虚拟机采用适合内存和处理器受限的专用格式。 应用程序框架层提供了Android平台的管理功能和组件的重用机制,包括Activity管理、资源管理、位置管理、通知消息管理、View系统和内容提供者等。 Android的三大核心功能如下: (1).View: 提供了绘制图形,处理触摸、按键事件等功能; (2).ActivicyManagerService: 简称为AMS,主要功能是管理所有应用程序的Activity、内存管理等,AMS作为一种系统级服务管理所有Activity,当操作(启动或停止)某个Activity时,必须报告给AMS,而不能“擅自处理”,在内存不足时,AMS可能主动杀死后台的Activity; (3).WindowManagerService: 简称WMS,主要功能是为所有应用程序分配窗口并管这些窗口。 应用程序层提供了一系列核心应用程序,如打电话、浏览器、联系人、相册、地图和电子市场等。 (3’) 14、请简述Activity的生命周期(64) Activity在其生命周期有三种状态: 运行态、暂停态和停止态。 (1’) 运行态是指Activity出现在屏幕的最上层的状态,此时用户通常可以获取焦点;(1’) 暂停态是指Activity调用onPause()方法后出现的状态,其上还有处于运行态的Activity存在,并且Activity没有被完全遮住,即处于暂停态的Activity有一部分视图被用户所见;(1’) 停止态是指当前Activity调用onStop()方法后出现的状态,此时它完全被处于运行态的Activity遮挡住,即用户界面完全不被用户所见。 (1’) Activity的生命周期 15、请简述服务的显示启动和隐式启动(175) Service服务的调用分为显式启动和隐式启动。 显式启动是指在创建Intent对象时,指明Service所在的类,并调用方法startService(Intent)启动Service。 (2’) 隐式启动是指在注册Service的同时,内嵌标签 name属性指定了引用该服务的名称。 (2’) 隐式启动的好处是不需要指明需要启动哪一个Activity,而由Android系统根据Intent的动作和数据来决定,这样有利于降低Android组件之间的耦合度,强调Android组件的可复用性。 若Service与调用它的组件在同一个应用程序中,则既可以使用显式启动,也可以使用隐式启动(显式启动代码简洁);若服务和调用服务的组件在不同的应用程序中,则服务只能用隐式启动方式。 (1’) 程序(2程序填空2程序设计) AlertDialogP72绑定服务方式P179广播注册P196SQLiteP223 1.消息提醒对话框AlertDialogP72 2.绑定服务方式P179
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 安卓移动开发简答题 程序 移动 开发 答题
![提示](https://static.bdocx.com/images/bang_tan.gif)