填空题
1.Dalvik虚拟机中的Dx工具会把部分class文件转换成__dex____文件
2.如果希望在XML布局文件中调用颜色资源文件,可以使用_ @color___调用
3.Android程序入口的Activity是在_AndroidManifest.xml_____文件中注册的
4.Android中查看应用程序日志的工具是__LogCat_
判断题
1.Dalvik虚拟机是Google公司设计的用于Android平台的虚拟机(对)
2.Android应用程序的主要语言是Java。(对)
3.Android采用分层结构,分别是应用程序层、应用程序框架层、核心类库和Linux内核(对)
4.第三代移动通信技术(3G)包括TD-LTE和FDD-LTE两种制式(错)
5.Android程序中,Log.e()用于输出警告级别的日志信息(错)
6.每个Dalvik虚拟机实例都是一个独立的进程空间,并且每个进程之间不可以通信(错)
选择题
1.Dalvik虚拟机是基于(C)的架构
A.栈
B.堆
C.寄存器
D.存储器
2.Android程序中的主题和样式资源,通常放在哪个目录下(C)
A.res/drawable
B.res/layout
C.res/values
D.res/assets
3.下列关于AndroidManifest.xml文件的说法中,错误的是(D)
A.它是整个程序的配置文件
B.可以在该文件中配置程序所需的权限
C.可以在该文件中注册程序用到的组件
D.该文件可以设置UI布局
4.Dalvik虚拟机属于Android体系结构中的哪一层(C)
A.应用程序层
B.应用程序框架层
C.核心类库层
D.Linux内核层
5.Android中短信、联系人管理、浏览器等属于Android体系结构中的哪一层(A)
A.应用程序层
B.应用程序框架层
C.核心类库层
D.Linux内核层
简答题
简述Android源代码的编译过程
答:Java源文件经过JDK编译器编译为class文件后,Dalvik虚拟机中的Dx工具会将部分class文件转换成dex文件,dex文件还会在Dalvik虚拟机中进一步优化成odex文件。
简述Android体系结构包含的层次及各层的特点
答:Android系统架构从高到低分为四层,分别为依次是应用程序层(Applications)、应用程序框架层(Application Framework)、核心类库(Libraries)和Linux内核(Linux Kernel),各层的特点具体如下:
填空题
1.Android的常见布局都直接或者间接地继承自__ViewGroup__类
2.Android中的TableLayout继承自__LinearLayout____
3.TableLayout可以通过_TableRow_____控制表格的行数
4.___RelativeLayout___布局通过相对定位的方式指定子控件的位置
5.在R.java文件中,android:id属性会自动生成对应的_int___类型的值
判断题
1.ViewGroup是盛装界面控件的容器(对)
2.如果在FrameLayout中放入3个所有属性都相同的按钮,那么能够在屏幕上显示的是第1个被添加 的按钮(错)
3.Android中的布局文件通常放在res/layout文件夹中(对)
4.TableLayout继承自LinearLayout,因此它完全支持LinearLayout所支持的属性(对)
5.LinearLayout中的android:layout_weight属性用于设置布局内控件所占的权重(对)
选择题
1.下列属性中,用于设置LinearLayout方向的是(A)
A.orientation
B.gravity
C.layout_gravity
D.padding
2.下列选项中,不属于Android布局的是(C)
A.FrameLayout
B.LinearLayou
C.Button
D.RelativeLayout
3.FrameLayout是将其中的组件放在自己的哪个位置(A)
A.左上角
B.右上角
C.左下角
D.右下角
4.对于XML布局文件,android:layout_width属性的值不可以是什么(D)
A.match_parent
B.fill_parent
C.wrap_content
D.match_content
5.下列关于RelativeLayout的描述,正确的是(C)
A.RelativeLayout表示绝对布局,可以自定义控件的x、y的位置
B.RelativeLayout表示帧布局,可以实现标签切换的功能
C.RelativeLayout表示相对布局,其中控件的位置都是相对位置
D.RelativeLayout表示表格布局,需要配合TableRow布局一起使用
简答题
列举Android中的常用布局,并简述它们各自的特点
Android中有五种常用布局,分别为RelativeLayout(相对布局)、LinearLayout(线性布局)、FrameLayout(帧布局)、TableLayout(表格布局)、ConstraintLayout(约束布局),他们的特点具体如下:
一、判断题
1.Android的控件样式,其每一个XML属性都对应一个Java方法。(对 )
2.当指定RadioButton控件的android:checked属性为true时,表示该控件为未选中状态。(错 )
3.AlertDialog对话框能够直接通过new关键字创建对象。(错 )
4.Toast是Android提供的轻量级信息提醒机制,用于向用户提示即时消息。(对 )
5.ListView控件中的数据是通过数据适配器加载的。(对 )
二、选择题
1.在XML布局文件中定义了一个Button控件,决定Button控件上显示的文字的属性是(B )。
A.android:value
B.android:text
C.android:id
D.android:textvalue
2.下列选项中,哪个用于设置TextView控件中文字的大小?(C )
A.android:textSize="18"
B.android:size="18"
C.android:textSize='18sp'
D.android:size="18sp"
3.使用EditText控件时,当文本内容为空时,如果想做一些提示,那么可以使用的属性是(D )。
A.android:text
B.android:background
C.android:inputType
D.android:hint
4.为了让一个ImageView控件显示一张图片,可以设置的属性是(A )。
A.android:src
B.android:background
C.android:img
D.android:value
5.下列关于ListView控件的说法中,正确的是(C )。
A.ListView 控件的条目不能设置点击事件
B.ListView控件不设置数据适配器也能显示数据内容
C.当数据超出能显示的范围时,ListView 自动具有可滚动的特性
D.一共有100条数据,若ListView控件当前能显示10条,则产生了100个View控件
6.CheckBox控件被选中的监听事件通常使用以下哪个方法?(B)
A.setOnClickListener
B.setOnCheckedChangeListener
C.setOnMenuItemSelectedListener
D.setOnCheckedListener
7.当使用EditText控件时,能够将文本框设置为多行显示的属性是(A)
A.android:lines
C.android:textcolor
B.android:layout_height
D.android:textsize
8.下列关于AlertDialog对话框的描述,错误的是(A )。
A.使用new关键字创建 AlertDialog 对话框的实例
B.对话框的显示需要调用show0方法
C.setPositiveButton()方法是用来设置确定按钮的
D.setNegativeButton()方法是用来设置取消按钮的
一、填空题
1.Activity的启动模式包括 standard、singleTop、singleTask和___singleInstance___
2.启动一个新的Activity并且获取这个Activity的返回数据,需要重写 startActivityForResult() 方法。
3.发送隐式Intent后,Android会使用 IntentFilter 匹配相应的组件。
4.在清单文件中Activity添加
5.Activity的 finish() 方法用于关闭当前的 Activity。Activity的 finish() 方法用于关闭当前的 Activity。
二、判断题
1.如果Activity不设置启动模式,则默认为standard。(对 )
2.Fragment与Activity的生命周期方法是一致的。(错 )
3.如果想要关闭当前的Activity,可以调用Activity提供的finish()方法。(对 )
4. <intent-filter>标签中间只能包含一个action属性。(错 )
5.默认情况下,Activity的启动模式是standard。(对 )
三、选择题
1.下列选项中,不属于Android四大组件的是(C)。
A. Service
B. Activity
C. Handler
D. ContentProvider
2.下列关于Android中 Activity管理方式的描述中,正确的是(B )。
A.Android以堆的形式管理 Activity
B.Android以栈的形式管理 Activity
C.Android 以树的形式管理 Activity
D.Android以链表的形式管理 Activity
3.下列选项中,哪个不是Activity生命周期方法?(B )
A.onCreate()
B.startActivity()
C.onStart()
D.onResume()
4.下列方法中,哪个是启动Activity的方法?(A)
A.startActivity0()
B.goToActivity()
C.startActivityResult()
D.以上都是
5.下列关于Intent的描述中,正确的是(B )。
A.Intent不能够实现应用程序间的数据共享
B.Intent可以实现界面的切换,还可以在不同组件间直接进行数据传递
C.使用显式Intent可以不指定要跳转的目标组件
D.隐式Intent不会明确指出需要激活的目标组件,所以无法实现组件之间的数据跳转
四、简答题
1.简述Activity的生命周期方法及什么时候被调用。
答:Activity一共有7个方法,这些方法和调用的时机具体如下:
1、onCreate():Activity创建时调用,通常做一些初始化设置。
2、onStart():Activity即将可见时调用。
3、onResume():Activity获取焦点时调用。
4、onPause():当前Activity被其他Activity覆盖或屏幕锁屏时调用。
5、onStop():Activity对用户不可见时调用。
6、onDestroy():Activity销毁时调用。
7、onRestart():Activity从停止状态到再次启动时调用。
2.简述Activity的四种启动模式及其特点。
答:Activity的四种启动模式分别为standard、singleTop、singleTask和singleInstance,这些模式的特点具体如下:
1、standard:每启动一个Activity就会在栈顶创建一个新的实例。
2、singleTop:当被启动的Activity位于栈顶时,复用该Activity实例。
3、singleTask:当被启动的Activity在栈中存在实例时,会直接复用此Activity实例,并把当前Activity上面的所有实例弹出栈。
4、singleInstance:会启动一个新的任务栈来管理该Activity。
3.简述Activity、Intent、IntentFilter的作用。
答:Activity表示活动,他是Android的四大组件之一,Intent表示意图,IntentFilter表示过滤器,他们的作用具体如下:
(1) Activity是一个负责与用户交互的组件,每个Android应用中都会用Activity来显示界面以及处理界面上一些控件的事件。
(2) Intent被称为意图,是程序中各组件间进行交互的一种重要方式,它不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。
(3) IntentFilter为过滤器,当发送一个隐式Intent后,Android系统会将它与程序中的每一个组件的过滤器进行匹配,匹配属性有 action、data、category,需要这三个属性都匹配成功才能唤起相应的组件。
三、简答题
1.简述数据库事务的4个基本要素。
答:事务的操作比较严格,他必须满足ACID,ACID是指数据库事务正确执行的四个基本要素的缩写,这些要素包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),接下来针对这四个基本要素进行详细解释。
原子性:表示事务是一个不可再分割的工作单位,事务中的操作要么全部成功,要么全部失败回滚。
一致性:表示事务开始之前和结束之后,数据库的完整性没有被破坏。也就是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。
隔离性:表示并发的事务是相互隔离的,也就是一个事务内部的操作都必须封锁起来,不会被其他事务影响到。
持久性:表示事务一旦提交后,该事务对数据做的更改便持久保存在数据库中,并不会被回滚,即使出现了断电等事故,也不会影响数据库中的数据。
2.简述Android数据存储的方式。
答:Android平台提供的五种数据存储方式,分别为文件存储、SharedPreferences、SQLite数据库、ContentProvider和网络存储,这些存储方式的特点如下。
文件存储:Android提供了openFileInput()和openFileOutput()方法来读取设备上的文件,其读取方式与Java中I/O程序是完全一样的。
SharedPreferences:这是Android提供的用来存储一些简单的配置信息的一种机制,他采用了XML格式将数据存储到设备中。通常情况下,我们使用SharedPreferences存储一些应用程序的各种配置信息,如用户名、密码等。
SQLite数据库:SQLite是Android自带的一个轻量级的数据库,他运算速度快,占用资源少,还支持基本SQL语法,一般使用他作为复杂数据的存储引擎,可以存储用户信息等。
ContentProvider:Android四大组件之一,主要用于应用程序之间的数据交换,他可以将自己的数据共享给其他应用程序使用。
网络存储:需要与Android网络数据包打交道,将数据存储到服务器上,通过网络提供的存储空间来存储/获取数据信息。
一、判断题
1.Uri主要由3部分组成,分别是scheme、authority和path。(对)
2.内容观察者用于观察指定Uri代表的数据的变化。(对)
3.内容提供者的主要功能是实现跨程序共享数据的功能。(对)
4.在Android中,当通过内容解析者读取手机通讯录数据库的内容时,不需要加入读取手机通讯录的权限。(错)
5.Android的UriMatcher类用于匹配Uri。(对)
二、选择题
1.如果一个应用程序想要访问另外一个应用程序的数据库,那么需要通过(C )实现。
A. BroadcastReceiver B.Activity C.ContentProvider D.AIDL
2.下列方法中,哪个方法能够得到ContentProvider的实例对象?(B)
A. newContentResolver()
B. getContentResolver()
C. newInstance()
D.ContentUris.newInstance()
3.自定义内容观察者时,需要继承的类是(B)。
A.BaseObserver
B. ContentObserver
C. BasicObserver
D. DefalutObserver
4.查询手机系统短信时,内容提供者对应的Uri为(C)。
A.Contacts.Photos.CONTENT_URI
B.Contacts.People.CONTENT_URI
C.“content://sms/”
D. Media.EXTERNAL_CONTENT_URI
5.下列关于ContentProvider的描述,错误的是(D)。
A.ContentProvider 是一个抽象类,只有继承后才能使用
B.ContentProvider 只有在AndroidManifest.xml 文件中注册后才能运行
C.ContentProvider为其他应用程序提供了统一的访问数据库的方式
D.以上说法都不对
三、简答题
1.简述内容提供者的工作原理。
答:假设B程序需要操作A程序数据库中的数据,一般需要A程序使用ContentProvider
暴露数据,才能被其他程序操作。B程序通过ContentResolver操作A程序暴露出来的数据,而A程序会将操作结果返回给ContentResolver,然后ContentResolver再将操作结果返回给B程序。
2.简述内容观察者的工作原理。
使用ContentObserver观察A程序的数据时,首先要在A程序的ContentProvider中调用ContentResolver的notifyChange()方法。调用此方法后,当B程序操作A程序中的数据时,A程序会向“消息中心”发送数据变化的消息,此时C程序会观察到“消息中心”的数据有变化,会触发ContentObserver的onChange()方法。
一、填空题
1. BroadcastReceiver 用来监听来自系统或者应用程序的广播。
2.广播接收者的注册方式有两种,分别是 动态注册 和 静态注册 。
二、判断题
1.Broadcast表示广播,它是一种运用在应用程序之间传递消息的机制。(对)
2.在清单文件注册广播接收者时,可在<intent-filter>标签中使用priority 属性设置优先级别,属性值越大,优先级越高。(对)
3.有序广播的广播效率比无序广播更高。(错)
4.动态注册的广播接收者的生命周期依赖于注册广播的组件。(对)
5.Android 中广播接收者必须在清单文件里面注册。(错)
三、选择题
1.下列选项中关于广播类型的说法,错误的是(BC)。(多选)
A.Android中的广播类型分为有序广播和无序广播
B.无序广播按照一定的优先级进行接收
C.无序广播可以被拦截,可以被修改数据
D.有序广播按照一定的优先级进行发送
2.广播机制作为Android组件间的通信方式,使用的场景有哪些?(ABCD)(多选)
A.在同一个App内部的同一组件内进行消息通信
B.在不同App的组件之间进行消息通信
C.在同一个App内部的不同组件之间进行消息通信(单个进程)
D.在同一个App具有多个进程的不同组件之间进行消息通信
四、简答题
1.简述广播机制的实现过程。
答:Android中的广播使用了观察者模式,即基于消息的发布/订阅事件的模式。广播发送者和接收者分别处于观察者模式中的消息发布和订阅两端。广播机制的实现过程具体如下:
1. 广播接收者通过Binder机制在AMS(Activity Manager Service)中进行注册。
2. 广播发送者通过Binder机制向AMS发送广播。
3. AMS查找符合相应条件(IntentFilter/Permission)的广播接收者,将广播发送到相应的消息循环队列中。
4. 执行消息循环时获取到发送的广播,然后回调广播接收者中的onReceive()方法并在该方法中进行相关处理。
2.简述有序广播和无序广播的区别。
答:广播分为有序广播和无序广播,他们有以下几点的区别。
(1)发送广播时,使用的方法不同。有序广播使用sendOrderedBroadcast()发送广播,而无序广播使用sendBroadcast()方法发送广播。
(2) 广播接收者执行的顺序
a)有序广播的接收者是顺序执行的。
有序广播按照广播接收者声明的优先级别被依次接收。当在高级别的广播接收者逻辑执行完毕之后,广播才会继续传递。当优先级相同时,先注册的广播接受者优先执行。
b)无序广播是完全异步执行的。
当发送无序广播时,所有监听这个广播的广播接收者都会接收到此广播消息,但接收和执行的顺序不确定。
(3)拦截广播
有序广播的接收者可拦截广播。如果优先级较高的广播接收者将广播终止,那么广播将不再向后传递。而无序广播则不能被拦截。
(4)效率
有序广播的效率比无序广播低。
一、填空题
1.如果想要停止 bindService(方法启动的服务,需要调用 unBindService() 方法。
2.Android服务的通信方式分为 本地服务 和 远程服务
3.远程服务通过 AIDL 实现服务的通信。
二、判断题
1.服务运行在子线程中。(错)
2.不管使用哪种方式启动服务,它的生命周期都是一样的。(错)
3.使用服务的通信方式进行通信时,必须保证服务是以绑定的方式开启的,否则无法通信。(错)
4.一个组件只能绑定一个服务。(错)
5.远程服务和本地服务都运行在同一个进程中。(错)
三、选择题
1.如果通过 bindService方式开启服务,那么服务的生命周期是(C)
A. onCreate()→onStart()→onBind()→onDestroy()
B. onCreate()→onBind()→onDestroy()
C. onCreate()→onBind()→onUnBind()→onDestroy()
D. onCreate()→onStart()→onBind()→onUnBind()→onDestroy()
2.下列关于服务的描述中,错误的是(D)
A.服务没有用户可见的界面,不能与用户交互
B.服务可以通过 Context.startService()来启动
C.服务可以通过Context.bindService()来启动
D.服务无须在清单文件中进行配置
3.下列关于服务的方法描述,错误的是(D)
A.onCreate()表示第一次创建服务时执行的方法
B.调用startService()方法启动服务时执行的方法是 onStartCommand()
C.调用bindService()方法启动服务时执行的方法是onBind()
D.调用startService()方法断开服务绑定时执行的方法是 onUnbind()
四、简答题
1.简述服务的两种启动方式的区别。
答:Service的启动方式分别可以调用startService()、bindService()方法,这两个启动方式的区别如下所示:
(1)生命周期不同
startService():使用该方法开启Service时,执行的生命周期方法依次为onCreate()、onStartCommand()、onDestroy()。
bindService():使用该方法开启Service时,执行的生命周期方法依次为:onCreate()、onBind()、onUnbind()、onDestroy()。
(2)停止服务的方法不同
startService():调用stopSelf()、stopService()方法停止服务。
bindService():调用unbindService()方法停止服务。
(3)组件的关联不同
startService():当一个组件通过此方法开启服务时,服务与开启该组件没有关联,即使开启服务的组件被销毁,服务依旧运行。
bindService():当一个组件通过此方法开启服务时,服务会与该组件绑定,组件一旦被销毁,该服务也会被销毁。
2.简述服务的生命周期。
答:使用不同的方式启动服务,其生命周期会不同。开启服务的方法分别为startService()、bindService(),当通过startService()方法启动服务时,执行的生命周期方法依次为onCreate()、onStartCommand()、onDestroy()。当通过bindService()方法启动服务时,执行的生命周期方法依次为onCreate()、onBind()、onUnbind()、onDestroy()。其生命周期方法的具体含义如下:
onCreate ():第一次创建服务时执行的方法。
onStartCommand():调用startService()方法启动服务时执行的方法。
onBind():调用bindService()方法启动服务时执行的方法。
onUnbind():调用unBindService()方法断开服务绑定时执行的方法。
onDestory():服务被销毁时执行的方法。
一、填空题
1.HttpURLConnection 继承自 URLConnection 类。
2. Android默认提供的内置浏览器使用的是 WebKit 引擎。
3.在Android的解析JSON数据的org.json包中,最重要的两个类是 JSONObject 和JSONArray。
二、判断题
1.HttpURLConnection用于发送HTTP请求和获取HTTP响应。(对)
2.Android中的WebView控件是专门用于浏览网页的,其使用方法与其他控件一样。(对 )
3.在Android中要访问网络,必须在AndroidManifest.xml中注册网络访问权限。(对)
4.HttpURLConnection是抽象类,不能直接实例化对象,需要使用URL的openConnection0方法获得。(对)
5.使用HttpURLConnection进行HTTP网络通信时,GET请求方式只能发送大小在1024字节内的数据(对)
三、选择题
1.Android针对HTTP实现网络通信的方式主要包括(ABCD )。(多选)
A.使用HttpURLConnection 实现
B.使用ServiceConnection 实现
C.使用HttpClient实现
D.使用HttpConnection 实现
2.Android中 HttpURLConnection的输入/输出流操作被统一封装成了( ABD )。(多选)
A. HttpGet
B.HttpPost
C.HttpRequest
D. HttpResponse
四、简答题
简述使用HttpURLConnection 访问网络的步骤。
答:使用HttpURLConnection访问网络的步骤如下:
(1)创建URL对象。
(2)调用URL对象的openConnection()方法获取HttpURLConnection对象。
(3)调用setRequestMethod()方法设置http请求的方式。
(4)通过setConnectTimeout()方法设置连接的超时时间。
(5)调用getInputStream()方法获取服务器返回的输入流。
(6)最后调用disconnect()方法关闭http连接。