(完整word版)AndroidAPP开发期末复习资料
Android手机开发期末考试简答题
1.简述Android 平台的特征有哪些。
答:开放性、挣脱运行商的束缚、丰富的硬件选择、无缝结合的Google应用2.简述Android 平台开发环境搭建的步骤.答:安装Java JDK,安装Eclipse,安装Android SDK,搭建Eclipse集成开发环境(IDE)、配置ADT(Android Development Tools)、创建AVD(Android Virtual Device)3。
简述Android系统架构从高到低的几个层次.答:四个层次,分别是:应用程序层(Applications)、应用程序框架层(Application Framework)各种库(Libraries)和运行环境(Runtime)、Linux内核(Linux kernel)4.应用程序的基本组件有哪些?答:Activity、Service、Content Provider、BroadCast Receiver5.Android根据应用程序的组件以及组件当前运行状态将所有的进程按重要性程度从高到低划分为几个?答:可以划分为5个:前台进程、可见进程、服务进程、后台进程、空进程6.随着Activity的创建和销毁,可能会经历哪四种状态?答:活动状态:当前的Activity,位于Activity栈顶,用户可见,并且可以获得焦点暂停状态:失去焦点的Activity,依然可见,即使在内存低的情况下,也不会被系统杀死停止状态:该Activity被其他Activity所覆盖,不可见,但是仍然保存所有的状态和信息.当内存低的情况下,它将要被系统杀死销毁状态:该Activity结束,或Activity所在的Dalvik进程结束7。
使用资源包括哪几种方法?答:在代码里使用资源类;在代码里调用资源类并实例化;从其他资源类里引用8。
AndroidManifest。
xml主要包含哪些功能?答:说明application的java数据包,数据包名是application的唯一标识描述application的component说明application的component运行在那个process下声明application的权限,用以访问受保护的API,以及与其他application进行交互声明application的其他必备权限,用以与component进行交互列举application运行时所需要的配置信息,这些声明信息只有在程序开发和测试时存在,在发布前被删除声明application所需要的Android API的最低级版本列举application所需要链接的库9。
安卓期末考试知识总结
安卓期末考试知识总结第一章: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):相对布局是一种基于相对位置的布局方式,可以通过设置组件相对于其他组件或父容器的位置来实现布局。
完整word版AndroidAPP开发期末复习资料
1.短信的内容提供者是()A. ContactProviderB. MessageProviderC. SmsProviderD. TelephonyProvider2.以下是Android中用于xml解析方式的是()。
A. SAXB. DOMC. XmlPullParserD. Juint3.下列选项中,关于Bitmap类描述正确的是()。
A. Bitmap类表示画B. Bitmap类代表画布C. Bitmap类是最常用的绘图类D. Bitmap类表示位图工厂4.Dalvik虚拟机是基于()的架构。
A.栈B.堆C. 寄存器D. 存储器5.在Android UI开发中,常见的刮刮卡是通过()实现的。
A.FrameLayout C.RelativeLayoutB.LinearLayoutD.TableLayout)。
6.注册一个短信到来的广播事件需要在清单文件配置什么权限(A.<uses-permission android:name=android.permission.SMS\/>B.<uses-permissionandroid:name=android.permission.SEND_SMS\/>C.<uses-permissionandroid:name=android.permission.RECEIVE_SMS\/>D. <uses-permissionandroid:name=android.permission.RECEIVE_SEND_SMS\/>关于服务的创建说法错误的是()。
7.中的服务需要在中创建服务需要继承A. AndroidService B. Android 类清单文件配置。
.C. Android 中的服务可以理解成是在后台运行且没有界面的activity。
D. Android中定服务能做的事情完全可以开一个子线程替代。
Android复习资料
(带答案)A n d r o i d复习资料(共17页)-本页仅作为预览文档封面,使用时请删除本页-选择题1. 下面不是Android四大组件之一的( B )A. Activity C. Service D. ContentProvider2. 下面关于广播叙述错误的是(A)A. 广播是Android四大组件之一B. BroadcastReceiver有两种注册方式,静态注册和动态注册C. 静态注册需要在中配置D. 动态注册需要在应用退出时候接触广播的注册。
3. 下面关于BroadcastReceiver错误的是(B):A. BroadcastReceiver有两种注册方式,静态注册和动态注册。
B. BroadcastReceiver必须在AndroidMainfest文件中声明C. BroadcastReceiver的使用,一定有一方发送广播,有一方监听注册广播,onReceive方法才会被调用。
D. 广播发送的Intent都是隐式启动。
4. 下面关于谁先接收广播顺序错误的是(B)A. 有序广播,优先级高的先接收B. 有序广播,同优先级的动静态广播接收器,静态优先于动态。
C. 有序广播,同优先级的动态广播接收器,先注册的大于后注册的。
D. 普通广播时,无视优先级,动态广播接收器优先于静态广播接收器5. 下面关于广播说法错误的是(B)A. 广播分为有序广播和无序广播B. 使用abortBroadcast方法可以中断所有广播的传递。
C. 广播注册方式分为动态和静态D. sendOrderBroadcast用来向系统广播有序事件,sendBroadcast()是用来广播无序事件。
6. 下列关于Intent启动组件说法错误的是(C)( ) B. startService( ) C. startBroadcastReceiver() ()7. 对于广播的发送,Intent的启动方式是(B)A.显式启动B. 隐式启动C. A和B都可以D. 以上说法都不正确。
Android复习资料
Android复习资料编著--太理表白墙一、单选题1、退出 activity 对一些资源以及状态的操作保存,可以在生命周期的哪个函数中进行 aA、onPause()B、onCreate()C、onResume()D、onStart()2、Android 项目工程下面的 assets 目录的作用是什bA、放置应用到的图片资源。
Res/drawableB、主要放置一些文件资源,这些文件会被原封不动打包到 apk 里面C、放置字符串,颜色,数组等常量数据 res/valuesD、放置一些与 UI 相应的布局文件,都是 xml 文件 res/layout3、下列不属于android布局的是(c)A、FrameLayoutB、LinearLayoutC、BorderLayoutD、TableLayoutE、RelativeLayout4、Intent 的作用的是 aA、intent是连接四大组件的纽带,可以实现界面间切换,可以包含动作和动作数据,B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 serviceC、实现应用程序间的数据共享 contentproviderD、处理一个应用程序整体性的工作5、下列哪个是AbsoluteLayout中特有的属性 bA,android:layout_height B,android:layout_xC,android:layout_above D,android:layout_toRightOf6、RatingBar组件中不能用属性直接设置的是dA,五角星个数 B,当前分数C,分数的增量D,五角星的色彩7、关于BroadcastReceiver的说法不正确的是_b_A, 是用来接收广播Intent的B,一个广播Intent只能被一个订阅了此广播的BroadcastReceiver所接收C,对有序广播,系统会根据接收者声明的优先级别按顺序逐个执行接收者D,接收者声明的优先级别在<intent-filter>的android:priority属性中声明,数值越大优先级别越高8、在android中使用RadioButton时,要想实现互斥的选择需要用的组件是 dA,ButtonGroup B, RadioButtons C,CheckBox D,RadioGroup9、DDMS中Log信息分为几个级别_c_A,3 B,4 C,5 D,610、能够自动完成输入内容的组件是_d__A,TextView B,EditText C,ImageView D,AutoCompleteTextView11、创建子菜单的方法是_b__A,add B,addSubMenu C,createSubMenu D,createMenu12、使用AIDL完成远程service方法调用下列说法不正确的是_a_A, aidl对应的接口名称不能与aidl文件名相同 B, aidl的文件的内容类似java代码C, 创建一个Service(服务),在服务的onBind(Intent intent)方法中返回实现了aidl接口的对象D,aidl对应的接口的方法前面不能加访问权限修饰符13、处理菜单项单击事件的方法不包含_d_A, 使用onOptionsItemSelected(MenuItem item)响应B,使用onMenuItemSelected(int featureId ,MenuItem item) 响应C,使用onMenuItemClick(MenuItem item) 响应D,使用onCreateOptionsMenu(Menu menu)响应14、进度条中哪个属性是设置进度条大小格式的_d_A,android:secondaryProgress B,android:progress C,android:max D,style15、下列用以显示一系列图像的是_b_A,ImageView B,Gallery C,ImageSwitcher D,GridView16、表示下拉列表的组件是_b__A,Gallery B,Spinner C,GridView D,ListView17、关于AlertDialog的说法不正确的是_a_A,要想使用对话框首先要使用new关键字创建AlertDialog的实例B,对话框的显示需要调用show方法C,setPositiveButton方法是用来加确定按钮的D,setNegativeButton方法是用来加取消按钮的18、下列说法错误的是__d__A,Button是普通按钮组件,除此外还有其他的按钮组件B,TextView是显示文本的组件,TextView是EditText的父类C,EditText是编辑文本的组件,可以使用EditText输入特定的字符D,ImageView是显示图片的组件,可以通过设置显示局部图片19、上下文菜单与其他菜单不同的是_b_ A,上下文菜单项上的单击事件可以使用onMenuItemSelected方法来响应 B,上下文菜单必须注册到指定的view上才能显示 C,上下文菜单的菜单项可以添加,可以删除 D,上下文菜单的菜单项可以有子项20、拖动条组件是_c_ A,RatingBar B,ProgressBar C,SeekBarD,ScrollBar21、关于隐式Intent正确的是_a_ A, android中使用IntentFilter 来寻找与隐式Intent相关的对象 B,通过组件的名称寻找与intent相关联的对象 C, 隐式Intent更多用于在应用程序内部传递消息 D, 一个声明了IntentFilter的组件只能响应隐式Intent请求22、多选框被选择事件通常用__b__ A,setOnClickListenerB,setOnCheckChangeListener C, setOnMenuItemSelectedListener D,setOnCheckedListener23、自定义对话框时,将视图对象添加到当前对话框的方法是_d_ A,setIcon B,setXML C,setLayout D,setView24、下列不属于service生命周期的方法是_C_ A,onCreateB,onDestroy C,onStop D,onStart25、绑定Service的方法是_a__ A,bindService B, startService C,onStart D,onBind二、填空题:26、当启动一个Activity并且新的Activity执行完后需要返回到启动它的Activity来执行的回调函数是_____startActivityResult()27、 android中输入日期的组件是__DatePicker ___28、 AIDL的全称是__ Android interface definition language__29、android中输入时间的组件是_TimePicker______30、Android应用的入口点是 ____Main___31、android系统4个应用程序之一,主要用于后台运行和跨进程访问的是_service__32、创建只显示文本的Toast对象时建议使用__makeText---方法四、简答题1.Intent有哪些属性(或Intent组成)?Intent对象由组件名称(type)、Action、Data、Category、Extra 及component这6部分组成。
(完整word版)AndroidAPP开发期末复习资料
1。
短信的内容提供者是( )A。
ContactProviderB. MessageProviderC. SmsProviderD. TelephonyProvider2.以下是Android中用于xml解析方式的是( )。
A。
SAX B. DOM C. XmlPullParser D。
Juint3.下列选项中,关于Bitmap类描述正确的是()。
A。
Bitmap类表示画 B. Bitmap类代表画布 C。
Bitmap类是最常用的绘图类D。
Bitmap类表示位图工厂4。
Dalvik虚拟机是基于( )的架构。
A.栈B。
堆 C. 寄存器 D. 存储器5.在Android UI开发中,常见的刮刮卡是通过( )实现的。
A。
FrameLayout B。
LinearLayout C。
RelativeLayout D.TableLayout6.注册一个短信到来的广播事件需要在清单文件配置什么权限()。
A. 〈uses-permission android:name="android。
permission。
SMS"/>B.<uses—permissi onandroid:name=”android。
permission。
SEND_SMS"/〉C。
〈uses—permissionandroid:name=”android.permission.RECEIVE_SMS”/〉D。
<uses-permission android:name=”android。
permission。
RECEIVE_SEND_SMS”/〉7.关于服务的创建说法错误的是()。
A。
Android中创建服务需要继承Service类 B。
Android 中的服务需要在清单文件配置. C。
Android 中的服务可以理解成是在后台运行且没有界面的activity。
D。
Android中定服务能做的事情完全可以开一个子线程替代。
android期末复习资料2
1.2007年11月,谷歌发起,33家厂商组成开发手持设备联盟(OHA),发布Android平台。
2.Android简介:原意为“机器人”符合环保、轻薄短小、功能强大、号称第一。
3.Android特点开放源码、多任务、个性化、虚拟键盘、超强网络功能、集成开发环境。
4、Android开发环境搭建支持平台:Windows、MacOS、Linux 开发语言:JAVA、C/C++开发环境需要:JDK、IDE、SDK 开发环境的搭建套路:JDK+Eclipse+ADT插件+SDK 稍繁琐JDK+ADT Bundle+SDK 主流JDK+Android Studio+SDK 较新5、AVD(Android模拟器)的作用测试不同分辨率下的界面布局6.Target:Android SDK版本7.基准屏幕:480*320 density(密度)=160 单位dp,dip8.打开已有项目importMinimum Required SDK:应用程序支持的最低版本。
Target SDK:目标版本。
Compile With:编译时使用的平台版本。
Application Name:应用程序的标题Package Name:应用程序包名,重要属性!9、包名采用“反域名命名规则”:例如:10.src文件夹默认包和新建包源码文件的存放位置res文件夹最重要的部分,存放各种资源文件drawable文件夹:有关图形的资源关于分辨率问题的处理图形资源包括普通图片文件和xml文件layout文件夹:界面布局文件关于用户界面布局文件纯代码可视化drag&dropvalues文件夹:参数设置文件strings.xml 字符串dimens.xml 尺寸/度量相关设置colors.xml 颜色值gen文件夹:自动生成的文件R.java 资源索引文件11.如何使用资源索引XML文件中引用语法:@类名称/字段名JAVA代码中引用语法:R.类名称.字段名12.创建资源索引的原因:资源索引不但在使用的语法上较为方便,也可节省内存,因为重复使用资源时,而内存中只保留一份,可提高执行效率。
安卓期末复习资料整理全
复习提示:考试分为选择题,简答题和综合题。
PPT中的内容主要是给⼤大家参考简答题和相关的基本概念。
其主要考点如下:1.Activity的概念和⽣生命周期Activity是Android的四⼤大组件之⼀一,它是⼀一种可以包含⽤用户界⾯面的组件,主要⽤用于和⽤用户进⾏行行交互,⽐比如打电话,照相,发送邮件,或者显示⼀一个地图!Activity⽤用于显示⽤用户界⾯面,⽤用户通过Activity交互完成相关操作,⼀一个App允许有多个Activity。
2.Intent的概念和隐式Intent的使⽤用机制显式:1 //显示⽅方式声明Intent,直接启动SecondActivity2 Intent it = newIntent(MainActivity.this,SecondActivity.class);3 //启动Activity4 startActivity(it);隐式:1 // 实例例化Intent2 Intent it = new Intent();3 //设置Intent的Action属性4it.setAction("com.android.activity.MY_ACTION");5 // 启动Activity6 startActivity(it);3.隐式Intent与显式Intent的区别显式Intent直接⽤用组件的名称定义⽬目标组件,这种⽅方式很直接。
但是由于开发⼈人员往往并不不清楚别的应⽤用程序的组件名称,因此,显式Intent更更多⽤用于在应⽤用程序内部传递消息。
⽐比如在某应⽤用程序内,⼀一个Activity启动⼀一个Service。
隐式Intent恰恰相反,它不不会⽤用组件名称定义需要激活的⽬目标组件,它更更⼴广泛地⽤用于在不不同应⽤用程序之间传递消息。
在显式Intent消息中,决定⽬目标组件的唯⼀一要素就是组件名称,因此,如果你的Intent中已经明确定义了了⽬目标组件的名称,那么你就完全不不⽤用再定义其他Intent 内容。
完整word版,Android开发技术期末考试复习题
试题一、选择题1 android虚拟设备的缩写是(A VD)2 Android SDK目前支持的操作系统(Linux)3 Android开发工具插件(ADT)没有提供的开发功能(自动更新)4 Android SDK提供一些开发工具可以把应用软件打包成Android格式文件(APK)5 Android当中基本的所有的UI都是由(view)或者其子类实现的7下列不是Activity的生命周期方法之一的是()onCreate onStart onRestart onResume onPause onStop onDestroy8 以下可以做EditText编辑框的提示信息是(adroid:hint)以下不是手机操作系统的是(windows vista)下列哪个属性是专用于相对布局的(D)A.android.orientation 线性vertical 垂直horizontalB.android:stretchColumnsC.android:layout_alignParentRightD.android:layout_toRightOf定义LinearLayout垂直方向布局时设置的属性( D )A.android:layout_heightB.android:gravityC.android:layoutD. android:orientation vertical 垂直为了使android适应不同分辨率的机型,布局时字体单位应用( D )A.dpB.dip 像素C.pxD.sp下面属于android的动画分类的有( AB)A.TweenB.FrameC.DrawD.Animation Property Animation属性动画android 关于service生命周期的onCreate()和onStart()说法正确的是( AD )A.当第一次启动的时候先后调用onCreate()和onStart()方法B.当第一次启动的时候只会调用onCreate()方法C.如果service已经启动,将先后调用onCreate()和onStart()方法D.如果service已经启动,只会执行onStart()方法,不在执行onCreate()方法在android中使用Menu时可能需要重写的方法有(AC)A、onCreateOptionsMenu() 三种菜单:选项菜单、上下文菜单、子菜单B、onCreateMenu()C、onOptionsItemSelected()D、onItemSelected()Intent传递数据时,下列的数据类型哪些可以被传递(ABCD)A、SerializableB、charsequenceC、ParcelableD、Bundlejava.io包中的( A )和( B )类主要用于对对象Object的读写。
android期末考试题及答案
android期末考试题及答案一、选择题(每题2分,共20分)1. Android操作系统是基于哪个内核开发的?A. Linux内核B. Windows内核C. Unix内核D. MacOS内核答案:A2. 在Android开发中,哪个类是所有Activity的基类?A. ContextB. ViewC. ActivityD. Application答案:C3. Android应用程序的UI布局文件通常保存在哪个目录下?A. /res/values/B. /res/drawable/C. /res/layout/D. /assets/答案:C4. 下列哪个不是Android四大组件之一?A. ActivityB. ServiceC. Content ProviderD. Widget答案:D5. Android中,Intent主要用于什么?A. 启动ActivityB. 启动ServiceC. 启动BroadcastReceiverD. 所有以上答案:D6. 在Android中,下列哪个不是布局控件?A. LinearLayoutB. RelativeLayoutC. TextViewD. ImageView答案:C7. Android中,哪个方法用于处理屏幕旋转等配置更改?A. onCreate()B. onStart()C. onConfigurationChanged()D. onDestroy()答案:C8. 在Android开发中,哪个类用于处理网络请求?A. HttpURLConnectionB. HttpUrlConnectionC. NetworkConnectionD. InternetConnection答案:A9. Android的事件传递机制中,哪个方法用于处理触摸事件?A. onTouchEvent()B. onClick()C. onLongClick()D. onTouchEvent()答案:A10. Android中,哪个类用于处理异步任务?A. AsyncTaskB. SyncTaskC. BackgroundTaskD. Thread答案:A二、填空题(每空2分,共20分)1. Android应用程序的入口点是 __________ 类。
Android期末考试复习试卷(仅供参考),DOC
一、选择题(20分,每小题2分)1、下列不是手机操作系统的是( D )。
A AndroidB Window MobileC Apple IPhone IOSD Windows Vista2、下列选项哪个不是Activity 启动的方法(B )A startActivityB goToActivityC startActivityForResultD startActivityFromChild3、下列哪个不是Activity 的生命周期方法之一(B )A onCreateB startActivityC onStartD onResume4、下列哪个可做Android 数据存储(A )A SQliteB M ySqlC OracleD DB25、下列哪个可做EditText编辑框的提示信息( D )A android:inputTypeB android:textC android:digitsD android:hint6、Math.ceil(99.1) 的结果是(B )A 99B 100C 99.1D 99.07、android 中下列属于Intent的作用的是(C)A实现应用程序间的数据共享B是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失C可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带D处理一个应用程序整体性的工作8、关于res/raw 目录说法正确的是AA这里的文件是原封不动的存储到设备上不会转换为二进制的格式B这里的文件是原封不动的存储到设备上会转换为二进制的格式C这里的文件最终以二进制的格式存储到指定的包中D这里的文件最终不会以二进制的格式存储到指定的包中9、Math.round(11.5)等于多少(). Math.round(-11.5)等于多少( C)A 11 ,-11B 11 ,-12C 12 ,-11D 12 ,-1210、我们都知道Hanlder是线程与Activity通信的桥梁,如果线程处理不当,你的机器就会变得越慢,那么线程销毁的方法是(A )A onDestroy()B onClear()C onFinish()D onStop()二、填空题(10 分,共10 题,每空1 分)1、为了使android 适应不同分辨率机型,布局时字体单位应用( sp ),像素单位应用( sp )和(dip )2、定义LinearLayout 水平方向布局时至少设置的三个属性:( android:orientation),(android:layout width)和(android:layout height)3、layout 布局文件的命名不能出现字母(大写)4、设置TextView 字体的属性是:(android:typeface )。
Android应用开发复习 题集附答案
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)。
安卓开发考试复习题含答案修订版
安卓开发考试复习题含答案Document number:PBGCG-0857-BTDO-0089-PTT19981 安卓核心组件有哪些W ha t are theAn dr oi dc ore c om ponents 提供界面显示的Activtiy,提供后台计算的Service,提供进程间通信的Intent提供广播接收的BroadcastRsceiver.2 安卓 key features 有哪些Intergrated browserSQLiteMedia supportWireless servicesDVMApplication frameworkRich development environment3安卓用什么数据库AndroidwithwhatdatabaseSQLite4几个流行的移动平台各自的 IDE 是什么IOS XcodeAndroid EclipseWindows phone Visual Studio黑莓Native平台5 是什么文件干什么用的在什么地方What is fileWhat forIn what place文件是Android项目自动生成的终态类文件除了有自动标识资源的"索引"功能之外,还有另一个主要的功能,当"res"目录中的某个资源在应用中没有被使用到,在该应用被编译的时候系统就不会把对应的资源编译到该应用的APK包中,这样可以节省Android手机的资源。
"gen/"目录下6安卓平台架构分为几层各是什么The Android platform structure is divided into several layers Each is whatAndroid 系统分为四层,从下往上分别是Linux Kernel,Libraries 和Android Runtime,Application Framework,Applications.7创建一个 UI 并运行之,有哪几个步骤创建一个Activity把UI和Activity关联起来注册这个Activity8 Int ent 有几个组件各是干什么用的哪些组件是必须存在的,哪些是可选的,在Manifest中 intent filter 是如何声明的Componment name(接收者名字)Action(指定需要被执行的动作)Data(指定用于操作的数据)Category(指定目标应用程序组件的行为)ExtrasFlags定义在<activity><intent-filter></intent-filter></activity>9 Ac tivity的生命周期有哪些状态状态转换时调用的方法各是什么What is thestate ofthe Activity life cycleState transitionmethod called whenalliswhat一个Activity有三种状态:Running,运行在前台(在当前Activity栈的栈顶)。
安卓期末考试题及答案
安卓期末考试题及答案一、单选题(每题2分,共20分)1. Android系统是基于哪个操作系统内核开发的?A. LinuxB. WindowsC. MacOSD. Solaris答案:A2. 在Android开发中,Activity是什么?A. 一个应用程序B. 一个应用程序的组件,用于创建用户界面C. 一个服务D. 一个数据库答案:B3. 下列哪个不是Android四大组件之一?A. ActivityB. ServiceC. BroadcastReceiverD. DataProvider答案:D4. AndroidManifest.xml文件中定义了什么?A. 应用程序的配置信息B. 应用程序的资源文件C. 应用程序的布局文件D. 应用程序的数据库结构答案:A5. 在Android中,下列哪个不是布局文件?A. LinearLayoutB. RelativeLayoutC. ConstraintLayoutD. Activity答案:D6. Android中Intent的作用是什么?A. 用于定义用户界面B. 用于定义应用程序的配置信息C. 用于组件之间的通信D. 用于定义应用程序的资源答案:C7. Android中,下列哪个是用于处理用户输入的组件?A. TextViewB. ButtonC. EditTextD. ImageView答案:C8. Android中,下列哪个不是View的子类?A. TextViewB. ButtonC. ImageViewD. Activity答案:D9. 在Android中,下列哪个不是Fragment的生命周期方法?A. onCreate()B. onCreateView()C. onActivityCreated()D. onDestroy()答案:D10. Android中,下列哪个不是ContextWrapper的子类?A. ActivityB. ServiceC. ApplicationD. BroadcastReceiver答案:D二、多选题(每题3分,共15分)11. Android支持哪些类型的数据存储方式?A. SharedPreferencesB. SQLite数据库C. 文件存储D. 网络存储答案:ABC12. 在Android开发中,下列哪些是有效的数据类型?A. intB. StringC. booleanD. float答案:ABCD13. Android中,下列哪些是常用的布局管理器?A. LinearLayoutB. RelativeLayoutC. ConstraintLayoutD. FrameLayout答案:ABCD14. Android中,下列哪些是有效的Intent传递方式?A. 显式IntentB. 隐式IntentC. 广播IntentD. 服务Intent答案:ABC15. Android中,下列哪些是有效的资源文件类型?A. drawableB. layoutC. valuesD. menu答案:ABCD三、判断题(每题2分,共10分)16. Android支持多线程编程。
安卓开发基础期末考试知识点总结
安卓开发基础期末考试知识点总结安卓开发基础期末考试知识点总结1. 布局- 线性布局//线性布局以⽔平或垂直⽅式来显⽰界⾯中的控件//orientation属性设置垂直或⽔平<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="vertical"></LinearLayout>- 表格布局//通过表格来管理内部组件位置<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:stretchColumns="0,3" //相当于设置表格四列android:gravity="center_vertical" //表格整体居中android:background="#bf66ff" //设置背景颜⾊>//添加若⼲⾏<TableRow>//添加若⼲组件,span设置是否跨列<TextView android:layout_span="4" /></TableRow></TableLayout>- 约束布局⼀种可视化⽅式编写⽅式,直接拖动组件即可2. 基本组件- 单选按钮//单选按钮的页⾯样式<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="vertical"android:background="#bf66ff"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="您的性别是:"/><RadioGroupandroid:id="@+id/sex"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><RadioButtonandroid:id="@+id/man"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="男"android:checked="true"/> //设置默认选中男<RadioButtonandroid:id="@+id/woman"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="⼥"/></RadioGroup></LinearLayout>//单选按钮的事件监听public void onClick(View view){RadioGroup radioGroup = findViewById(R.id.sex);for(int i=0;i<radioGroup.getChildCount();i++){RadioButton radioButton = (RadioButton) radioGroup.getChildAt(i);if(radioButton.isChecked()){Toast.makeText(MainActivity.this,"您点击了"+radioButton.getText(),Toast.LENGTH_SHORT).show(); break;//因为是单选,所以可以直接退出循环}}}- 多选按钮<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="vertical"android:background="#bf66ff"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="您的爱好有:"/><CheckBoxandroid:id="@+id/love1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="篮球"/><CheckBoxandroid:id="@+id/love2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="⾜球"/><CheckBoxandroid:id="@+id/love3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="⽻⽑球"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="提交"android:onClick="onClick"/></LinearLayout>//多选按钮监听public void onClick(View view){CheckBox checkBox1 = findViewById(R.id.love1);CheckBox checkBox2 = findViewById(R.id.love2);CheckBox checkBox3 = findViewById(R.id.love3);String str = "您的爱好有:";if(checkBox1.isChecked()) str+=checkBox1.getText()+" ";if(checkBox2.isChecked()) str+=checkBox2.getText()+" ";if(checkBox3.isChecked()) str+=checkBox3.getText()+" ";Toast.makeText(MainActivity.this,str,Toast.LENGTH_SHORT).show();}- ImageView⽤于图像放置- ImageSwitcher图像切换并可以产⽣动画效果- 实现⼀个图⽚浏览器//布局<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><ImageViewandroid:id="@+id/images"android:layout_width="match_parent"android:layout_height="wrap_content"android:src="@mipmap/zhifubao"tools:layout_editor_absoluteX="0dp"tools:layout_editor_absoluteY="95dp" /></androidx.constraintlayout.widget.ConstraintLayout>//功能实现package com.example.tupianliulanqi;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.ImageView;public class MainActivity extends AppCompatActivity {int count =-1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);final int[] images = new int[]{R.mipmap.zhifubao,R.mipmap.weixin,R.mipmap.mmm};final ImageView imageView = findViewById(R.id.images);imageView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if(count>=images.length-1) count=-1;imageView.setImageResource(images[++count]);}});}}- SeekBar拖动条,⽤户操作控制- RatingBar评分条,⼀般⽤于对产品的评价或服务满意度评价,⽤户操作- ⽤SeekBar(拖动条)和RatingBar(评分条)改变图⽚的透明度(要求同步)<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><ImageViewandroid:id="@+id/image"android:layout_width="0dp"android:layout_height="280dp"android:layout_marginStart="31dp"android:layout_marginLeft="31dp"android:layout_marginEnd="31dp"android:layout_marginRight="31dp"android:layout_marginBottom="40dp"android:src="@mipmap/ic_launcher"app:layout_constraintBottom_toTopOf="@+id/seekBar"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent" /><SeekBarandroid:id="@+id/seekBar"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_marginBottom="226dp"android:max="255"android:progress="255"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent" /><RatingBarandroid:id="@+id/ratingBar"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="31dp"android:numStars="5"android:rating="5"android:stepSize="0.5"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/seekBar" /><TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="20dp"android:layout_marginLeft="20dp"android:text="当前图⽚透明度为:"app:layout_constraintBaseline_toBaselineOf="@+id/alpha"app:layout_constraintStart_toStartOf="@+id/ratingBar" /><TextViewandroid:id="@+id/alpha"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="34dp"android:text="透明度"app:layout_constraintStart_toEndOf="@+id/textView"app:layout_constraintTop_toBottomOf="@+id/ratingBar" /></androidx.constraintlayout.widget.ConstraintLayout>package com.example.tupiantoumingdu;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.widget.ImageView;import android.widget.RatingBar;import android.widget.SeekBar;import android.widget.TextView;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);final ImageView imageView = findViewById(R.id.image);final SeekBar seekBar = findViewById(R.id.seekBar);final RatingBar ratingBar = findViewById(R.id.ratingBar);final TextView textView = findViewById(R.id.alpha);//拖动条监听⽅法setOnSeekBarChangeListenerseekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {@Overridepublic void onProgressChanged(SeekBar seekBar, int i, boolean b) {imageView.setAlpha(i); //透明度的最⼤值为255,所以直接⽤iratingBar.setRating(i/51); //只有五颗星,所以除以51textView.setText(i+""); //这⾥的i必须为字符串类型}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {}});ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { @Overridepublic void onRatingChanged(RatingBar ratingBar, float v, boolean b) {imageView.setAlpha((int)v*51);seekBar.setProgress((int)v*51);textView.setText(v*51+"");}});}}3. 易考题- ListView定义⼀个ListView,⽤SimpleAdapter为其添加内容,要求每个表项显⽰⼀本书的封⾯图像,书名,内容简介;为其添加单击事件监听,在单击时显⽰书的作者信息//layout.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ListViewandroid:id="@+id/listView"android:layout_width="match_parent"android:layout_height="wrap_content"></ListView></LinearLayout>//main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="horizontal"><ImageViewandroid:id="@+id/img"android:layout_width="100dp"android:layout_height="100dp"android:paddingLeft="10dp"/><TextViewandroid:id="@+id/textView"android:layout_width="100dp"android:layout_height="100dp"android:textAlignment="center"android:gravity="center"android:text="简介"android:layout_marginLeft="20dp"/><TextViewandroid:id="@+id/textView1"android:layout_width="100dp"android:layout_height="100dp"android:textAlignment="center"android:gravity="center"android:text="介绍"android:layout_marginLeft="20dp"/></LinearLayout>//MainActivity.javapackage com.example.listview;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.Toast;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//注意,这⾥⼀定要改为listview的布局super.setContentView(yout);ListView listView = findViewById(R.id.listView);final String[] writer = new String[]{"马化腾","马云","曾强"};final String[] info = new String[]{"微信,移动社交软件","⽀付宝,移动⽀付,⽅便快捷","帅⽓⼤⽅绅⼠⾼尚"}; final int[] imgs = new int[]{R.mipmap.weixin,R.mipmap.zhifubao,R.mipmap.mmm};List<Map<String,Object>> listItem = new ArrayList<>();for(int i=0;i<writer.length;i++){Map<String,Object> map = new HashMap<>();map.put("img",imgs[i]);map.put("writer",writer[i]);map.put("info",info[i]);listItem.add(map);}SimpleAdapter simpleAdapter = new SimpleAdapter(this,listItem,yout.activity_main,new String[]{"img","writer","info"},new int[]{R.id.img,R.id.textView,R.id.textView1});listView.setAdapter(simpleAdapter);//listview项⽬监听listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {Toast.makeText(MainActivity.this,writer[i],Toast.LENGTH_SHORT).show();}});}}- 通知package com.example.tongzhi;import androidx.appcompat.app.AppCompatActivity;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Intent;import android.os.Bundle;import android.os.Message;import android.view.View;import android.widget.Button;import android.widget.Toast;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);Button button = findViewById(R.id.send);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//创建⼀个notification对象Notification.Builder notification = new Notification.Builder(MainActivity.this);//打开通知,通知⾃动消失notification.setAutoCancel(true);//设置消息图标notification.setSmallIcon(R.mipmap.ic_launcher);notification.setContentTitle("通知标题");notification.setContentText("通知提⽰⽂本");//设置提⽰⽅式notification.setDefaults(Notification.DEFAULT_SOUND);//设置发送时间notification.setWhen(System.currentTimeMillis());//创建启动activity的Intent对象Intent intent = new Intent(MainActivity.this, Message.class);PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this,0,intent,0);//设置通知栏点击跳转notification.setContentIntent(pendingIntent);//获取通知管理器NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); Toast.makeText(MainActivity.this,"test",Toast.LENGTH_SHORT).show();notificationManager.notify(0x11,notification.build());}});}}- 对话框package com.example.duihuakuang;import androidx.appcompat.app.AlertDialog;import androidx.appcompat.app.AppCompatActivity;import android.content.DialogInterface;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.Toast;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);Button button = findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();alertDialog.setIcon(R.mipmap.ic_launcher);alertDialog.setTitle("对话框标题");alertDialog.setMessage("对话框的内容");alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {Toast.makeText(MainActivity.this,"取消",Toast.LENGTH_SHORT).show();}});alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {Toast.makeText(MainActivity.this,"确定",Toast.LENGTH_SHORT).show();}});alertDialog.show();}});}}- 多Activity,并⽤Bundle传递数据//main.xml<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><EditTextandroid:id="@+id/str1"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_marginTop="56dp"android:hint="str1"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><Buttonandroid:id="@+id/btn"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_marginTop="16dp"android:text="提交"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.0"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/str1" /></androidx.constraintlayout.widget.ConstraintLayout>//main2.xml<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="/apk/res/android" xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".Main2Activity"><TextViewandroid:id="@+id/result"android:layout_width="0dp"android:layout_height="wrap_content"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"android:text="返回结果"/><Buttonandroid:id="@+id/back"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_marginTop="64dp"android:text="返回"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>//main.javapublic class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);Button button = findViewById(R.id.btn);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {String str = ((EditText)findViewById(R.id.str1)).getText().toString();Intent intent = new Intent(MainActivity.this,Main2Activity.class);Bundle bundle = new Bundle();bundle.putCharSequence("str",str);intent.putExtras(bundle);startActivity(intent);}});}}//main2.javapublic class Main2Activity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main2);Intent intent = getIntent();Bundle bundle = intent.getExtras();TextView textView = findViewById(R.id.result);String str = bundle.getString("str");textView.setText(str);Button button = findViewById(R.id.back);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {finish();}});}}- 菜单添加菜单,并为菜单添加单击事件,在选择菜单项后改变背景⾊//在res⽬录下创建⽬录menu,并编写⼀个menu.xml,代码如下:<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="/apk/res/android"><item android:id="@+id/red" android:title="红⾊"/><item android:id="@+id/green" android:title="绿⾊"/></menu>//activitypublic class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.menu1,menu);return super.onCreateOptionsMenu(menu);}@Overridepublic boolean onOptionsItemSelected(@NonNull MenuItem item) {TextView textView = findViewById(R.id.color);switch (item.getItemId()){case R.id.red:textView.setText("红⾊");textView.setBackgroundColor(Color.parseColor("#ff0000"));break;case R.id.green:textView.setText("绿⾊");textView.setBackgroundColor(Color.parseColor("#00ff00"));break;}return super.onOptionsItemSelected(item);}}- Fragment(重点)1. 静态Fragment设置标题和内容1. 创建两个fragment,设置布局⽂件//fragment_title.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="/apk/res/android" xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="50dp"android:id="@+id/TitleFragment"tools:context=".titleFragment"android:orientation="horizontal"><ImageViewandroid:id="@+id/logo"android:layout_width="50dp"android:layout_height="30dp"android:layout_centerVertical="true"android:paddingLeft="10dp"android:scaleType="centerCrop"android:src="@mipmap/ic_launcher"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:text="标题"android:textSize="27sp"android:textColor="#ff00ff"/></RelativeLayout>//fragment_content.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android" xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".contentFragment"><!-- TODO: Update blank fragment layout --><TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:text="内容"android:gravity="center"android:textSize="30sp"android:textColor="#ffff00"/></LinearLayout>2. 初始化Fragment,需要重写onCreateView()⽅法//titleFragment.java@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = inflater.inflate(yout.fragment_title, null);RelativeLayout layout = view.findViewById(R.id.TitleFragment);layout.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Toast.makeText(getActivity(),"您单击呢标题",Toast.LENGTH_SHORT).show(); }});return view;}//contentFragent.java@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// Inflate the layout for this fragmentreturn inflater.inflate(yout.fragment_content, null);}注意:如果最终运⾏结果闪退,则需要注释掉如下代码:/* @Overridepublic void onAttach(Context context) {super.onAttach(context);if (context instanceof OnFragmentInteractionListener) {mListener = (OnFragmentInteractionListener) context;} else {throw new RuntimeException(context.toString()+ " must implement OnFragmentInteractionListener");}}@Overridepublic void onDetach() {super.onDetach();mListener = null;}*/3. 最后,在主布局⽂件中引⼊各个fragment<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><fragmentandroid:id="@+id/fragment_title"android:layout_width="match_parent"android:layout_height="50dp"android:name="com.example.fragment.titleFragment"/><fragmentandroid:id="@+id/fragment_content"android:layout_width="match_parent"android:layout_height="match_parent"android:name="com.example.fragment.contentFragment"/></RelativeLayout>注意:不要忘了修改配置⽂件,去除程序默认的标题显⽰android:theme="@style/Theme.AppCompat.DayNight.NoActionBar2. 动态Fragment实现模拟底部导航切换界⾯1. 编写两个页⾯的内容部分//这⾥⽤上⾯的fagment_title.xml来代替第⼀个页⾯<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/TitleFragment"tools:context=".titleFragment"android:orientation="horizontal"><TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:layout_centerInParent="true"android:text="这是主页"android:textSize="27sp"android:textColor="#ff00ff"/></RelativeLayout>//第⼆个页⾯内容fragment_content.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/ContentFragment"tools:context=".contentFragment"><!-- TODO: Update blank fragment layout --><TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:text="第⼆页"android:layout_gravity="center"android:layout_centerInParent="true"android:gravity="center"android:textSize="30sp"android:textColor="#ffff00"/></RelativeLayout>2. 编写主活动代码public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private FragmentManager manager;private FragmentTransaction transaction;private RadioButton radioButton1;private RadioButton radioButton2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);manager = getSupportFragmentManager();transaction = manager.beginTransaction();transaction.add(R.id.id_content,new titleFragment());mit();initView();}private void initView(){radioButton1 = findViewById(R.id.bar1);radioButton2 = findViewById(R.id.bar2);radioButton1.setOnClickListener(this);radioButton2.setOnClickListener(this);}@Overridepublic void onClick(View view) {transaction = manager.beginTransaction();switch (view.getId()){case R.id.bar1:transaction.replace(R.id.id_content,new titleFragment());break;case R.id.bar2:transaction.replace(R.id.id_content,new contentFragment());break;}。
Android期末复习题
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平台开发入门》复习资料.docx
-、选择题(每题2分)1.下列不是手机操作系统的是(D )A.android B・ window phone C・ IOS D・ win 72.Android是基于(B )的手机操作系统。
A.WindwosB. LinuxC. Mac OSD.以上都不是3.Android官方网站建议以( C )作为开发Android应用程序的平台。
A.Visual Studio B・ Flash C・ Eclipse D. Photoshop4.Android应用程序主要采用( A )语言进行开发。
A.JavaB. VBC. C++D. Ctt5.Dalvik虚拟机、SQLite属于Android系统架构的哪一层(C )浏览器、地图程序属于Android系统架构的哪一层(A )进程管理、网络协议等属于Android系统架构的哪一层(D )通知管理器(Notification)、视图(View)等由开发人员直接调用的API 屈于Android 系统架构的哪一层(B )A.应用层B.应用框架层C.系统运行库D. Linux内核层6.Intent传递数据吋,不能被传递的数据是(D )A.Integer型的数据 C. String型的数据B.实现了接口java. io. Serializable的可序列化的对象D. Bitmap对象7.android中卜列属于Intent的作用的是(C )A.实现应用程序间的数据共享B.是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行, 而不会因为切换页面而消失。
C.可以实现界而间的切换,也可以数据传递,是连接四大组件的纽带D.处理一个应用程序整体性的工作。
8.在Activity从创建到销毁的过程中有3种生命周期,以下哪一种不属于Activity的生命周期(B )A.整体生命周期B.退化生命周期C.可视生命周期D.焦点生命周期9.卜•面退出Activity错误的方法是(B )A.finish()B. System, exit ()C. onStop()D.抛出异常强制退出10.下列哪种说法不正确(B )A.Android应用的gen目录下的R. java被删除后还能口动生成B.Res目录是一个特殊目录,包含了应用程序的全部资源,命名规则可以是数字(0-9).卜•划线(_)和大小写字母(a-z. A-Z)C.AndroidManifest. xml文件是个Android项目必须冇的,是项目应用的全局描述D.assets和res目录都能存放资源问就,但是与res不同的是,assets不会在R. java中生成任何的资源1D11・以卜•关于android应用程序的目录结构描述中,不止确的是(D )A.src目录是应用程序的主要目录,由Ja腹类文件组成B.assets 口录是原始资源口录,该口录屮的内容将不会被R类所引用C.res g录是应用资源目录,该目录中的所有资源内容都会在R类所引用。
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>。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.短信的内容提供者是()A. ContactProviderB. MessageProviderC. SmsProviderD. TelephonyProvider2.以下是Android中用于xml解析方式的是()。
A. SAXB. DOMC. XmlPullParserD. Juint3.下列选项中,关于Bitmap类描述正确的是()。
A. Bitmap类表示画B. Bitmap类代表画布C. Bitmap类是最常用的绘图类D. Bitmap类表示位图工厂4.Dalvik虚拟机是基于()的架构。
A.栈B.堆C. 寄存器D. 存储器5.在Android UI开发中,常见的刮刮卡是通过()实现的。
A.FrameLayoutB.LinearLayoutC.RelativeLayoutD.TableLayout6.注册一个短信到来的广播事件需要在清单文件配置什么权限()。
A. <uses-permission android:name="android.permission.SMS"/>B.<uses-permissionandroid:name="android.permission.SEND_SMS"/>C.<uses-permissionandroid:name="android.permission.RECEIVE_SMS"/>D. <uses-permissionandroid:name="android.permission.RECEIVE_SEND_SMS"/>7.关于服务的创建说法错误的是()。
A. Android中创建服务需要继承Service类B. Android 中的服务需要在清单文件配置。
C. Android 中的服务可以理解成是在后台运行且没有界面的activity。
D. Android中定服务能做的事情完全可以开一个子线程替代。
8.在下列选项中,设置ProgressBar的最大进度的方法是()。
A. setMax()B. setProgress()C. setCurrentProgress ()D. setTotalProgress()9.Android中使用openFileOutput(String name,int mode)方法获取到文件输出流时, 第二个参数mode常用模式有()。
多选A.MODE_PRIVATEB.MODE_APPENDC.MODE_WORLD_READABLED.MODE_WORLD_WRITEABLE10.自定义一个数据适配器MyAdatper,需要让它继承的类是()。
A. DefaultAdapterB. ParentAdapterC. BaseAdapterD. BasicAdapter二、填空题(每题1分,满分50分):1.在Android界面中除了菜单之外,【】也是程序与用户交互的一种方式。
2.Android中常见的五种布局是【】、【】、【】、【】、【】。
3.Android系统是由【】开发的。
4.Android底层是基于【】操作系统的。
5.Android Studio是【】提供的一个Android开发环境6.Android中的布局文件位于【】目录中。
7.打开Activity的界面时会执行onCreate(),onStart(),【】三个方法。
8.在Android中通常使用【】传递数据。
9.Activity的启动模式有四种,分别是standard、【】、singleTask和singleInstance。
10.【】是Android程序中的四大组件之一,为用户提供可视化界面及操作。
11.【】被称为意图,是程序中各组件进行交互的一种重要方式12.Android中常见数据存储方式有【】、【】、【】、【】、【】。
13.使用文件存储数据时,文件存储在软件的【】目录下。
14.Android程序开发完成后需要打包成【】文件发布到网上供别人使用15.Android系统采用分层架构,由高到低分别为【】、【】核心类库、Linux内核。
16.BaseAdapter中的getCount( )方法作用是【】。
17.Android中用到的数据库是【】18.【】控件以列表的形式展示数据内容。
19.【】是一个对数据库执行工作单元,是针对数据库的一组操作。
20.广播分两种,一种是【】广播,一种是【】广播。
21.【】方法可以用来拦截有序广播终止广播。
22.广播是一种运用在应用程序之间【】的机制。
23.用于发送有序广播的方法是【】。
24.【】控件用于显示文本信息。
25.线性布局【】和【】方式来显示界面中的控件。
26.Android中把数据存储到SD卡对应的目录是【】。
27.在Android中,用于管理后台服务的控件是【】。
28.采用startService()方法开启服务,肯定会调用【】方法。
29.【】用于在程序中暴露数据。
30.ContentProvider可以实现跨程序的【】。
31.创建一个内容提供者类AccountProvider,需要让它继承父类【】。
32.【】用于操作其他应用程序中的数据。
33.若需要时事监听ContentProvider中的数据变化,需要使用【】来实现。
34.Android中线程之间传递消息使用的是【】对象。
35.Android中【】类代表画笔,用来描述图形的颜色和风格,如线宽、颜色、透明度和填充效果等信息。
36.补间动画包含【】、【】、【】、【】。
37.使用VideoView播放视频,设置从指定位置开始播放的方法是【】。
38.HTTP协议中,数据提交方式有两种,分别是【】和【】。
39.Handler消息机制包含四个对象,【】、【】、【】、【】。
40.【】协议规定了浏览器和服务器之间互相通信的规则。
41.在Activity中使用【】方法可以打开/data/data/包名/files/a.txt文件的输出流对象。
42.SharedPreferences通过【】的形式将数据保存到XML文件中。
43.在Android中,需要使用【】给ListView填充数据。
44.动态注册的广播接收者的生命周期依赖于【】的组件。
45.Android进程间通信是通过【】实现的。
46.通过bindService()方法开启的服务,通过【】方法可以解绑服务。
47.Android中有【】方式开启服务和【】方式开启服务。
48.Google规定Android 4.0以后访问网络的操作都必须放在【】中。
49.【】类代表画布,通过该类提供的方法,可以绘制各种图形(如矩形、圆形、线条等)。
50.Fragment【】生命周期方法是用来加载Fragment的View。
三、判断题(每题1分,满分20分)1.Android 中ListView控件显示数据和TextView一样。
2.关于Android中操作数据库,SQLiteOpenHelper类是用于操作数据库的。
3.使用SQLiteDatabase的execSQL()方法可以实现数据库表增删改的操作。
4.AIDL用于解决进程间通信问题。
Android中服务的生命周期和Activity的生命周期一样。
5.Uri是指统一资源标示符。
6.Android客户端访问网络发送HTTP请求只可以使用HttpUrlConnection7.Fragment是在Android3.0被引入的,如果想兼容低版本的手机可以使用V4包中的Fragment。
Fragment的生命周期和Activity的生命周期完全一样。
8.Activity必须在AndroidManifest.xml文件中注册才能运行。
9.所有的Android应用程序在底层对应同一个Dalvik虚拟机实例,其代码在虚拟机的解析得以执行。
10.RadioButton为单选按钮,需要与RadioGroup配合使用。
11.使用Intent传递数据只需调用putExtra()方法将想要存储的数据存在Intent中即可。
12.Android中数据只能存储到SD卡上13.关于Android中操作数据库,SQLiteOpenHelper类是用于操作数据库的。
使用SQLiteDatabase的execSQL()方法可以实现数据库表增删改的操作。
14.注册系统短信到来的广播事件不需要接收短信的权限。
15.启动系统相机使用的action是android.media.action.VIDEO_CAPTURE。
16.在目标Activity中,通常使用setResult()方法设置返回数据。
17.在Android中存储数据时,可以使用SQL Server数据库。
18.在/data/data/包名/cache目录下可以cache软件的缓存数据,当清除缓存时数据就会删除。
19.Android中数据存储方式只有一种。
20.Android中使用openFileOutput(String name,int mode)方法获取到文件输出流时,第二个参数mode常用模式有4种。