Android复习
- 格式:docx
- 大小:17.82 KB
- 文档页数:1
安卓期末考试知识总结第一章:Android基础入门习题总结1.Android系统采用分层架构,由高到低分为4层,主要为:应用程序层、应用程序框架层、核心类库、Linux内核2.在Android项目程序开发完成后中,必须__打包成_正式的Android安装文件,才能发布到互联网上让用户下载使用。
3.Android 工程中src目录下存放_java__文件重点知识1.应用层:应用层是核心应用程序的集合。
手机上所有的应用都属于这一层,程序,短信程序。
2.应用程序框架层:应用程序框架层主要提供构建应用程序时用到的各种API,例如:活动管理器、通知管理器、内容提供者3.核心类库:核心类库中包含了系统库及Android运行环境。
(1)系统库主要通过c/c++库为Android系统提供主要的特性支持(2)Android运行时库主要提供一些核心库,允许开发者使用java语言来编写Android应用程序4.Linux内核:为Android·设备的各种硬件提供底层的驱动,如显示驱动、音频驱动、蓝牙驱动、电源管理驱动Android工程中的assets目录主要存放一些文件资源,这些文件会被原封不动的打包到APK文件中更为细分的5层架构:应用程序层、应用程序框架层、核心类库、硬件抽象层 (HAL)、Linux内核硬件抽象层 (HAL) 提供标准界面,向更高级别的 Java API 框架显示设备硬件功能。
HAL 包含多个库模块,其中每个模块都为特定类型的硬件组件实现一个界面,例如相机或蓝牙模块。
当框架 API 要求访问设备硬件时,Android 系统将为该硬件组件加载库模块。
第二章:Android常见桌面布局&第三章:Android常见界面控件知识总结1.Android应用的界面是由View 对象和 ViewGroup 对象构建而成的。
ViewGroup继承自View,ViewGroup作为容器盛装界面中的其他控件Android应用的每个界面的根元素必须有且只有一个ViewGroup容器Android常见布局和特点:Android中常见的五种布局:相对布局(RelativeLayout)、线性布局(LinearLayout)、表格布局(TableLayout)、帧布局(FrameLayout)、约束布局(ConstraintLayout)1.相对布局(RelativeLayout):相对布局是一种基于相对位置的布局方式,可以通过设置组件相对于其他组件或父容器的位置来实现布局。
Android一、选择题1. 下面关于Android dvm的进程和Linux的进程,应用程序的进程说法正确的是?(选择一项) ( D)A. DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念.B.DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux中的一个进程,所以说不是一个概念C.DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM 不一定都是在Linux 中的一个进程,所以说不是一个概念.D.DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM 都是在Linux 中的一个进程,所以说可以认为是同一个概念.2.下列选项哪个不是Activity启动的方法?(选择一项)( A)A. goToActivityB. startActivityC. startActivityFromChildD. startActivityForResult4.下列哪一个不属于Activity的生命周期方法(选择一项)( A)A. onIniB. onStartC. onStopD. onPause5.对于XML布局文件中的视图控件,layout_width属性的属性值不可以是什么?(选择一项) ( D)A. match_parentB. fill_parentC. wrap_contentD. match_content6.对一些资源以及状态的操作保存,最好是保存在Activity生命周期的哪个函数中进行?(选择一项) ( A)A. onStartB. onPauseC. onCreateD. onResume7.关于视图控件的常用事件Android.docx描述中,不正确的是?(选择一项) ( A)A. Click事件只能使用在按钮上,表示按钮的点击动作B.当TextView类视图控件失去焦点或获得焦点时,将触发FocusChange事件C. 当单选框中某一选项被选择时,将触发CheckedChange事件D.当多选框中某一选项被选择时,将触发CheckedChange事件题目8.以下关于Android应用程序的目录结构描述中,不正确的是(选择一项) ( D)A. src目录是应用程序的主要目录,由Java类文件文件组成B. assets目录是原始资源目录,该目录中的内容将不会被R类所引用C. res目录是应用资源目录,该目录中的所有资源内容都会被R类所索引D. AndroidManifest.xml文件是应用程序目录清单文件,该文件由ADT自动生成,不需要程序员手动修改9.下列关于XML布局文件在Java代码中被引用的说明中,不正确的是(选择一项) ( B)A.在Activity中,可以使用findViewById( )方法,通过资源id,获得指定视图元素B.在Activity中,可以使用R.drawable-system.***方式引用Android系统所提供的图片资源C. 在Activity中,可以使用setContentView( )方法,确定加载哪一个布局文件D.可以使用View类的findViewById( )方法,获得当前View对象中的某一个视图元素10.下列关于Android布局文件常用的长度/大小单位的描述中,不正确的是(选择一项) ( C)A. dp是设备独立像素,不依赖于设备,是最常用的长度单位B. sp代表放大像素,主要用于字体大小的显示C. px是像素单位,在不同的设备上显示效果相同,因此推荐在布局中使用该单位D.在设置空间长度等相对距离时,推荐使用dp单位,该单位随设备密度的变化而变化11.下列哪一个选项不属于Android中预定义的布局方式(选择一项)( A)A. TabLayoutB. RelativeLayoutC. AbsoluteLayoutD. LinearLayout13.下列哪一款移动设备搭载的是Android平台?(选择一项)( A)A. NOKIA手机B.小米手机C. iPhone手机D. iPad14.下列关于ListView使用的描述中,不正确的是?(选择一项)( B)A.要使用ListView,必须为该ListView使用Adpater方式传递数据B.要使用ListView,该布局文件对应的Activity必须继承ListActivityC. ListView中每一项的视图布局既可以使用内置的布局,也可以使用自定义的布局方式D. ListView中每一项被选中时,将会触发ListView对象的ItemClick事件16.在android 中使用Menu 时可能需要重写的方法有?(选择两项)( AB)A. onOptionsItemSelected()B. onCreateOptionsMenu()C. onItemSelected()D. onCreateMenu()17.下列关于内存回收的说明,哪个是正确的?(选择一项)( C)A.程序员必须创建一个线程来释放内存B.内存回收程序允许程序员直接释放内存C.内存回收程序负责释放无用内存D.内存回收程序可以在指定的时间释放内存对象18.Math.round(11.5)等于多少(). Math.round(-11.5)等于多少?(选择一项) ( C)A. 11 ,-11B. 11 ,-12C. 12 ,-11D. 12 ,-1219.下列程序段:void complicatedexpression_r(){int x=20,y=30;boolean b;b=x>50&&y>60||x>50&&y60||x(选择一项) ( D)A. 1B. 0C. TRUED. FALSE21.android 关于service生命周期的onCreate()和onStart()说法正确的是?(选择两项) ( BD)A.如果service已经启动,将先后调用onCreate()和onStart()方法B.当第一次启动的时候先后调用onCreate()和onStart()方法C.当第一次启动的时候只会调用onCreate()方法D.如果service已经启动,只会执行onStart()方法,不再执行onCreate()方法26.下列哪个是AbsoluteLayout(绝对布局) 中特有的属性?(B)A. android:layout_heightB. android:layout_xC. android:layout_aboveD. android:layout_toRightOf31.android 是如何组织Activity 的?(选择一项) ( A)A.以栈的方式组式ActivityB.以队列的方式组织ActivityC.以树形方式组织ActivityD.以链式方式组织Activity32.android 中下列属于Intent的作用的是?(选择一项)( D)A.处理一个应用程序整体性的工作B.是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失C.实现应用程序间的数据共享D.可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带33.onPause 什么时候调用?(选择一项) ( B)A.当界面启动时B.当onCreate 方法被执行之后C.当界面被隐藏时D.当界面重新显示时34.在Activity 中,如何获取service 对象?(选择一项)( D)A.可以通过直接实例化得到。
1、Android的体系结构2、Activity的启动方式有3、在Android模拟器中,内置了一个用于调试和测试的工具4、启动Service的两种方法。
5、Android四大组件6、Intent过滤器7、Android SDK主要语言基础7、R.java文件的用途。
9、Activity生命周期的事件回调函数10、在Android调试过程中,LogCat出现的日志信息11、通过继承ContentProvider类可以创建一个新的数据提供者的过程。
12、手机操作系统的是()A.AndroidB. Windows VistaC. IOSD. Windows Phone 713、是AbsoluteLayout中特有的属性( )A,android:layout_height B,android:layout_xC,android:layout_above D,android:layout_toRightOf14、在手机开发中常用的数据库是( SQLite )15、若在界面上显示“Hello,World”,应该使用以下哪个控件是()A.TextViewB.ImageViewC.ListViewD.以上都不对16、Spinner控件的显示为文本列表形式,在ArrayAdapter适配器中应选择以下哪种方式()yout.simple_spinner_dropdown_itemB. yout.simple_list _item_1C. yout.simple_list _item_2D. yout.simple_spinner_ item17、打开一个Activity,对提供的数据进行Web搜索的Intent常用动作是()A. ACTION_WEB_SE ARCHB.ACTION_SEARCHC. ACTION_ANSWERD.ACTION_VIEW18、如果将一个TextView的android:layout_height属性值设置为wrap_content,那么该组件将是以下哪种显示效果?( )A.该文本域的宽度将填充父容器宽度B.该文本域的宽度仅占据该组件的实际宽度C.该文本域的高度将填充父容器高度D.该文本域的高度仅占据该组件的实际高度19、使用以下哪种方法将数据写到文件的末尾()A. MODE_PRIVATEB. MODE_APPENDC. MODE_WORLD_READABLED. MODE_WORLD_WRITEABLE20、Android 项目工程下面的assets 目录的作用是什么( )A、放置应用到的图片资源。
一、单选题退出 activity 对一些资源以及状态的操作保存,可以在生命周期的哪个函数中进行( A )A、onPause()B、onCreate()C、onResume()D、onStart()Android 项目工程下面的 assets 目录的作用是什么 ( B )A、放置应用到的图片资源。
Res/drawableB、主要放置一些文件资源,这些文件会被原封不动打包到 apk 里面C、放置字符串,颜色,数组等常量数据 res/valuesD、放置一些与 UI 相应的布局文件,都是 xml 文件 res/layout下列不属于android布局的是( C )A、FrameLayoutB、LinearLayoutC、BorderLayoutD、TableLayoutE、RelativeLayoutIntent 的作用的是 ( A )A、intent是连接四大组件的纽带,可以实现界面间切换,可以包含动作和动作数据;B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 serviceC、实现应用程序间的数据共享 contentproviderD、处理一个应用程序整体性的工作下列哪个是AbsoluteLayout中特有的属性 ( B )A、android:layout_heightB、android:layout_xC、android:layout_aboveD、android:layout_toRightOfRatingBar组件中不能用属性直接设置的是( D)A、五角星个数B、当前分数C、分数的增量D、五角星的色彩在手机开发中常用的数据库是( A )A、,sqlLiteB、OracleC、Sql ServerD、Db23关于BroadcastReceiver的说法不正确的是( B )A)是用来接收广播Intent的B),一个广播Intent只能被一个订阅了此广播的BroadcastReceiver所接收C)对有序广播,系统会根据接收者声明的优先级别按顺序逐个执行接收者D)接收者声明的优先级别在<intent-filter>的android:priority属性中声明,数值越大优先级别越高使用MediaPlayer播放保存在sdcard上的mp3文件时( C )A)需要使用MediaPlayer.create方法创建MediaPlayer B)直接newMediaPlayer即可C)需要调用setDataSource方法设置文件源D)直接调用start方法,无需设置文件源在android中使用RadioButton时,要想实现互斥的选择需要用的组件是(D )A)ButtonGroup B) RadioButtons C)CheckBox D)RadioGroup在多个应用中读取共享存储数据时,需要用到的query方法,是哪个对象的方法?( A )A)ContentResolver B)ContentProvider C)Cursor D)SQLiteHelperDDMS中Log信息分为几个级别( C )A)3 B)4 C)5 D)6能够自动完成输入内容的组件是( D )A)TextView B,EditText C)ImageView D)AutoCompleteTextView创建子菜单的方法是( B )A)add B)addSubMenu C)createSubMenu D)createMenu使用AIDL完成远程service方法调用下列说法不正确的是( A )A)aidl对应的接口名称不能与aidl文件名相同B)aidl的文件的内容类似java代码C)创建一个Service(服务),在服务的onBind(Intent intent)方法中返回实现了aidl接口的对象D)aidl对应的接口的方法前面不能加访问权限修饰符MediaPlayer播放资源前,需要调用哪个方法完成准备工作( B )A)setDataSource B)prepare C)begin D)pause处理菜单项单击事件的方法不包含( D )A)使用onOptionsItemSelected(MenuItem item)响应B)使用onMenuItemSelected(int featureId ,MenuItem item)响应C)使用onMenuItemClick(MenuItem item)响应D)使用onCreateOptionsMenu(Menu menu)响应android中文件操作模式中表示只能被本应用使用,写入文件会覆盖的是( D )A) MODE_APPEND B)MODE_WORLD_READABLEC)MODE_WORLD_WRITEABLE D)MODE_PRIVATE进度条中哪个属性是设置进度条大小格式的(D )A)android:secondaryProgress B)android:progress C)android:max D)style下列用以显示一系列图像的是( B )A)ImageView B)Gallery C)ImageSwitcher D)GridView表示下拉列表的组件是( B )A)Gallery B)Spinner C)GridView D)ListView关于AlertDialog的说法不正确的是( A )A)要想使用对话框首先要使用new关键字创建AlertDialog的实例B)对话框的显示需要调用show方法C)setPositiveButton方法是用来加确定按钮的D)setNegativeButton方法是用来加取消按钮的下列说法错误的是( D )A)Button是普通按钮组件,除此外还有其他的按钮组件B)TextView是显示文本的组件,TextView是EditText的父类C)EditText是编辑文本的组件,可以使用EditText输入特定的字符D)ImageView是显示图片的组件,可以通过设置显示局部图片关于android中播放视频的说法不对的是( C )A)可以使用SurfaceView组件播视频B)可以使用VideoView组件播视频C)VideoView组件可以控制播放的位置和大小D)VideoView播放视频的格式可以是3gp下列哪个是SqlLite下的命令( C )A)shell B)push C).quit D)keytool下列关于如何使用Notification,不对的是(D)A)notification需要NotificatinManager来管理B)使用NotificationManager的notify方法显示notification消息C)在显示Notification时可以设置通知时的默认发声,震动等D) Notification中有方法可以清除消息下列关于 open core说法不正确的是( B )A) Open core是Android多媒体框架的核心B) MediaPlayer是openCore中的一个核心类C)所有在Android平台的音频、视频的采集以及播放等操作都是通过它来实现的D)在实现开发中我们并不会过多地研究open core的实现,我们的Android为我们提供了上层的media api的开发使用上下文菜单与其他菜单不同的是( B )A)上下文菜单项上的单击事件可以使用onMenuItemSelected方法来响应B)上下文菜单必须注册到指定的view上才能显示C)上下文菜单的菜单项可以添加,可以删除D)上下文菜单的菜单项可以有子项拖动条组件是( C )A)RatingBar B)ProgressBar C)SeekBar D)ScrollBar读取文件内容的首要方法是( D )A)open B)read C)write D)open关于隐式Intent正确的是( A )A)android中使用IntentFilter 来寻找与隐式Intent相关的对象B)通过组件的名称寻找与intent相关联的对象C)隐式Intent更多用于在应用程序内部传递消息D)一个声明了IntentFilter的组件只能响应隐式Intent请求多选框被选择事件通常用( B )A)setOnClickListener B)setOnCheckChangeListenerC)setOnMenuItemSelectedListener D)setOnCheckedListener自定义对话框时,将视图对象添加到当前对话框的方法是( D )A)setIcon B)setXML C)setLayout D)setView下列不属于service生命周期的方法是( C )A)onCreate B)onDestroy C)onStop D)onStart绑定Service的方法是( A )A,bindService B, startService C,onStart D,onBindandroid是如何组织Activity的( A )A、以栈的方式组式Activit yB、以队列的方式组织ActivityC、以树形方式组织ActivityD、以链式方式组织Activity。
Android应用开发复习题集附答案Android应用开发复习题集附答案Android应用开发是一门具有广泛应用前景的技术,通过这个题集附答案的复习,将帮助你回顾和巩固相关知识点。
以下是一系列与Android应用开发相关的问题,并提供了详细解答。
一、Android基础知识1. 请简要描述Android系统的基本架构。
Android系统基本架构主要包括以下四个层次:- Linux内核层:提供硬件驱动、安全性等底层功能。
- 库和运行时环境层:包括C/C++库、Java库以及Dalvik虚拟机,提供给应用程序运行所需的环境。
- 应用框架层:提供开发Android应用所需的API,包括各种管理模块(Activity Manager、Package Manager等)。
- 应用层:包括各种内置应用以及第三方应用。
2. 解释Android Manifest文件的作用。
Android Manifest文件是每个Android应用都必须包含的文件,用于描述应用程序的基本信息和配置,包括应用程序的入口Activity、应用程序所需的权限、组件信息等。
3. 请简要介绍四大组件是什么,并举例说明应用场景。
四大组件包括:Activity、Service、BroadcastReceiver和ContentProvider。
- Activity: 代表应用界面的展示,比如登录界面、主界面等。
- Service: 用于执行后台任务,比如音乐播放等。
- BroadcastReceiver: 监听系统广播消息,比如监听网络状态变化等。
- ContentProvider: 用于不同应用程序之间共享数据,比如通讯录。
二、Android应用开发技术1. 请简要介绍Android应用的生命周期。
Android应用的生命周期由以下几个状态组成:创建(Created)、启动(Started)、恢复(Resumed)、暂停(Paused)、停止(Stopped)和销毁(Destroyed)。
android基础知识题库100道及答案(完整版)1. Android 操作系统基于以下哪种内核?A. LinuxB. WindowsC. UnixD. Mac OS答案:A2. Android 应用程序主要使用哪种编程语言?A. JavaB. C++C. PythonD. Ruby答案:A3. AndroidManifest.xml 文件的作用是什么?A. 存储应用的资源B. 定义应用的组件和权限C. 保存应用的数据D. 处理应用的逻辑答案:B4. 在Android 中,用于存储少量键值对数据的存储方式是?A. SharedPreferencesB. SQLiteC. ContentProviderD. File答案:A5. Android 中的Activity 生命周期方法中,在Activity 可见但不可交互时调用的是?A. onStart()B. onResume()C. onPause()D. onStop()答案:C6. 以下哪个不是Android 中的布局管理器?A. LinearLayoutB. RelativeLayoutC. AbsoluteLayoutD. GridLayout答案:C7. Android 中用于在后台执行耗时操作的是?A. AsyncTaskB. HandlerC. ThreadD. Service答案:A8. 以下哪个不是Android 中的广播类型?A. 普通广播B. 有序广播C. 无序广播D. 本地广播答案:C9. Android 中用于发送短信的权限是?A. android.permission.SEND_SMSB. android.permission.RECEIVE_SMSC. android.permission.READ_SMSD. android.permission.WRITE_SMS答案:A10. 在Android 中,用于获取网络数据的类是?A. HttpURLConnectionB. SocketC. ServerSocketD. DatagramSocket答案:A11. Android 中用于实现页面跳转的类是?A. IntentB. BundleC. ContextD. ActivityManager答案:A12. 以下哪个不是Android 中的存储方式?A. 内部存储B. 外部存储C. 网络存储D. 数据库存储答案:C13. Android 中用于显示图片的控件是?A. ImageViewB. TextViewC. ButtonD. EditText答案:A14. 以下哪个不是Android 中的触摸事件?A. onClickB. onTouchC. onLongClickD. onScroll答案:A15. Android 中用于创建菜单的方法是?A. onCreateOptionsMenuB. onPrepareOptionsMenuC. onOptionsItemSelectedD. onContextItemSelected答案:A16. 以下哪个不是Android 中的动画类型?A. 帧动画B. 补间动画C. 属性动画D. 3D 动画答案:D17. Android 中用于获取系统服务的类是?A. SystemServiceB. ContextC. ServiceManagerD. ActivityManager答案:B18. 以下哪个不是Android 中的传感器类型?A. 加速度传感器B. 陀螺仪传感器C. 光线传感器D. 压力传感器答案:D19. Android 中用于实现碎片(Fragment)的类是?A. FragmentB. FragmentManagerC. FragmentTransactionD. FragmentActivity答案:A20. 以下哪个不是Android 中的进程类型?A. 前台进程B. 后台进程C. 空进程D. 服务进程答案:C21. Android 中用于处理音频的类是?A. AudioRecordB. AudioTrackC. MediaPlayerD. SoundPool答案:C22. 以下哪个不是Android 中的图形绘制方式?A. CanvasB. OpenGL ESC. SVGD. Bitmap答案:C23. Android 中用于实现定位功能的类是?A. LocationManagerB. LocationProviderC. GeocoderD. MapView答案:A24. 以下哪个不是Android 中的通知类型?A. 普通通知B. 大视图通知C. 悬挂式通知D. 弹窗通知答案:D25. Android 中用于实现自定义视图的方法是?A. onDrawB. onMeasureC. onLayoutD. onCreate答案:A26. 以下哪个不是Android 中的数据传递方式?A. Intent 传递B. 共享文件传递C. 数据库传递D. 网络传递答案:C27. Android 中用于实现多线程下载的类是?A. DownloadManagerB. AsyncTaskC. ThreadPoolExecutorD. HttpClient答案:A28. 以下哪个不是Android 中的网络请求方式?A. GETB. POSTC. PUTD. DELETE答案:C29. Android 中用于实现蓝牙通信的类是?A. BluetoothAdapterB. BluetoothSocketC. BluetoothServerSocketD. BluetoothDevice答案:A30. 以下哪个不是Android 中的权限组?A. 危险权限组B. 正常权限组C. 特殊权限组D. 签名权限组答案:D31. Android 中用于实现语音识别的类是?A. SpeechRecognizerB. TextToSpeechC. AudioManagerD. Vibrator答案:A32. 以下哪个不是Android 中的视图组(ViewGroup)?A. FrameLayoutB. LinearLayoutC. RelativeLayoutD. ListView答案:D33. Android 中用于实现推送通知的服务是?A. GCMB. FCMC. C2DMD. MQTT答案:B34. 以下哪个不是Android 中的数据存储格式?A. JSONB. XMLC. CSVD. YAML答案:D35. Android 中用于实现进程间通信的方式是?A. IntentB. MessengerC. AIDLD. ContentProvider答案:C36. 以下哪个不是Android 中的UI 线程操作限制?A. 网络操作B. 耗时计算C. 文件读写D. 界面更新答案:D37. Android 中用于实现图片加载的开源框架是?A. PicassoB. GlideC. FrescoD. Volley答案:B38. 以下哪个不是Android 中的资源类型?A. 字符串资源C. 布局资源D. 服务资源答案:D39. Android 中用于实现数据库升级的方法是?A. onUpgradeB. onCreateC. onOpenD. onDowngrade答案:A40. 以下哪个不是Android 中的意图过滤器(IntentFilter)的动作?A. ACTION_CALLB. ACTION_EDITC. ACTION_SENDD. ACTION_DELETE答案:D41. Android 中用于实现视频播放的类是?A. VideoViewB. MediaControllerC. SurfaceViewD. TextureView答案:A42. 以下哪个不是Android 中的布局属性?A. layout_widthB. layout_heightC. paddingD. margin答案:C43. Android 中用于实现应用内购买的服务是?A. In-app BillingB. Google Play BillingC. Amazon Appstore BillingD. Apple App Store Billing答案:B44. 以下哪个不是Android 中的触摸模式?A. 单点触摸B. 多点触摸C. 滑动触摸答案:C45. Android 中用于实现动画插值器(Interpolator)的类是?A. AccelerateInterpolatorB. DecelerateInterpolatorC. LinearInterpolatorD. CycleInterpolator答案:A46. 以下哪个不是Android 中的消息机制?A. HandlerB. LooperC. MessageQueueD. ThreadPool答案:D47. Android 中用于实现文件上传的类是?A. HttpPostB. MultipartEntityC. FileUploadD. HttpPut答案:B48. 以下哪个不是Android 中的屏幕方向?A. 竖屏B. 横屏C. 自动旋转D. 反向横屏答案:D49. Android 中用于实现手势识别的类是?A. GestureDetectorB. ScaleGestureDetectorC. OnGestureListenerD. OnDoubleTapListener答案:A50. 以下哪个不是Android 中的日志级别?A. VERBOSEB. DEBUGC. INFOD. WARNING答案:C51. Android 中用于实现应用签名的工具是?A. KeytoolB. JarsignerC. ApktoolD. Dex2jar答案:B52. 以下哪个不是Android 中的进程优先级?A. 前台优先级B. 可见优先级C. 服务优先级D. 后台优先级答案:C53. Android 中用于实现地图功能的类是?A. MapViewB. GoogleMapC. LocationViewD. MapFragment答案:B54. 以下哪个不是Android 中的图片压缩格式?A. JPEGB. PNGC. GIFD. BMP答案:D55. Android 中用于实现应用内搜索的类是?A. SearchViewB. SearchManagerC. ContentSearcherD. QueryBuilder答案:B56. 以下哪个不是Android 中的传感器事件类型?A. SENSOR_TYPE_ACCELEROMETERB. SENSOR_TYPE_GYROSCOPEC. SENSOR_TYPE_LIGHTD. SENSOR_TYPE_TEMPERATURE答案:D57. Android 中用于实现应用更新的方式是?A. Google Play 自动更新B. 应用内检测更新C. 手动下载更新D. 以上都是答案:D58. 以下哪个不是Android 中的资源目录?A. drawableB. layoutC. valuesD. assets答案:D59. Android 中用于实现进程保活的方法是?A. 前台服务B. 广播接收器C. 工作线程D. 以上都是答案:D60. 以下哪个不是Android 中的动画帧间隔时间单位?A. 毫秒B. 秒C. 微秒D. 纳秒答案:D61. Android 中用于实现应用主题的方式是?A. 在styles.xml 中定义B. 在AndroidManifest.xml 中指定C. 在代码中设置D. 以上都是答案:D62. 以下哪个不是Android 中的布局测量模式?A. EXACTLYB. AT_MOSTC. UNSPECIFIEDD. AUTO答案:D63. Android 中用于实现音频录制的类是?A. MediaRecorderB. AudioRecordC. SoundRecorderD. VoiceRecorder答案:A64. 以下哪个不是Android 中的视图状态保存方法?A. onSaveInstanceStateB. onRestoreInstanceStateC. onPauseD. onResume答案:C65. Android 中用于实现应用国际化的方式是?A. 使用资源文件B. 在代码中判断语言C. 使用第三方库D. 以上都是答案:D66. 以下哪个不是Android 中的触摸事件分发机制?A. dispatchTouchEventB. onInterceptTouchEventC. onTouchEventD. onTouchDispatchEvent答案:D67. Android 中用于实现应用加密的方式是?A. 对称加密B. 非对称加密C. 哈希加密D. 以上都是答案:D68. 以下哪个不是Android 中的应用组件?A. ActivityB. ServiceC. BroadcastReceiverD. Adapter答案:D69. Android 中用于实现应用权限管理的类是?A. PermissionManagerB. PermissionCheckerC. PackageManagerD. ActivityManager答案:C70. 以下哪个不是Android 中的应用启动模式?A. standardB. singleTopC. singleTaskD. singleInstance答案:A71. Android 中用于实现应用崩溃捕获的工具是?A. ACRAB. BuglyC. CrashlyticsD. 以上都是答案:D72. 以下哪个不是Android 中的数据绑定方式?A. 双向数据绑定B. 单向数据绑定C. 无数据绑定D. 自动数据绑定答案:D73. Android 中用于实现应用性能优化的工具是?A. Android ProfilerB. LeakCanaryC. SystraceD. 以上都是答案:D74. 以下哪个不是Android 中的应用架构模式?A. MVPB. MVVMC. MVCD. MVVMC答案:D75. Android 中用于实现应用热修复的技术是?A. DexposedB. AndFixC. TinkerD. 以上都是答案:D76. 以下哪个不是Android 中的应用混淆工具?A. ProGuardB. R8C. DexGuardD.混淆不是必需的答案:D77. Android 中用于实现应用签名的密钥类型是?A. 调试密钥B. 发布密钥C. 临时密钥D. 以上都是答案:D78. 以下哪个不是Android 中的应用测试类型?A. 单元测试B. 集成测试C. 系统测试D. 压力测试答案:D79. Android 中用于实现应用多语言支持的资源文件后缀是?A. xmlB. stringsC. valuesD. 语言代码答案:D80. 以下哪个不是Android 中的应用资源目录?A. mipmapB. rawC. animD. class答案:D81. Android 中用于实现应用数据备份的类是?A. BackupManagerB. RestoreManagerC. DataManagerD. FileManager答案:A82. 以下哪个不是Android 中的应用权限分类?A. 危险权限C. 特殊权限D. 自定义权限答案:C83. Android 中用于实现应用动态权限申请的方法是?A. requestPermissionsB. checkSelfPermissionC. shouldShowRequestPermissionRationaleD. 以上都是答案:D84. 以下哪个不是Android 中的应用缓存策略?A. 内存缓存B. 磁盘缓存C. 网络缓存D. 无缓存答案:C85. Android 中用于实现应用数据加密存储的类是?A. CipherB. SecretKeyC. EncryptedFileD. EncryptedSharedPreferences答案:D86. 以下哪个不是Android 中的应用版本控制方式?A. 版本号B. 版本名C. 构建号D. 发布日期答案:D87. Android 中用于实现应用日志输出到文件的类是?A. FileWriterB. BufferedWriterC. PrintWriterD. LogWriter答案:A88. 以下哪个不是Android 中的应用性能指标?A. CPU 使用率B. 内存使用率C. 电量消耗答案:D89. Android 中用于实现应用资源压缩的工具是?A. aaptB. apktoolC. dex2jarD. jd-gui答案:A90. 以下哪个不是Android 中的应用发布渠道?A. Google PlayB. 应用宝C. 豌豆荚D. 开发工具答案:D91. Android 中用于实现应用版本回退的方法是?A. 安装旧版本的APKB. 恢复应用数据C. 没有直接的版本回退方法D. 使用系统的备份功能答案:C92. 以下哪个不是Android 中的应用图标尺寸?A. 48x48 dpB. 72x72 dpC. 96x96 dpD. 128x128 dp答案:D93. Android 中用于实现应用推送通知图标定制的方法是?A. 在NotificationCompat.Builder 中设置B. 在AndroidManifest.xml 中设置C. 在资源文件中设置D. 无法定制答案:A94. 以下哪个不是Android 中的应用启动画面类型?A. 静态图片B. 动态图片C. 视频D. 文本答案:D95. Android 中用于实现应用数据迁移的方法是?A. 手动复制数据B. 使用数据库迁移工具C. 利用系统提供的备份和恢复机制D. 以上都是答案:D96. 以下哪个不是Android 中的应用架构组件?A. LiveDataB. ViewModelC. RepositoryD. AdapterView答案:D97. 以下哪个不是Android 中获取设备唯一标识的可靠方法?A. IMEIB. Android IDC. UUIDD. 以上都不是可靠方法答案:D98. Android 中用于实现应用在后台运行时保持网络连接的方式是?A. 使用前台服务B. 使用唤醒锁C. 使用JobSchedulerD. 以上都是答案:D99. 以下哪个不是Android 中处理图片加载时的优化策略?A. 图片压缩B. 图片缓存C. 图片懒加载D. 图片加密答案:D100. Android 中用于实现应用在不同屏幕尺寸上自适应布局的方式是?A. 使用百分比布局B. 使用约束布局C. 使用多种布局文件D. 以上都是答案:D。
1.Android是如何组织Activity的?android是如何组织Activity的(A)A、以栈(先进后出)的方式组织ActivityB、以队列的方式组织ActivityC、以树形方式组织ActivityD、以链式方式组织Activity2.设置xml布局文件中的字体大小一般用什么单位?sp width和length用dp3.关于service生命周期的onCreate()和onStart()各有什么用处?android 关于service生命周期的onCreate()和onStart()说法正确的是(AD )(多选题)A、当第一次启动的时候先后调用onCreate()和onStart()方法B、当第一次启动的时候只会调用onCreate()方法C、如果service已经启动,将先后调用onCreate()和onStart()方法D、如果service已经启动,只会执行onStart()方法,不在执行onCreate()方法一个服务只会创建一次,销毁一次,但可以开始多次,因此,onCreate 和onDestroy方法只会被调用一次,而onStart方法会被调用多次。
4.在android中使用SQLiteOpenHelper这个辅助类,生成一个可操作的数据库,调用的方法是什么在android中使用SQLiteOpenHelper这个辅助类时,可以生成一个数据库,并可以对数据库版本进行管理的方法可以是(AB)A、getWriteableDatabase()B、getReadableDatabase()C、getDatabase()D、getAbleDatabase()在android中使用SQLiteOpenHelper这个辅助类,生成一个可操作的数据库,调用的方法是(A)A.getReadableDatabase()B.getDatabase()C.getEnbleDatabase()D.createDateBase()5.Activity从可见状态变为半透明遮盖状态时,生命周期中哪个方法被调用Activity从可见状态变为半透明遮盖状态时,生命周期中哪个方法被调用(B)A.onStop()B.onPause()C.onRestart()D.onStart()6.ContentValues类是什么结构,如何存数据关于ContenValues类说法正确的是(D)A、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是任意类型,而值都是基本类型B、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名,可以为空,而值都是String类型C、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值也是String类型D、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值都是基本类型7.哪些属性是专用于相对布局的?下列哪个属性是专用于相对布局的(D)A.android.orientation线性vertical垂直horizontalB.android:stretchColumnsC.android:layout_alignParentRightD.android:layout_toRightOf8.关于应用程序的生命周期,一个Activity从启动到运行状态需要执行3个方法,顺序是什么?onCreate()->onStart()->onResume()9.android中下列属于Intent的作用的是什么?Android中下列属于Intent的作用的是(C)A、实现应用程序间的数据共享B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带D、处理一个应用程序整体性的工作10.Android项目工程下面项目工程下面的的asset目录的作用是什么?Android项目工程下面的assets目录的作用是什么(B )A、放置应用到的图片资源。
初识Android主流移动操作系统主要有:Windows PhoneIOSSymbianBlackBerryAndroid其他Android四大组件Activity(活动):用来显示Android的程序界面Service(服务):没有界面的后台服务Broadcast Receiver(广播接收器):在广播机制中充当广播的接受者的作用Content Provider(内容提供者):用来在不同的应用程序之间共享数据DDMS:Dalvik Debug Monitor Service( Android 开发环境中的Dalvik虚拟机调试监控服务) ADB:Android Debug Bridge,起到调试桥的作用通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序,说白了就是debug工具。
adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu 通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。
主要功能有:运行设备的shell(命令行)管理模拟器或设备的端口映射计算机和设备之间上传/下载文件将本地apk软件安装至模拟器或android设备Android系统架构Linux内核包括:内存管理、安全管理、进程管理、网络协议栈、驱动程序模型、电源管理函数库和Android运行时环境函数库:Surface Manage、Media Framework、SQLite、OpenGL ES、FreeType、WebKit、SGL、SSL、LibcAndroid运行时环境:核心库、Dalvik虚拟机应用程序框架Activity Manager、Windows Manager、Content Provider、Package Manager、Teleghony Manager 应用程序电子邮件客户端、浏览器、通讯录、日历Android开发环境的搭建过程安装JDK安装eclipse下载Android SDK在eclipse中安装并配置ADT移动开发的三要素SDK 开发工具包Emulator 模拟器IDE 集成开发环境Android系统特性提供访问硬件的API函数,简化硬件的访问过程具有自己的运行时环境和虚拟机提供丰富的界面控件供使用者之间调用提供轻量级的进程间通讯机制Intent提供了Service作为无用户界面,长时间的后台运行组件支持高效、快速的数据存储方式Activity与IntentActivity的四种基本状态运行态(Running)Activity处于屏幕最前端,用户可见且获得焦点(可以和用户进行交互)暂停态(Paused)Activity被置于后台,用户可见,但失去了焦点(不能和用户进行交互)停止态(Stopped)Activity被新的Activity覆盖,失去焦点,用户不可见终止态(Destroyed)Activity被系统终止,资源被回收处于暂停状态和停止状态的Activity在内存紧张时会被系统杀死,释放内存资源Activity生命周期完整生命周期:OnCreat()—>onStart()—>OnResume()—>OnPause()—>OnStop()—>OnDestroy() 可视生命周期:OnStop()—>OnRestart()—>onStart()—>onResume()前台生命周期:OnPause()—>OnResume()Activity启动模式:android:launchMode=”standrad” 标准模式默认的启动模式每次启动Activity时都会启动新的Activity压入回退栈中android:launchMode=”s ingleTop” 在启动Activity时首先判断栈顶是否存在和当前要启动的Activity相同的实例,如果有,就会重用栈顶的Activity,不会新建新的Activity android:launchMode=”singleTask” 在启动Activity时会首先判断栈中是否存在和当前要启动的Activity相同的实例,如果有,就会弹出它上面所有的Activity,让和要启动的Activity相同的Activity位于栈顶android:launchMode=”singleInstance” 一旦这个Activity的实例被压入新的栈中后,任何应用要启动相同实例的Activity时,都会重用之前放入新栈中的Activity,不会再创建新的和当前要启动的Activity相同的实例ActivityA启动ActivityB时,对应Activity生命周期方法调用顺序方法一:以对话框形式调用:A:OnPause()—>B:OnCreat()—>B:OnStart()—>B:OnResume()当ActivityB销毁时执行顺序:B:OnPause()—>B:OnStop()—>B:OnDestroy()—>A:OnResume()方法二:B以完全覆盖形式启动:A:OnPause()—>B:OnCreat()—>B:OnStart()—>B:OnResume()—>A:OnStop()当ActivityB销毁时执行顺序:B:OnPause()—>B:Onstop()—>B:OnDestroy()—>A:OnRestart()—>A:OnStart()—>A:OnResume()关闭Activity方法finish()finishActivity(int requestCode)Intent的功能激活组件,包括Activity、Broadcast Receive和Content Provider的激活使用Android系统内置的Intent来完成发送短信、拨打电话、浏览网页和查看地图等手持设备的基本功能,与其Data和Action属性有关激活组件时,在组件之间传递数据,与Intent的Date和Extra属性有关Intent的六大属性Component Nam(组件名) 用来处理Intent的匹配问题,它可以被设置,也可以不被设置Action(动作) 描述Intent将要完成什么动作Data(数据) Data属性包括两部分URI(通用资源标识符)和Type(MIME类型)Category(分类) 一个含有Intent的附加信息的字符串,这些信息可以决定哪种组件可以处理这个IntentExtra(额外信息) Intent通过Extra属性添加一些附加信息,可通过它来传递大量数据Flag(标志) 可以通过使用不同的Flags来告诉系统一个Activity属于哪个Task、一个Activity 被启动或停止后在Activity栈中的位置如何改变等Android UI开发基础Android UI开发分类界面布局开发——定义界面的布局控件开发——定义单个界面元素AdapterView与Adapter开发——列表显示UI组件开发——对话框、通知、菜单、动作条等自定义View、图形图像和动画——通过代码,自行绘制界面常用的UI布局LinearLayout——线性布局RelativeLayout——相对布局FrameLayout——帧布局TableLayout——表格布局AbsoluteLayout——绝对布局4.0版本新特性GridLayout——网格布局TextView的子孙类EditText Button TextClockButton的子类CheckBox RadioButton ToggleButton让TextView能够解析HTML标记的步骤1.将HTML标记当成字符串处理2.使用HTML.fromHtml(HTML 字符串)将HTML转换成Spanned对象3.调用TextView对象的setText(Spanned对象)4.调用TextView对象的setMovementMethod(LinkMovementMethod .getInstance());AdapterViewBaseAdapter 基础数据适配器几种Adapter及特点ArrayAdapter最简单的Adapter,适合于列表项中只含有文本的情况,是填充文本列表最简单的一种方式SimpleAdapter比ArrayAdapter复杂,适合于每一个列表中含有不同的子控件,比如一个图片、一串文本和一个按钮的组合SimpleCursorAdapter专门用来把一个Cursor中的数据映射到列表中,Cursor中的每一条数据映射为列表中的一项。
一、解答题应用程序的4大组件是什么Activity、Broadcast Receiver、Content Provider、Service2.请介绍下Android中常用的五种布局。
相对布局(RelativeLayout):相对布局中可以设置某一个视图相对于其他视图的位置,包括上、下、左、右。
线性布局(LinearLayout):线性布局可分为水平线性布局和垂直线性布局。
水平线性布局所有在这个布局中的视图都沿着水平方向线性排列。
垂直线性布局则沿着垂直方向线性排列。
框架布局(FrameLayout):所有添加到框架布局中的视图都是以层叠的方式显示,这种显示方式类似堆栈。
表格布局(TableLayout):表格布局可以将视图按行、按列进行排列。
绝对布局(AbsoluteLayout):可以任意设置视图定位位置。
3. activity一般会重载7个方法用来维护其生命周期,除了onCreate(),onStart(),onDestory() 外还有onrestart,onresume,onpause,onstop4. 当启动一个Activity并且新的Activity执行完后需要返回到启动它的Activity来执行的回调函数是startActivityResult()5.什么是IntentIntent(意图)主要是解决Android应用的各项组件之间的通讯。
Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。
启动Activity方式:显式启动,必须在Intent中指明启动的Activity所在的类Intent intent = new Intent, ;startActivity(intent);6.Broadcast有哪几种区别实现广播的方法有两种。
一种是在当中去注册广播,另一种方法是在代码中动态注册广播,这两种方法虽然都能实现广播机制,但是还是有很大不同,所以运用也要分情况。
Android期末复习题第1章 Android基础⼊门习题⼀、填空题2. Android底层是基于【Linux 】操作系统的。
3. Android系统采⽤分层架构,由⾼到低分别为应⽤程序层、应⽤程序框架层、【核⼼类库】、【Linux内核】。
5. Android⼯程中src⽬录下存放【Java】⽂件。
⼆、判断题1. Android是Google公司基于Linux平台开发的⼿机及平板电脑操作系统。
√4. 在创建Android⼯程时,填写的Package Name表⽰⼯程的名称。
×5. Android ⼯程中AndroidManifest.xml⽂件是整个程序的配置⽂件。
√三、选择题4. 下列关于Android起源的说法中,错误的是( A )。
A.Android1.5被称为甜甜圈B.Android是第⼀个真正为⼿机打造的开放性系统C.Android本意指“机器⼈”D.Android最初由Andy Rubin开发的5. 下列选项中不属于Android体系结构的是( D )。
A.应⽤程序层B.应⽤程序框架层C.核⼼类库D.WindowManager;四、简答题1. 请简要说明Android程序结构中AndroidManifest.xml的功能?该⽂件是整个项⽬的配置⽂件,在程序中定义的四⼤组件都需要在这个⽂件⾥注册,另外还可以在这个⽂件中给应⽤程序添加权限声明,也可以重新指定创建项⽬时程序最低兼容的版本和最⾼版本。
在清单⽂件配置的信息会配置到Android系统中,当程序运⾏时,系统会先找到清单⽂件中配置的信息然后根据设置的信息打开相应的组件。
第2章 Android UI开发习题⼀、填空题1. ⽹格布局使⽤的标签是【GridLayout 】。
3. 在Android系统中,线性布局使⽤【 LinearLayout 】控件表⽰。
5. 在【EditText】控件中可以输⼊⽂字,并且可以通过inputType属性控制输⼊的内容只能是数字或者字母等。
Android复习题及答案一、选择题1. 下列哪些语句关于内存回收的说明是正确的?( )A、程序员必须创建一个线程来释放内存B、内存回收程序负责释放无用内存C、内存回收程序允许程序员直接释放内存D、内存回收程序可以在指定的时间释放内存对象2. Android 中下列属于Intent的作用的是( )A、实现应用程序间的数据共享B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带D、处理一个应用程序整体性的工作3. 下面的对自定style的方式正确的是( )A、 <resources><style name="myStyle"><itemname="android:layout_width">fill_parent</item></style></resources>B、 <style name="myStyle"><itemname="android:layout_width">fill_parent</item></style>C、 <resources><itemname="android:layout_width">fill_parent</item></resources>D、 <resources><stylename="android:layout_width">fill_parent</style></resources>4. 在Android中使用Menu时可能需要重写的方法有( )。
1.下列不是手机操作系统的是?(D)A. AndroidB. Window MobileC. Apple IPhone IOSD. windows vista2. 下列选项哪个不是Activity启动的方法?(B )A. startActivityB. goToActivityC. startActivityForResultD. startActivityFromChild3. 下列哪个不是Activity的生命周期方法之一?(B )A. onCreate B startActivity C. onStart D. onResume4. 下列哪个可做Android数据存储?( A )A. SQlite B. MySql C. Oracle D. DB25. 下列哪个可做EditText编辑框的提示信息?( D )A. android:inputTypeB. android:textC. android:digitsD. android:hint二、真空题(2分)1. 为了使android适应不同分辨率机型,布局时字体单位应用sp ,像素单位应用sp 和dip 。
2. 定义LinearLayout水平方向布局时至少设置的三个属性:android:orientation ,android:layout_width 和android:layout_height 。
3. 设置ImageView控件为灰色的方法是:android:background=”#040”。
4. layout布局文件的命名不能出现字母大写。
5. 设置EditText只能输入”1234567890.+-*/%()”属性:android:digits 。
6. 设置TextView字体的属性是:android:textSize 。
三、简答题(30分)1. Android项目中的入口Activity怎么写?如何注册一般的Activity?(1) Android项目中的入口Activity:<?xml version="1.0" encoding="utf-8"?> <manifestxmlns:android="/apk/res/android"package="com.test"android:versionCode="1"android:versionName="1.0"><application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".WelcomeActivity"android:label="@string/app_name"><intent-filter><actionandroid:name="android.intent.action.MAIN" /><categoryandroid:name="UNCHER" /> </intent-filter>(2) 注册一般的Activity:</activity><activity android:name=".test"/></application><uses-sdk android:minSdkVersion="6" /></manifest>2.列举通过Intent传递不同数据类型的方法(至少5个)?①Intent.addCategory(String category) ②Intetn.addFlags(int flags)③Intent.equals(Object o) ④Intent.fillIn(Intent other,int flags)⑤Intent.filterEquals(Intent other)3. 请介绍下Android中常用几种布局(至少3种,多一个加2分)?线性布局LinearLayout,相对布局RelativeLayout,表单布局TableLayout,帧布局FrameLayout,列表布局:listview,表格布局:gridview,绝对布局:absoluteLayout,标签布局:tablayout4. 阐述android:padding和android:layout_margin的异同?(1)不同点:android:padding 是站在父View 的角度描述问题,它规定它里面的内容必须与这个父View 边界的距离。
Android期末考试复习题一、选择题(每题2分,共20分)1. Android操作系统是基于哪个内核开发的?A. Linux内核B. Windows内核C. UNIX内核D. MacOS内核2. 在Android开发中,哪个组件负责处理用户界面?A. ActivityB. ServiceC. Content ProviderD. Broadcast Receiver3. 下列哪个不是Android四大组件之一?A. ActivityB. ServiceC. FragmentD. Content Provider4. Android中的Intent主要用于什么?A. 启动ActivityB. 访问网络C. 存储数据D. 播放音乐5. 下列哪个不是Android开发中常用的布局类型?A. LinearLayoutB. RelativeLayoutC. GridLayoutD. ListLayout6. 在Android中,如何实现Activity之间的数据传递?A. 使用IntentB. 使用SharedPreferencesC. 使用Content ProviderD. 使用Service7. Android中的Fragment主要用于什么?A. 处理后台任务B. 管理网络通信C. 管理用户界面D. 存储数据8. 在Android开发中,哪个类负责管理应用程序的生命周期?A. ActivityB. ServiceC. ApplicationD. Broadcast Receiver9. 下列哪个不是Android开发中常用的数据存储方式?A. SharedPreferencesB. SQLite数据库C. 文件存储D. 网络存储10. 在Android中,如何实现应用程序的后台服务?A. 使用ActivityB. 使用ServiceC. 使用Broadcast ReceiverD. 使用Content Provider二、简答题(每题5分,共30分)1. 请简述Android四大组件的作用及其相互之间的关系。
1、Intent的Component属性的作用是什么,如何定义此属性component组件,指定Intent的的目标组件的类名称;通常 Android会根据Intent 中包含的其它属性的信息,比如action、data/type、category进行查找,最终找到一个与之匹配的目标组件;但是,如果 component这个属性有指定的话,将直接使用它指定的组件,而不再执行上述查找过程;指定了这个属性以后,Intent的其它所有属性都是可选的;Component属性的作用是用来指定Intent的目标组件的类名称;如果Component这个属性被指定了的话, Intent的其它属性都是可选项,Android会直接使用Component指定目标组件,而不再执行其它查找过程;在使用时,需要先创建一个ComponentName对象,然后将它设置成Intent对象的Component的属性;通过setComponent、setClass和setClassName三种方法都可以设置组件的名称,通过getComponent方法则可获得设置项;2、发送广播时,可以通过sendCatagoryBroadcast方法将Intent对象发送出去 . 错3、Android是什么一种操作系统4、下面关于Android dvm的进程和Linux的进程,应用程序的进程说法正确的是DVM指dalivk的虚拟机;每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例;而每一个DVM 都是在Linux 中的一个进程,所以说可以认为是同一个概念;5、Android操作系统最早由哪个公司研发Android公司6、下列中不属于手持设备的是机顶盒7、下列不是手机操作系统的是 ;Windows Vista8、到目前为止,Android操作系统的最高版本是哪个Android L9、安装Android SDK时,可以通过在线安装或离线安装;A ndroid sdk manager10、开发Android应用程序时,一般使用的计算机语言是 ;JAVA11,Canva类没有在AndroidManifest中正确申明sActivitys12、对于直接Intent,Android不需要去做解析,因为目标组件已经很明确,Android需要解析的是那些间接Intent,通过解析,将 Intent映射给可以处理此Intent的Activity、IntentReceiver或Service 对Intent 可以传递 View对象错Intent起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦对通过Intent可以删除程序对13、下面退出Activity错误的方法是 ;14、当启动一个Activity并且新的Activity执行完后需要返回到启动它的Activity来执行的回调函数是 ;startActivityResult15、这是一个资源配置文件,下面描述正确的是这个shape文件是画一条虚线,实线段5dp,间隔3dp16、Toast toast = new Toastthis; "今天天气不错\n哈哈"; ; 上面代码的执行结果是什么 ;代码会抛出异常,因为new出的Toast对象不能再使用setText方法来设置提示框文本17、setOnTouchEvent 设置返回值为true 和 false有何区别返回true表示这个消息已经被处理结束,后续的handler不再接收到这个消息18、下列哪个可做EditText编辑框的提示信息 ; android:hint19、使进度条变横向的系统样式是20、关于Android 事件机制与事件监听,下列说法不正确的有 ;类里的event listener是一个带有回调方法的接口,当UI里的组建是被用户触发时,这些方法会被系统框架所调用;对ii.来自 ,当点击这个Item在触摸模式,或者当光标聚集在这个Item上时按下“确认”键,导航键,或者轨迹球, 它会被调用;对iii.来自 ,当长按这个Item在触摸模式,或者当光标聚集在这个Item上时长按“确认”键,导航键,或者轨迹球,它会被调用;对iv.来自 ,当手移到或离开这个Item, 它会被调用对v.来自,当光标移到这个Item,按下和释放一个按键的时候,它会被调用;对vi.来自,在这个Item的范围内触摸的时候,它会被调用;对vii.来自,当上下文菜单被建立时,只需短按一下,它会被调用; 错21、关于对话框,下面说法正确的是 ;对话框的父类不是View22、创建一个提示对话框,应创建下面哪种对话框实例 ; AlertDialog23、在AlertDialog中,以下哪个方法是用于取消的 ; setNegativeButton24、在android中使用Menu时可能需要重写的方法有 ; 1 onCreateOptionsMenu 3 onOptionsItemSelected25、键盘事件处理方法中,以下哪个方法是用来处理键盘按键的释放事件的 ; keyReleasedint keyCode26、下面Android的存储方式中,除SharedPreferences外还有哪种方式是不可以将数据在不同应用间数据共享的 ;Files27、当使用文件存储的时候,默认创建的文件会放在什么位置 ;app28、关于SharedPreferences和文件存储数据描述正确的是 ;使用文件存储需要创建文件,而SharedPreferences的存储方式自动创建xml文件29、使用SharedPreferences进行数据存储的时候,下面哪个方法是不参与的 ;edit30、使用SharedPreferences存储数据时,会创建一个什么类型的文件来进行数据存放 ;.xml文件31、在程序中,使用SD的文件需要使用以下哪些权限 ;32、下面哪种不是Android的存储方式 ;ContentProvider33、通过SharedPreferences保存的数据存储在什么文件夹下 ;shared_prefs34、对于一个已经存在的SharedPreferences对象setting,想向其中存入一个字符串"person",setting应该先调用什么方法 ; edit35、下列说法哪个不正确 ;一个Activity的对象a1上弹出了一个模拟对话框形式的Activity的对象a2,按返回键后a1执行了onStart和onResume方法,a2执行了onPause,onStop和onDestroy方法;错拥有android:configChanges="orientation|keyboardHidden" 标签的Activity在横竖屏转换时不会再执行onCreate方法;对默认情况下对一个Activity的对象进行横竖屏切换,该对象的onCreate方法在每次切换时都会执行;对一个界面上的EditText中输入文字后,再按下Home,该界面消失,等再回到该界面文字内容仍在,onCreate方法也不会执行;对36、下面布局中,哪个布局会把控件放在左上角,当添加新的控件的时候,将覆盖在前一个控件的上层,并且不能设计控件的位置 ;FrameLayout37、以下有关RelativeLayout说法正确的是 ; 这种布局适合横竖屏切换比较频繁的应用38、关于RelativeLayout布局中,下面对属性描述不相符合的是 ;android:layout_marginLeft="40px"表示当前控件左边空出40像素的空间;android:layout_below="id/aclock"表示当前控件放置于引用名为aclock的控件的下方android:layout_centerInParent="true" 表示当前控件放置于父控件的横向和纵向的中央位置;android:layout_alignParentTop="id/mtop"表示当前控件和引用名为mtop的父控件顶端对齐不符合39、关于RelativeLayout描述正确的是 ;该布局为相对布局,其中控件的位置都是相对位置 ;40、在RelativeLayout布局中,有一个id为entry的EditText,目前有一个Button想放置在其左边,应为Button指定什么属性设置 ;android:layout_toLeftOf="id/entry"41、在一个相对布局中怎样使一个控件居中 ;android:layout_centerInParent="true"42、在表格布局中,android:collapseColumns="1,2"的含义是:在屏幕中,不管是否能都显示完,折叠1、2列43、绝对布局中,android:layout_x 的含义有以手机左上为原点,组件显示到屏幕中的横向坐标值;44、简述开发手机联盟45、以下哪一个类可以实现广播接收的功能 ;BroadcastReceiver46、Android系统有哪些特点1应用框架可以重复使用,其组件也可以更换;2Dalvik虚拟机针对移动设备进行了优化;3优化的图形能力支持2D/3D图形OpenGL ES ;4集成了基于开源WebKit引掣的浏览器;5采用SQLite实现结构化数据存储;6多媒体支持多种音频、视频格式;7GSM Telephonyhardware dependent;8支持蓝牙Bluetooth,3G和WiFi;9支持照相机、GPS、指南针和加速度仪等传感器硬件;10丰富的开发环境,包括模拟机、调试工具、内存运行检测,以及为Eclipse IDE所写的插件;47、在中注册一个广播,需要使用什么标签 ;<receiver>48、定义广播需要重写父类中的什么方法 ;onCreate49、在程序中,发送广播的方法是以下哪一个 ;sendBroadcast50、定义一个广播,需要继承哪个类BroadcastReceiver51、简述Android应用程序的组成;一般来说,Android 程序包含如下主要的组件类:活动Activity;用于表现功能服务Service;相当于后台运行的Activity 广播接收器BroadcastReceiver——用于接收广播意图; Intent——用于连接以上各个组件,并在其间传递消息;ContentProviders实现不同组件之间的数据共享;View提供了可视化界面的展示;52Dalvik虚拟机与Sun公司定义的标准虚拟机JVM有何不同1、Dalvik和JVM的首要差别是Dalvik基于寄存器而JVM基于栈,基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短;2Dalvik主要是完成对象生命周期管理,堆栈管理,线程管理,安全和异常管理,以及垃圾回收等等重要功能;3Dalvik负责进程隔离和线程管理,每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,其代码在虚拟机的解释下得以执行;4不同于JVM运行Java字节码,Dalvik虚拟机运行的是其专有的文件格式dex,dex文件格式可以减少文件整体尺寸,提高I/O操作的类查找速度;5所有的Android应用的线程都对应一个Linux线程,虚拟机因而可以更多的依赖操作系统的线程调度和管理机制;53、请谈一下Android系统的架构Android系统采用了分层架构,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层;54、Android开发环境搭建需要哪些主要步骤安装Java 安装Eclipse 安装Android SDK 安装Eclipse插件ADT55、 Windows环境下如何检测已经安装成功Java写一个简单的java程序来测试JDK是否已安装成功:public class HelloWorld{public static void mainString args{}}将以上代码保存为文档名为的文档;打开命令提示符窗口,进入到所在目录,键入下面的命令:javacjava HelloWorld如果屏幕如图,能够正确输出且不提示错误,表示JDK开发环境配置完成;56、什么是AVD,有哪些特点Android Virtual Device是一个经过配置的模拟器,可以模拟显示屏幕的大小、屏幕分辨率、触摸屏、轨迹球、键盘、GPS、声音播放、SD卡支持,缓存区大小等;AVD也存在着缺点,不能模拟重力感应、麦克风等一些硬件设备,因此有时候也需要实体手机上运行和测试Android应用程序;57、什么是ADTAndroid Development Tools plugin ADT 是使用Eclipse进行Android移动应用开发的一个方便的开发、仿真测试平台; 58、在手机的实机上进行开发调试需要在手机上如何设置在手机上进行开发调试需要在手机上进行设置,选择设置—应用程序-开发-USB调试,之后USB连接开发计算机才能进行开发调试;59、Activity,intent、Service和BroadCastReceiver之间是什么关系60、Intent的Action、Category属性的作用是什么Action属性主要用来定义Intent要执行的抽象动作,它是一个字符串;使用时只需在程序中定义,并在要访问组件的<intent-filter…/>子元素中声明就可以使用了;Category属性是对Action定义动作的补充,也是一个普通的字符串,通常两者结合使用;在文件里, <Activity…/>元素中所配置的子元素<intent-filter…/>的作用就是用于指定该Activity可响应的Intent;61、Intent的Data、Type属性的作用是什么Intent的Data属性的作用是向Action属性提供操作的数据;Data属性接受一个Uri对象,此对象可以决定所要操作数据的类型及数据的具体值;可以通过设置Type属性来显式指定特定类型数据MIME;一般Intent会根据数据本身对其数据类型进行判定,但是如果使用Intent的Type属性进行设置,可以实现强制显式指定的类型而不再进行推导;62、简述Intent的功能与作用;Intent是Android中各种组件之间传送信息的“信使”;中文里Intent有“意图、目的”的意思 ,在这里仍兼有这样的含义,因为在组件之间导航的过程中,我们也需要使用Intent将意图一并传递过去;上一章中,在一个Activity里激发另一个Activity的例子中就体现了Intent的功能;使用Intent的好处就是应用程序可以启动只具有某种特征的的组件,而不必指定某个具体的组件;Intent中可以封装不同组件之间进行导航的意图;这些意图需要通过Intent的属性来表现;63、Intent的实现策略分为几种类型,请分别叙述;Intent的实现策略即指Intent寻找组件的方法;这种策略分为两种:一种是直接Intent,也称为显式Intent;另一种是间接Intent,也称为隐式Intent;直接Intent方式需要通过指定Intent的Component属性调用setComponentComponentName或者setClassContext, Class来指定来实现;这样应用就会对应的启动所指定的具体组件类;在以上对Intent的Component属性的介绍中就说明过;这种策略主要在源组件知道目标组件名称的情况下使用;间接Intent策略中没有指定Component属性的Intent,寻找组件需要通过<intent-filter…/>子元素来实现;这就要求Intent中包含足够的信息,这样系统才能根据这些信息,在所有的可用组件中,确定出满足Intent的组件;64、Android系统提供的Action常量有哪些,如何使用;Action常量常量值字符串动作说明ACTION_CALL 呼叫指定用户ACTION_EDIT 对于指定数据进行编辑ACTION_VIEW 向用户显示指定数据ACTION_PICK 从列表中选择并返回某项目ACTION_DIAL 显示打电话面板,可以实现紧急呼叫ACTION_SEND 向他人发送数据短信ACTION_ANSWER 应答电话65、如何在程序清单文件中配置Activity对于应用程序中的每一个Activity我们都需要在程序清单文件中进行配置,这样才能有机会运行;这种配置也是非常简单的,方法就是在程序清文件的<application…/>元素中添加<Activity…/>子元素即可;添加时一般要注明该Activity的以下三个属性:1 name:指明要配置的Activity的实现类2 icon:指明要配置的Activity的图标3 label:指明要配置的Activity的标签在文件中我们除了要配置每一个Activity外,还需进行子元素<intent-filter…/>的配置,该元素用于指定Activity可响应的Intent;对于每一个应用程序来说,无论它是由几个Activity组成,但只有一个Activity是它的入口;到底哪一个是入口的Activity,这得由清单文件中的子元素<intent-filter…/>来决定;如果想指定某个Activity为程序入口,这时需在其对应的子元素<intent-filter…/>中必须具备如下属性:66、介绍与Activity生命周期相关的回调方法的功能及使用方法;与Activity生命周期相关的回调方法主要有以下七个:1 onCreate:当创建一个Activity时,系统会回调onCreate方法进行初始化设置,如创建视图、绑定数据至列表;2 onStart:当一个Activity开始执行时此方法被回调,这时的Activity是可见的,会紧跟在onCreate方法后面执行;3 onResume:当一个Activity真正开始运行或重新恢复时被回调,此时会获得焦点;当一个Activity运行时,如果用户又激活了另一个Activity,这时第一个Activity将会被暂停;在第一个Activity在没有被杀死的情况下,以后又有了重新运行的机会,那么就会直接调用onResume方法将其恢复;4 onPause:暂停Activity时被回调;如果在一个Activity运行时,用户又激活了另一个Activity,这时将会调用第一个Activity的onPause方法将其暂停;在Activity的状态变换过程中onResume和onPause方法经常被调用,因此在使用中应使用简单高效的代码;5 onStop:停止Activity时被回调;如果在一个Activity运行时,用户又激活了另一个Activity,而且第一个Activity很久都没有得到再次运行机会,就会调用onStop方法将第一个Activity停止;6 onReStart:在Activity从停止状态转换到活动状态前,回调该方法;当一个处于停止状态的Activity又获得了用户输入焦点,就会调用onRestart方法,重新开始执行这个Activity;7 onDestroy:在销毁Activity前,即进入非活动状态前,回调该方法;67、Activity在其生命周期中会处于哪几种状态一个Activity在其生命周期中会在四个重要状态间进行转换;下面分别说明各状态:1 活动状态,处于该状态时,Activity位于前台,用户可见且可获得焦点;2 暂停状态,处于该状态时,该Activity仍可见,但失去焦点,其它Activity位于前台;3 停止状态,处于该状态时,Activity不可见且失去焦点;4 销毁状态,处于该状态时,Activity被系统或进程结束;68、如何将一个Activity设置成窗口的样式;在中定义Activity的地方添加:android:theme=”android:style/”或android:theme=”android:style/”就变成半透明的69、使用资源包括哪几种方法1 在代码里使用资源类;2 在代码里调用资源类并实例化;3 从其他资源类里引用;70、谈谈android中常用的几种布局;在Android中,共有五种布局方式,分别是:FrameLayout框架布局,LinearLayout 线性布局,AbsoluteLayout绝对布局,RelativeLayout相对布局,TableLayout表格布局;1FrameLayout 框架布局,放入其中的所有元素都被放置在最左上的区域,而且无法为这些元素指定一个确切的位置,下一个子元素会重叠覆盖上一个子元素,适合浏览单张图片;2LinearLayout 线性布局,是应用程序中最常用的布局方式,主要提供控件水平或者垂直排列的模型,每个子组件都是以垂直或水平的方式来定位默认是垂直;3AbsoluteLayout 绝对定位布局,采用坐标轴的方式定位组件,左上角是0,0点,往右x轴递增,往下Y轴递增,组件定位属性为android:layout_x 和 android:layout_y来确定坐标;4RelativeLayout 相对布局,根据另外一个组件或是顶层父组件来确定下一个组件的位置;和CSS里面的类似;5TableLayout 表格布局,类似Html里的Table.使用TableRow来布局,其中TableRow代表一行,TableRow的每一个视图组件代表一个单元格;71、android中常用的数据存储方式有哪些常用的数据存储方式:SharePreference存储、File存储分为手机内存存储和SD卡存储、SQLite数据库存储和网络存储;72、一个Activity就是一个可视化的界面或者看成是控件的容器;对73、Intent有很长的生命周期,是没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 ; 错74、当Antivity的启动模式设置为SingleTop表示当该Anctivity的实例在栈顶时只会产生一个实例;对75、onPause方法在activity被暂停或收回cpu和其他资源时调用,该方法用于保存活动状态的,也是对运行时数据的现场保护; 对76、onDestroy是activity被结束掉前最后一个被调用方法,当调用finish方法或者系统为了节省空间将它暂时性的结束掉时候调用;对77、不是所有的Activity都有自己的生命周期; 错78、 onPause 是service的生命周期方法错79、如果service已经启动,再次启动该服务时将先后调用onCreate和onStartCommand方法; 错80、利用HttpURLConnection的.getInputStream方法得到的是字符流;错81、程序中使用http协议从网上下载文件时,无需设置访问网络的权限;错82、使用startService方法启动服务后,调用者和服务间没有关联,即使调用者退出了,服务任然进行;对83、当应用程序中某广播在AndroidMainifest进行注册后,即使该应用程序关闭后,也可以接受操作系统发出的广播信息;对84、UIthread 通常就是main thread,Android启动程序时会替它建立一个MessageQueue; 对85、广播接收器可以在Activity中单独注册与注销;对86、广播接收器只能在配置文件中注册; 错87、对下面代码: =new long{100,200,100,500}, 其中notification是通知管理器对象,表示我们对Notification设置了震动,并且是100ms延迟后,震动200ms,然后停止100ms,再震动500ms 对88、使用Notification时,需要发送广播实现notify; 错89、在中注册广播,需要使用标签; 对90、有2种方式注册BroadcastReceiver的方法,一是静态的在中注册,二是动态的在代码中注册; 对91、如果需要一个通知立即显示,那么在构造Notification对象的时候,需要在构造函数的第三个参数中传递 new Calendar的值错92、取消注册BroadcastReceiver,调用方法对93、编写用Intent实现的用户登录程序;要求:在第一个界面上输入用户名和密码,在第二个界面上显示前一界面中输入的用户名和密码;:public class MainActivity extends Activity {private TextView user, pass;private EditText username, password;private Button loca;Overrideprotected void onCreateBundle savedInstanceState {savedInstanceState;new MyButtonListener;}class MyButtonListener implements OnClickListener {Overridepublic void onClickView v {String tx1 = .toString;String tx2 = .toString;Intent intent = new Intent;"tx1", tx1;"tx2", tx2;, ;}}}:public class OtherActivity extends Activity {private TextView te1, te2, te3, te4;Overrideprotected void onCreateBundle savedInstanceState { savedInstanceState;Intent intent = getIntent;String value1 = "tx1";String value2 = "tx2";value1;value2;}}:android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextViewandroid:id="+id/user"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="用户名" /><EditTextandroid:id="+id/username"android:layout_width="fill_parent"android:layout_height="wrap_content" /><TextViewandroid:id="+id/pass"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="密码" /><EditTextandroid:id="+id/password"android:layout_width="fill_parent"android:layout_height="wrap_content" /><Buttonandroid:id="+id/loca"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="登陆" /></LinearLayout>:<xml version="" encoding="utf-8">android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal" ><TextViewandroid:id="+id/te1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="用户名:" /><TextViewandroid:id="+id/te2"android:layout_width="wrap_content"android:layout_height="wrap_content"/><TextView android:id="+id/te3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="密码:" /><TextViewandroid:id="+id/te4"android:layout_width="wrap_content"android:layout_height="wrap_content"/></LinearLayout>:<xml version="" encoding="utf-8"><resources><string name="app_name">android intent</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world</string> </resources>94、编写程序实现如下功能:1 程序包含2个Activity2 Activity01包含一个按钮,点击按钮跳转到Activity02;3 Activity02包含一个按钮,点击按钮跳转到Activity01; :public class Activity01 extends Activity{Overridepublic void onCreateBundle savedInstanceState{savedInstanceState;"启动Activity02";new OnClickListener{Overridepublic void onClickView v{Intent intent=new Intent,;startActivityintent;}};}}public class Activity02 extends Activity{Overridepublic void onCreateBundle savedInstanceState {savedInstanceState;"进入Activity01";new OnClickListener{Overridepublic void onClickView v{Intent intent=new Intent,;startActivityintent;}};}}:<xml version="" encoding="utf-8">android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextView android:id="+id/textView1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Activity01" /><Button android:id="+id/button1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="启动Activity" /></LinearLayout>:<xml version="" encoding="utf-8">android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextViewandroid:id="+id/textView1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Activity02" /><Buttonandroid:id="+id/button3"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Button" /></LinearLayout>:<xml version="" encoding="utf-8"><resources><string name="action_settings">Settings</string><string name="hello_world">Activity01</string></resources>95、使用CheckBox控件实现多项选择;要求:添加4个选项,名称分别为:swim 、run 、 dance 、walk:public class MainActivity extends Activity {TextView m_TextView1;Button m_Button1;CheckBox m_CheckBox1;CheckBox m_CheckBox2;CheckBox m_CheckBox3;CheckBox m_CheckBox4;/ Called when the activity is first created. /Overridepublic void onCreateBundle savedInstanceState {savedInstanceState;m_CheckBox1.setOnCheckedChangeListenernew {public void onCheckedChangedCompoundButton buttonView,boolean isChecked {if {DisplayToast"你选择了:" + ;}}};m_CheckBox2.setOnCheckedChangeListenernew {public void onCheckedChangedCompoundButton buttonView,boolean isChecked {if {DisplayToast"你选择了:" + ;}}};m_CheckBox3.setOnCheckedChangeListenernew {public void onCheckedChangedCompoundButton buttonView,boolean isChecked {if {DisplayToast"你选择了:" + ;}}};m_CheckBox4.setOnCheckedChangeListenernew {public void onCheckedChangedCompoundButton buttonView,boolean isChecked {if {DisplayToast"你选择了:" + ;}}};new {public void onClickView v {int num = 0;if {num++;}if {num++;}if {num++;}if {num++;}DisplayToast"谢谢参与你一共选择了" + num + "项";}};}public void DisplayToastString str {Toast toast = this, str, ;, 0, 240;;}}:<xml version="" encoding="utf-8">android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextViewandroid:id="+id/textview"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="string/hello_world" /><CheckBoxandroid:id="+id/checkbox1"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="string/CheckBox1" ></CheckBox><CheckBoxandroid:id="+id/checkbox2"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="string/CheckBox2" ></CheckBox><CheckBoxandroid:id="+id/checkbox3"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="string/CheckBox3" ></CheckBox><CheckBoxandroid:id="+id/checkbox4"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="string/CheckBox4" ></CheckBox><Buttonandroid:id="+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="提交" ></Button></LinearLayout><xml version="" encoding="utf-8"><resources><string name="app_name">Lab</string><string name="action_settings">Settings</string><string name="hello_world">Hello world</string><string name="CheckBox1">swim</string><string name="CheckBox2">run</string><string name="CheckBox3">dance</string><string name="CheckBox4">walk</string></resources>96、设计加减法计算器;要求:程序包括两个页面,第一个页面主要包括两个文本编辑框,用于输入两个操作数,输入操作数后,单击系统的MENU按钮,会弹出Menu菜单,Menu菜单包括“相加”、“相减”和“退出”三个按钮,当点击“相加”按钮会对两个操作数执行加法,当点击“相减”按钮时,会对两个操作数执行减法,在另一个页面会显示计算结果;:packageimportimportimportimportimportimport ;import ;importimportimportpublic class MainActivity extends Activity {/ Called when the activity is first create;d. /private EditText factorOne;private EditText factorTwo;private TextView symbol;private Button calculate;Overridepublic void onCreateBundle savedInstanceState {savedInstanceState;setContentView factorOne = EditTextfindViewById factorTwo = EditTextfindViewById symbol = TextViewfindViewById }Overridepublic boolean onCreateOptionsMenuMenu menu {0, 1, 1, 0,2,2, 0,3,3, return menu;}public void add {String factorOneStr = .toString;String factorTwoStr = .toString;Intent intent = new Intent;"one", factorOneStr;"two", factorTwoStr;"three", "+";, ;startActivityintent;}public void sub {String factorOneStr = .toString;String factorTwoStr = .toString;Intent intent = new Intent;"one", factorOneStr;"two", factorTwoStr;"three", "-";, ;startActivityintent;}Overridepublic boolean onOptionsItemSelectedMenuItem item {if==1{finish;}else if==2{add;}else if==3{sub;}return item;}}:packageimportimportimportimportpublic class ResultActivity extends Activity{private TextView resultView;Overrideprotected void onCreateBundle savedInstanceState {savedInstanceState;setContentView resultView = TextViewfindViewById Intent intent = getIntent;String factorOneStr = "one";String factorTwoStr = "two";String symbolStr = "three";int factorOneInt = factorOneStr;int factorTwoInt = factorTwoStr;int result = 0;if"+"{result = factorOneInt+factorTwoInt;}else if"-"{result = factorOneInt-factorTwoInt;}result+"";}}:<xml version=""encoding="utf-8"><LinearLayout xmlns:android=android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TextViewandroid:id="+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="操作数一"/><EditTextandroid:id="+id/factorOne"android:layout_width="fill_parent"android:layout_height="wrap_content"/><TextViewandroid:id="+id/symbol"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="string/symbol"/> <TextViewandroid:id="+id/textView2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="操作数二"/><EditTextandroid:id="+id/factorTwo"android:layout_width="fill_parent"android:layout_height="wrap_content"/></LinearLayout>:<xml version=""encoding="utf-8"><LinearLayout xmlns:android=android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:id="+id/result"android:layout_width="fill_parent"android:layout_height="wrap_content"/></LinearLayout><xml version=""encoding="utf-8"><resources><string name="hello">Hello World</string><string name="app_name">简易计算器</string><string name="action_settings">Settings</string><string name="resultLabel">result</string><string name="symbol">和</string><string name="calculate">计算</string><string name="exit">退出</string><string name="add">相加</string><string name="sub">相减</string></resources>97、制作进度条;要求:点击“开始”按钮进入进度条显示页面,然后每点击一次开始按钮,第一进度条和第二进度条都会发生变化,并将变化的值在页面上显示出来;public class ProgressBarTest extends Activity {private ProgressBar FirstBar=null;private Button myButton=null;private TextView tView;private TextView tView02;private int i=0;Overrideprotected void onCreateBundle savedInstanceState {savedInstanceState;new ButtonListener;}class ButtonListener implements OnClickListener{Overridepublic void onClickView v{ifi==0{;;;100;}else ifi<{i;"第一进度条的值为"+i+"";int y=i+10;"第二进度条的值为"+y+"";i+10;}else{;}i=i+10;}}Overridepublic boolean onCreateOptionsMenuMenu menu {return true;}}<LinearLayout xmlns:android=xmlns:tools=android:orientation="vertical"android:layout_width="wrap_content"android:layout_height="wrap_content"><ProgressBarandroid:id="+id/FirstBar"style="android:attr/progressBarStyleHorizontal"android:layout_width="200dp"android:layout_height="wrap_content"android:visibility="gone"/><TextViewandroid:id="+id/text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:visibility="gone"/><TextViewandroid:id="+id/text02"android:layout_width="wrap_content"android:layout_height="wrap_content"android:visibility="gone"/><Buttonandroid:id="+id/myButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="begin"/></LinearLayout><xml version=""encoding="utf-8"><resources><string name="app_name">Android_aaa</string><string name="action_settings">Settings</string>。
Q:简述Android平台体系结构的层次划分,并说明各个层次的作用。
A:Android是基于Linux内核的软件平台和操作系统,采用了软件堆栈的架构,共分为4层:第一层Linux内核,提供有操作系统内核管理的底层基础功能;第二层中间层,由函数库和Android运行时构成;第三层应用程序框架层,提供了Android平台的管理功能和组件重用机制;第四层应用程序层,提供了一系列核心应用程序。
Q:在AndroidSDK中,Android模拟器,Android调试桥和DBMS 是Android应用程序开发过程中经常使用的工具,简述这三个工具的用途。
A:Android模拟器
支持多种屏幕分辨率和不同的外观,支持加载SD卡映像文件,更改模拟网络状态,延迟
和速度,模拟电话呼叫和接收短信等;不支持接听真实电话,USB连接,摄像头捕获,设
备耳机,电池电量和AC电源检测,SD卡插拔检查和使用蓝牙设备
Android调试桥(Android Debug Bridge,ADB)
用于连接Android设备或模拟器的工具,负责将应用程序安装到模拟器和设备中,或从
模拟器或设备中传输文件
DDMS
Android系统中内置的调试工具,监视Android系统中进程、堆栈信息,查看logcat日
志,实现端口转发服务和屏幕截图功能,模拟器电话呼叫和SMS短信,以及浏览Android
模拟器文件系统等.
Q:简述Activity声明周期的4种状态,以及状态之间的变换关系。
A:Activity生命周期指Activity从启动到销毁的过程Activity启动后处于活动状态,此时Activity在用户界面中处于最上层,完全能被用
户看到,能够与用户进行交互。
如果用户启动了新的Activity,部分遮挡了当前的
Activity,则当前的Activity转换为暂停状态,该Activity不再处于用户界面的最上
层,且不能够与用户进行交互。
如果用户启动了新的Activity完全遮挡当前的Activity,
则当前的Activity转换为停止状态,停止状态的Activity 将优先被终止。
活动状态的
Activity被用户关闭后,或暂停状态或停止状态的Activity被系统终止后Activity便
进入了非活动状态。
Q:简述Android系统三大菜单的特点以及使用方式
A:菜单是应用程序中非常重要的组成部分,在不占用界面空间的前提下,为应用程序提供了统一的功能和设置界面,为程序开发人员提供了易于使用的编程。
Android系统支持三种菜单
选项菜单(Option Menu):按设备上Menu 键显示的菜单。
子菜单(Submenu):其它两种菜单都可以加入子菜单,但子菜单不能再嵌套子菜单
快捷菜单(Context Menu):长按特定界面view显示,跟具体的 view 绑定在一起,类
似PC上鼠标右键菜单。
Q:简述Intent的定义和用途.
A:Intent是一个动作的完整描述,包含了动作的产生组件、接收组件和传递的数据信息
Intent也可称为一个在不同组件之间传递的消息,这个消息在到达接收组件后,接收组
件会执行相关的动作,Intent为Activity、Service和BroadcastReceiver等组件提供
交互能力。
Intent的用途:启动Activity和Service,在Android系统上发布广播消息.
Q:简述Service的基本原理和用途。
A:Service是Android系统提供的Service(服务)组件,不直接与用户进行交互,能够长期在后台运行,在实际应用中,有很多应用需要使用Service,经常提到的例子就是MP3播放器。
Service被系统终止,在系统资源恢复后Service 也将自动恢复运行状态,因此可以认为Service是在系统中永久运行的组件。
Service除了可以实现后台服务功能,还可以用于进程间通信(Inter Process Communication,IPC),解决不同Android应用程序进程之间的调用和通讯问题。
Q:简述R.java和AndroidManifest.xml文件的用途
A:AndroidManifest.xml是XML格式的Android程序声明文件,包含了Android系统运行Android程序前所必须掌握的重要信息,这些信息包括应用程序名称、图标、包名称、
模块组成、授权和SDK最低版本等R.java文件是ADT自动生成的文件包含对drawable、layout和values目录内的资源的引用指针,Android程序能够直接通过R类引用目录中的资源。
Q:简述Android系统的4种基本组件Activity,Service,BroadcastReceiver和ContentProviser的用途。
A: Activity是Android程序的呈现层,显示可视化的用户界面,并接收与用户交互所产生界面事件。
Android应用程序可以包含一个或多个Activity,一般需要指定一个程序启动时显示的Activity。
几乎所有的Activity都是和用户进行交互的,Activity主要关注视图窗体创建,对用户表现为全屏窗体。
从视觉效果来看,一个Activity占据当前的窗口,响应所有窗口事件,具备有控件,菜单等界面元素。
从内部逻辑来看,Activity需要为了保持各个界面状态,需要做很多持久化的事情,还需要妥善管理生命周期,和一些转跳逻辑。
Service一般用于没有用户界面,但需要长时间在后台运行的应用,可公开Service的程序接口,供其他进程调用。
Service是Android实现程序后台运行的解决方案,用于执行不需要和用户交互且要求长期运行的任务。
不能运行在一个独立的进程当中,而依赖创建服务时所在的应用程序进程。
只能在后台运行,可以和其他组件进行交互。
Broadcast Receiver用来接收广播消息的组件,不包含任何用户界面。
可以启动Activity或者Notification通知用户接收到重要信息。
广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。
ContentProvider是Android系统提供的一种标准的共享数据的机制,其他程序通过ContentProvider访问程序的私有数据.Android系统内部提供一些内置的ContentProvider,能够为应用程序提供重要的数据信息,同一份数据,手机内没有更多的空间存储两次以上。
针对这种情况,Android提供了Content Provider,它是不同应用程序间共享数据的标准API,统一了数据访问方式。
包括添加、删除、修改和查询等操作。
Q:简述6种界面布局的特点
A:线性布局(LinearLayout)是一种重要的界面布局,在线性布局中,所有的子元素都按照垂直或水平的顺序在界面上排列,如果垂直排列,则每行仅包含一个界面元素,如果水平排列,则每列仅包含一个界面元素;
框架布局(FrameLayout)是最简单的界面布局,是用来存放一个元素的空白空间,且子元素的位置是不能够指定的,只能够放置在空白空间的左上角,如果有多个子元素,后放置的子元素将遮挡先放置的子元素;
表格布局(TableLayout)是一种常用的界面布局,通过指定行和列将界面元素添加
到表格中,网格的边界对用户是不可见的。
表格布局支持嵌套,可以将表格布局放
置在表格布局的表格中可以在表格布局中添加其他界面布局,例如线性布局、相对
布局等;
相对布局(RelativeLayout)是一种非常灵活的布局方式,能够通过指定界面元素
与其他元素的相对位置关系,确定界面中所有元素的布局位置,能够最大程度保证
在各种屏幕尺寸的手机上正确显示界面布局
绝对布局(AbsoluteLayout)能通过指定界面元素的坐标位置,来确定用户界面的
整体布局绝对布局是一种不推荐使用的界面布局,因为通过X轴和Y轴确定界面元
素位置后,Android系统不能够根据不同屏幕对界面元素的位置进行调整,降低了
界面布局对不同类型和尺寸屏幕的适应能力
网格布局(GridLayout)将用户界面划分为网格,界面元素可随意摆放在网格中,
网格布局比表格布局(TableLayout)在界面设计上更加灵活,在网格布局中界面元
素可以占用多个网格,而在表格布局只能将界面元素指定在一个表格行(TableRow)
中,不能跨越多个表格行。