安卓移动开发简答题+程序Word格式.docx

上传人:b****1 文档编号:5999873 上传时间:2023-05-05 格式:DOCX 页数:15 大小:471.34KB
下载 相关 举报
安卓移动开发简答题+程序Word格式.docx_第1页
第1页 / 共15页
安卓移动开发简答题+程序Word格式.docx_第2页
第2页 / 共15页
安卓移动开发简答题+程序Word格式.docx_第3页
第3页 / 共15页
安卓移动开发简答题+程序Word格式.docx_第4页
第4页 / 共15页
安卓移动开发简答题+程序Word格式.docx_第5页
第5页 / 共15页
安卓移动开发简答题+程序Word格式.docx_第6页
第6页 / 共15页
安卓移动开发简答题+程序Word格式.docx_第7页
第7页 / 共15页
安卓移动开发简答题+程序Word格式.docx_第8页
第8页 / 共15页
安卓移动开发简答题+程序Word格式.docx_第9页
第9页 / 共15页
安卓移动开发简答题+程序Word格式.docx_第10页
第10页 / 共15页
安卓移动开发简答题+程序Word格式.docx_第11页
第11页 / 共15页
安卓移动开发简答题+程序Word格式.docx_第12页
第12页 / 共15页
安卓移动开发简答题+程序Word格式.docx_第13页
第13页 / 共15页
安卓移动开发简答题+程序Word格式.docx_第14页
第14页 / 共15页
安卓移动开发简答题+程序Word格式.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

安卓移动开发简答题+程序Word格式.docx

《安卓移动开发简答题+程序Word格式.docx》由会员分享,可在线阅读,更多相关《安卓移动开发简答题+程序Word格式.docx(15页珍藏版)》请在冰点文库上搜索。

安卓移动开发简答题+程序Word格式.docx

存放AndroidSDKPlatforms平台相关的文件;

add-ons:

存放Android的扩展库;

sources:

存放AndroidAPI的源码;

platform-tools:

存放平台工具;

tools:

包含了用于操作SQLite数据库的程序、模拟器管理程序、对Android应用程序进行调试和模拟服务的批处理程序等工具。

3、请简述AndroidAVD(参见29)

AVD(androidvirtualdevice),表示Android虚拟设备即模拟器,是AndroidSDK提供的重要工具之一,用于在没有物理设备的情况下,在计算机上对Android程序进行开发、调试和仿真。

AVD可以通过Eclipse菜单中Windows→AndroidAVDManager→new创建,通过AndroidAVDManager→start启动。

在Android应用工程名的的快捷菜单中,选择“RunAs→AndroidApplication”可将工程部署到AVD并运行。

 

4、请简述“I18n"

警告性错误(35)

I18n是国际化(Internationalization)的简称,国际化是指在设计软件时,将软件与特定语言及地区脱钩的过程。

“I18n"

警告性错误在程序的写法不符合国际化做法的时候发生。

如文本框控件值的引用要通过引用字符串的变量的方法来实现(如<

TextView...android:

text=”@string/hello_world”/>

)这是符合国际化的做法,如果不通过引用字符串的变量的方法,而直接用字符串常量代替(如<

text=”字符串常量”/>

)则不符合国际化做法,会导致“I18n"

警告性错误——黄色的感叹号。

5、请简述Activity组件与视图View(46、60)

Activity是安卓最重要的组件,负责用户界面的设计,Activity用户界面框架采用MVC模式(modelviewcontroller)。

控制器负责接受并响应程序的外部动作 

通过视图来反馈应用程序给用户的信息(通常是屏幕信息反馈);

模型是应用程序的核心,用于保存数据和代码。

Android组件在清单文件中使用<

activity>

注册。

Activity组件通过Intent对象激活。

Activity作为用户界面,提供了一些基本方法,如设置内容视图方法setContentView()、找控件方法findViewById()、关闭当前窗口方法finish()等。

Activity的一些扩展方法包括,用于数据共享存储的getPreference()方法、用于动态加载页面布局的getLayoutInflater()方法,开始后台服务的startService()方法、发送广播的sendBroadcast()方法、获得程序间数据共享的内容解析器的getContentResolver()方法等。

每个Activity除了有创建onCreat()、销毁onDestroy()两个基本方法外,还有停止onStop()、激活onStart()、暂停onPause()、恢复onResume()等方法。

Activity在其生命周期有三种状态:

运行态、暂停态和停止态。

运行态是指Activity出现在屏幕的最上层的状态,此时用户通常可以获取焦点;

暂停态是指Activity调用onPause()方法后出现的状态,其上还有处于运行态的Activity存在,并且Activity没有被完全遮住,即处于暂停态的Activity有一部分视图被用户所见;

停止态是指当前Activity调用onStop()方法后出现的状态,此时它完全被处于运行态的Activity遮挡住,即用户界面完全不被用户所见。

6、请简述Service组件(46/171)(简不了啊妈妈)

Service服务类组件是Android提供的无用户界面、长时间在后台运行的组件。

service>

Service组件通过Intent对象激活。

Service有利于降低系统资源的开销,而且比Activity有更高的优先级。

Service服务的调用分为显式启动和隐式启动。

显式启动是指在创建Intent对象时,指明Service所在的类,并调用方法startService(Intent)启动Service。

隐式启动是指在注册Service的同时,内嵌标签<

Intent-filter>

及<

action>

,<

标签的android:

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的方式开启服务

