安卓开发考试复习题含答案.docx
《安卓开发考试复习题含答案.docx》由会员分享,可在线阅读,更多相关《安卓开发考试复习题含答案.docx(14页珍藏版)》请在冰豆网上搜索。
![安卓开发考试复习题含答案.docx](https://file1.bdocx.com/fileroot1/2023-1/21/907ea091-7586-48d7-8914-7806993f675a/907ea091-7586-48d7-8914-7806993f675a1.gif)
安卓开发考试复习题含答案
1安卓核心组件有哪些?
Whatarethe?
Android?
corecomponents?
提供界面显示的Activtiy,
提供后台计算的Service,
提供进程间通信的Intent
提供广播接收的BroadcastRsceiver.
2安卓keyfeatures有哪些?
Intergratedbrowser
SQLite
Mediasupport
Wirelessservices
DVM
Applicationframework
Richdevelopmentenvironment
3安卓用什么数据库?
Android?
with?
what?
database?
SQLite
4几个流行的移动平台各自的IDE是什么?
IOSXcode
AndroidEclipse
WindowsphoneVisualStudio
黑莓Native平台
5R.java是什么文件?
干什么用的?
在什么地方?
WhatisR.javafile?
?
Whatfor?
?
Inwhatplace?
R.java文件是Android项目自动生成的终态类
R.java文件除了有自动标识资源的"索引"功能之外,还有另一个主要的功能,当"res"目录中的某个资源在应用中没有被使用到,在该应用被编译的时候系统就不会把对应的资源编译到该应用的APK包中,这样可以节省Android手机的资源。
"gen/"目录下
6安卓平台架构分为几层?
各是什么?
TheAndroidplatformstructureisdividedintoseverallayers?
Eachiswhat?
Android系统分为四层,从下往上分别是
LinuxKernel,
Libraries和AndroidRuntime,
ApplicationFramework,
Applications.
7创建一个UI并运行之,有哪几个步骤?
创建一个Activity
把UI和Activity关联起来
注册这个Activity
8Intent有几个组件?
各是干什么用的?
哪些组件是必须存在的,哪些是可选的,在Manifest中intentfilter是如何声明的?
Componmentname(接收者名字)
Action(指定需要被执行的动作)
Data(指定用于操作的数据)
Category(指定目标应用程序组件的行为)
Extras
Flags
定义在
9Activity的生命周期有哪些状态?
状态转换时调用的方法各是什么?
Whatisthe?
stateof?
theActivitylifecycle?
?
Statetransitionmethodcalledwhen?
all?
is?
what?
一个Activity有三种状态:
Running,运行在前台(在当前Activity栈的栈顶)。
Paused,失去了焦点但是仍然对用户可见,比如有其他的Activity在它之上,或者透明或者没有遮住整个屏幕。
Stopped,被其他Activity完全覆盖,需要注意的是包括暂停状态在内,这两种状态都仍然保存了所有状态信息,直到被系统终止。
1
2
3
4
5
6
7
void?
onCreate()
void?
onStart()
void?
onRestart()
void?
onResume()
void?
onPause()
void?
onStop()
void?
onDestroy()
10同一个应用之间Activity互相调用要用什么Intent(隐式、显式?
还是什么?
)?
WithanapplicationoftheActivity?
calleachother?
tousewhatIntent(implicit,explicit?
Orwhat?
)?
显式Intent直接用组件的名称定义目标组件,这种方式很直接。
但是由于开发人员往往并不清楚别的应用程序的组件名称,因此,显式Intent更多用于在应用程序内部传递消息。
比如在某应用程序内,一个Activity启动一个Service。
11什么是DalvikVirtualMachine?
(Dalvik虚拟机器)是一种暂存器型态的虚拟机器。
简称DVM,DVM在撰写开发时就已经设想用最少的记忆体资源来执行,以及同时可执行多个VM为前提来开发的。
大部分安卓应用程序都是用Java编写的,然后被编译成字节码,字节码通过dilvik虚拟机在运行环境中被解释执行
12安卓日志类Log有几种常用方法?
各用于什么输出什么信息?
哪些信息只应该在开发的时候才允许输出?
Errors应用程序抛出的异常
Warnings
Informationalmessages
Debugmessages
Verbosemessages
在开发人员调试应用程序是输出
13什么是ContentProvider?
内容提供器是应用程序之间共享数据的接口,
Acontentprovidercanstoreandretrivedatamakingitaccessibletoallapplication
比如:
联系人提供器专为不同应用程序提供联系人数据;设置提供器专为不同应用程序提供系统配置信息,包括内置的设置应用程序等。
14什么是BroadcastReceiver?
①广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。
②应用程序可以拥有任意数量的广播接收器以对所有它感兴趣的通知信息予以响应。
所有的接收器均继承自BroadcastReceiver基类。
③广播接收器没有用户界面。
然而,它们可以启动一个activity来响应它们收到的信息,或者用NotificationManager来通知用户。
通知可以用很多种方式来吸引用户的注意力──闪动背灯、震动、播放声音等等。
一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。
15什么是Intent?
Intent(意图)主要是解决Android应用的各项组件之间的通讯。
Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用。
16什么是Service,Service有哪些状态?
Services是一个没有任何UI能够在后台长时间运行的应用程序组件
Service是android?
系统中的四大组件之一(Activity、Service、BroadcastReceiver、ContentProvider),它跟Activity的级别差不多,但不能自己运行只能后台运行,并且可以和其他组件进行交互。
Started一个activity调用startService()来启动它
Bound一个activity调用bindService()来绑定它
17安卓的资源有哪些类型?
各放在什么位置?
Bool用XML格式定义的布尔值文件位置:
res/values/filename.xml
Color用XML格式定义的颜色值文件位置:
res/values/colors.xml
Dimens用XML格式定义的数量值文件位置:
res/values/filename.xml
ID用XML格式定义的紫苑唯一ID文件位置:
res/values/filename.xml
Integer用XML格式定义的整数资源文件位置:
res/values/filename.xml
IntegerArray用XML格式定义的整数数组文件位置:
res/values/filename.xml
TypedArray用XML格式定义的TypedArray文件位置:
res/values/filename.xml
18IPC是什么意思?
和Intent有什么关系?
Inter-ProcessCommunication
IPC是内部进程通信的简称,是共享"命名管道"的资源。
Android中的IPC机制是为了让Activity和Service之间可以随时的进行交互,故在Android中该机制,只适用于Activity和Service之间的通信,类似于远程方法调用,类似于C/S模式的访问。
通过定义AIDL接口文件来定义IPC接口。
Servier端实现IPC接口,Client端调用IPC接口本地代理
19Broadcast有哪几种?
区别?
(8.14)
Normalbroadcasts
Broadcastssenttoallinterestedreceiversatthesametimeandthereceiversruninanudefinedorderoftenatthesametime
Orderedbroadcasts
Broadcastsaresenttialltheinterestedreceiversinapeoperorder,whichmeansthatabroadcastsisdeliveredtoonereceiversatatime
20Orderedbroadcast如何决定接收者的顺序?
Ordered?
broadcast?
howtodecide?
the?
order?
Tocontroltheorderinwhichalltheinterestedreceiversrun,youcanusetheandroid:
priorityattributeofthereceiver’sintent-filterelement.However,receiverswiththesameprioritywillberuninanarbitraryorder(无序)
21安卓中的Permissions,包括怎么向系统申请权限,怎么用权限保护自己等(14.9-14.11)
在Manifest.xml文件中声明一个
然后在(或者其他)中加入android:
permission=”permissionname”属性
这样以后其他应用程序使用这个程序需要先申请对应权限
22安卓原生支持几种IO机制?
各自有什么特点?
Android?
nativesupportfor?
severalIOmechanisms?
?
Therespective?
characteristicsofwhat?
23安卓原生的contentprovider有哪些?
Browser用于访问与浏览历史,书签,搜索记录相关的数据
Contacts用于访问和修改nativecontactdetailsdatabase
Calllog用于访问通话记录
Mediastore访问设备上的多媒体文件(multimediafile)
Settings用于访问和修改设备的参数设置,蓝牙,铃声
24如何创建一个contentprovider?
打开EOE工程,创建一个新的Eoe类,扩展ContentProvider。
重写onCreate、getType、query、insert、delete和update方法。
25安卓下访问一个文件,要写到文件最后,要用什么模式打开文件?
Toaccessafile?
tobe?
writtentoafile?
forAndroid,?
finally,?
toopenthe?
filewithwhatpattern?
MODE_APPEND如果不存在就创建
MODE_PRIVATE创建的文件只只让本程序访问
MODE_WORLD_READABLE
MODE_WORLD_WRITEABLE
26判断SD卡是否可用,用什么方法?
JudgingtheSDcardisavailable,withwhatmethod?
类
Stringstate=Environment.getExternalStorageState()//获取SD卡的状态
MEDIA_MOUNTED表示SD卡存在并且挂载,可以读或者写
MEDIA_REMOVED表示没有检测到SD卡
MEDIA_UNMOUNTED表示SD卡存在但是没有挂载
MEDIA_MOUNTED_READ_ONLY表示SD卡存在且挂载,但是只读
27SharedPreferences是什么?
有什么用?
SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长整形、Int整形、String字符串型的保存
28要从远端URL播放多媒体文件用什么stream?
HTTPstreaming
29创建一个安卓数据库都有哪些途径?
Create?
anAndroid?
databaseshave?
whatway?
2种
通过ShellCommands:
打开adbshell,使用cd命令转到需要创建数据库的文件夹下,使用sqlite3直接创建一个数据库
通过代码创建:
使用类
SQLiteDatabasesqlDB;
SqlDB=openOrCreateDatabase(NAME,SQLiteDatabase.CREATE_IF_NECESSARY,NULL);
SqlDB.execSQL(“CREATETABLE”+TABLE_NAME+“idINTEGERPRIMARYKEY,NameTEXT,PhoneLONG”)
30安卓有几种布局管理器(Layout)?
各有什么特点?
Android?
hasseveral?
layoutmanager(Layout)?
?
Whatarethecharacteristics?
5种
1.FrameLayout:
children按照从左上开始的顺序排列,主要用于tabedview或者图片切换功能;最简单的布局模型,在这种布局下每个添加的子控件都被放在布局的左上角,并覆盖在前一子控件的上层。
2.线性布局(LinearLayout):
children排列成一行多列或者一列多行的形式,应该是应用程序中最常用的布局方式,它提供了控件水平或者垂直排列的模型,同时我们可通过设置子控件的weight布局参数控制各个控件在布局中的相对大小。
3.相对布局(RelativeLayout):
children是相互之间相关位置或者和他们的parent位置相关,参照控件可以是父控件,也可以是其他子控件,但被参照的控件必须要在参照它的控件之前定义。
相对布局模型所涉及的属性设置比较多,但并不复杂。
4.TableLayout:
children按照行列的排序,类似于html的table;模型以行列的形式管理子控件,每一行为一个TableRow的对象,也可为一个View的对象。
TableRow可添加子控件,每添加一个子控件为一列。
5.坐标布局(AbsoluteLayout)的子控件需要指定相对于此坐标布局的横、纵坐标值,否则将会像FrameLayout那样被排在左上角。
手机应用需要适用于不同的屏幕大小,而这种布局模型不能自适应屏幕尺寸大小,所以应用得相当少。
31按下button,被调用的回调函数是什么?
(4.8)
Pressbutton,iswhatisthecallbackfunctioniscalled?
onTouchEvent()
32安卓内建的theme有哪些?
Whatarethe?
Android?
builtintheme?
Theme.Black:
Theme.Light:
Theme.Translucent:
Theme.Dialog:
Theme.Holo:
33各种对话框共同的父类是是什么?
Variousdialogcommonparentclassiswhat?
Dialog
34View类是什么?
起什么作用?
WhatisView?
Whatistherole?
View作为UI的最基本的元件,负责绘制UI元素和界面动作的监听。
可以认为是Button,文本域等界面元素或者其他View的容器。
29OptionsMenu是什么?
ContextMenu是什么?
Android手机上有个Menu按键,当Menu按下的时候,每个Activity都可以选择处理这一请求,在屏幕底部弹出一个菜单,这个菜单我们就叫做选项菜单(OptionsMenu)
Android的上下文菜单(ContextMenu)
30Android原生支持哪几种Dialog?
Whatkindsof?
nativeAndroid?
support?
Dialog?
(10.17)
AlertDialog提示性
ProgressDialog进度条
DatePickerDialog允许用户选择一个日期
TimePickerDialog允许用户选择一个时间
31安卓画图相关的主要有哪3个类?
各自作用?
Androiddrawingrelatedwhatarethe3mainclasses?
Theirrole?
1)Color:
颜色对象,相当于现实生活中的‘调料’
2)Paint:
画笔对象,相当于现实生活中画图用的‘笔’————主要的还是对‘画笔’进行设置
3)Canvas:
画布对象,相当于现实生活中画图用的‘纸或布’
三者相结合,就能画出基本的图形
32复合控件(compoundviews)是什么?
复合控件是原子的、可重复使用的widget,它包含多个子控件,以某种布局方式联系在一起。
33ADB是什么?
ADB工具一般存放在什么位置?
WhatisADB?
ADBtoolsaregenerallystoredinwhatposition?
adb是androidsdk里的一个工具,用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如G1手机).它的主要功能有:
*运行设备的shell(命令行)
*管理模拟器或设备的端口映射
*计算机和设备之间上传/下载文件
*将本地apk软件安装至模拟器或android设备
当前用户的工作目录
34安卓开发环境包括哪些东西?
Androiddevelopmentenvironmentincludeswhat?
Deviceemulator设备模拟器
Debuggingtools调试工具
Memoryandperformanceprofiler内存及性能分析工具
Eclipse集成开发环境以及安卓开发插件
35安卓应用程序有哪些类型?
WhattypeofAndroidapplications?
前台应用程序后台应用程序间歇式应用程序小组件
36和是什么?
各自干什么用的?
使用权限用来保护用户资源的安全
利用特征AndroidMarket会根据uses-feature过滤所有你设备不支持的应用。
37周期性Alarm用什么方法创建?
TheperiodicAlarmwithwhatmethodtocreate?
setRepeating()
38安卓如何获得位置提供者,具体方法类有哪些?
安卓支持哪几种LocationProvider?
GPS
Celltowertriangulation
Wi-Fihosspots
LocationManager
Androidhowtoobtainlocationprovider,whatarethespecificmethods?
39安卓收到一个短信,会触发什么样的broadcast?
SMS_RECEIVED
40什么是ADT-Plugin?
ADT(Android开发工具包)是一个为Eclipse集成开发环境设计的有效、快速构建Android应用程序的插件。
ADT扩展了Eclipse的功能,让您快速建立新的Android项目,创建一个应用程序UI,添加基于Android框架API的程序包,使用SDK工具调试你的程序,甚至导出签名的(或未签名的)apk格式的文件来发布你的应用程序。
发送短信,拨叫某个号码(可以是直接拨叫、也可以是启动拨号面板,不考虑权限问题)
直接
拨号面板dialIntent=newIntent()
发送短信:
privateEditTextphone_number_editText
privateEditTextsms_content_editText;
privateButtonsend_sms_button;
send_sms_button.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewarg0){
Stringphone_number=phone_number_editText.getText().toString().trim();
Stringsms_content=sms_content_editText.getText().toString().trim();
if(phone_number.equals("")){
Toast.makeText(MainActivity.this,“请输入手机号码”,Toast.LENGTH_LONG).show();
}else{
SmsManagersmsManager=SmsManager.getDefault();
if(sms_content.length()>70){//当短信超过SMS消息的最大长度时,将短信分割为几块。
Listcontents=smsManager.divideMessage(sms_content);
for(Stringsms:
contents){
smsManager.sendTextMessage(phone_number,null,sms,null,null);
}
}else{
smsManager.sendTextMessage(phone_number,null,sms_content,null,null);
}
Toast.makeText(MainAc