(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界面。

在Android应用中,广播接收者类使用标签<

receiver>

在清单文件中注册,为静态注册方式,只能具有相应权限的广播接收者才能接收广播、获取Intent对象中的数据。

动态注册是在程序中通过使用Context类提供的方法registerReceiver()完成的。

创建广播接收者的方法有两种,一是标准的类继承方法,二是通过向导创建广播接收者。

BroadcastReceiver组件通过Intent对象激活。

一个BroadcastReceiver的生命周期从调用onReceiver(Context,Intent)方法开始,到该方法返回结束。

8、请简述ContentProvider组件(46、251)

ContentProvider(内容提供者)是Android系统中不同应用程序之间共享数据的接口,用于保存和检索数据。

使用ContentProvider访问某个应用程序的数据,不必关心其数据的存储方式,其他应用程序可以通过一个ContentProvider类型的对象来操作某个程序的数据。

Android应用开发者将自己的持久化数据公开给其他应用程序有两种方法:

一是定义自己的ContentProvider子类,在清单文件里使用<

provider>

标签注册,并实现CRUD(增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete));

二是将当前应用程序的数据添加到已有的ContentProvider中。

组件ContentProvider的四个CRUD方法的第一方法参数均为Uri类型。

创建ContentProvider子类时,<

标签中name为必填属性,表示ContentProvider子类的名称;

authorities也是必填属性,表示其他应用程序访问该ContentProvider时的路径;

permission是任选属性,用于对本应用提供的数据访问的限定,省略permission属性时,表示任何应用都可以访问本应用提供的数据。

9、请简述意图对象intent(47)

Intent,意图、打算,用于对某个操作的抽象描述,包括动作名称、操作数据以及附加数据的描述。

在Android中,通过Intent对象实现组件之间相互调用的相关信息。

意图类Intent在Android程序设计中起纽带作用,负责传递信息和数据。

Android组件调用时,Intent除了封装意图名称,还封装了一些方法,主要包括构造方法、存放附加数据方法、获取数据方法和设置属性方法等。

Intent显式调用是通过使用显式意图明确要激活的组件,其方法是通过Intent提供的方法setClass()、setClassName()或setComponent()来指定的。

Intent隐式调用需要在清单文件中使用标签<

intent-filter>

(意图过滤器)来指定动作名称。

隐式意图就是在意图激活Activity、Service或BroadcastReceiver这三类组件时,不需要显式指出组件的名称,而是指定action及category,Android系统会根据其特征找到相应的组件并激活。

延其意图类PendingIntent一般用在Notification上,可以理解为延期执行的Intent,是对Intent的一个包装。

10、请简述AIDL(185)

AIDL(androidinterfacedefinitionlanguage)是Android自定义的接口描述语言,可以简化进程间数据格式转换和数据交换的代码,通过定义Service内部的共有方法,允许在不同进程的调用者和Service之间相互传递数据。

AIDL允许定义函数参数的传递方向,有三种方向:

标识为in的参数将从调用者传递到远程服务中,标识为out的参数将从远程服务传递到调用者中,标识为inout的参数先从调用者传递到远程服务中,再从远程服务返回到调用者。

使用AIDL跨进程调用(远程服务)的服务器端开发,其主要步骤如下:

(1).创建接口描述文件;

(2).建立一个服务类(service的子类)并实现接口;

(3).在Service的绑定方法onBind(Intent)里返回实现了接口的实例对象;

(4).在清单文件中注册AIDL对应的服务。

使用AIDL跨进程调用(远程服务)的客户端开发,其主要步骤如下:

(1).创建与服务器端相同的接口描述文件;

(2).在主Activity中,定义远程服务连接对象,在其内创建远程服务对象;

(3).在主Activity中使用绑定方式调用远程服务,通过远程服务对象调用远程服务里的方法。

11、请简述SQLite数据库的特点(218)

SQLite数据库适合于嵌入式系统,占用资源少、运行高效、可移植性好、并且提供了零配置的运行模式,是Android手机自带(即内置)的轻量级数据库软件,提供了对数据库的增删改查等操作。

SQLite数据库体系结构中最核心的部分是虚拟机,也称虚拟数据库引擎(virtualdatabaseengine,VDBE),用来解释字节代码,以完成对数据库的操作。

12、请简述Android移动开发与javaWeb开发的异同。

(P5)

相似之处:

javaWeb开发中的用户界面UI与Android中的用户界面Activity是平行的;

javaWeb网站开发和Android都有UI设计;

Android开发是java开发的一个分支,Android类库用了java中的部分常用类库;

相异之处:

二者的工程文件结构有很大的差异;

就难易程度来说,Android开发比javaWeb开发要简单容易很多;

13、请简述Android系统架构(参见P14)

Anndroid是基于Linux内核的软件平台和操作系统,采用了软件堆栈架构,共分为四层:

Linux内核层、Anndroid函数库及运行时层、应用程序框架层和应用程序层。

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,主要功能是为所有应用程序分配窗口并管这些窗口。

应用程序层提供了一系列核心应用程序,如打电话、浏览器、联系人、相册、地图和电子市场等。

14、请简述Activity的生命周期(64)

Activity的生命周期

15、请简述服务的显示启动和隐式启动(175)

程序(2程序填空2程序设计)

AlertDialogP72绑定服务方式P179广播注册P196SQLiteP223

1.消息提醒对话框AlertDialogP72

2.绑定服务方式P179

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2