Android常用知识点总结

一、选择题
1.Android项目中的主题和样式资源,通常放在(C)目录。
A、res/drawable B、res/layout C、res/values D、assets
2.Dalvik虚拟机属于Android系统架构中的(C)。
A、应用程序层 B、应用程序框架层 C、核心类库层 D、Linux内核层
3.Android中短信、联系人管理、浏览器等属于Android系统架构中的(A)。
A、应用程序层 B、应用程序框架层 C、核心类库层 D、Linux内核层
4.下列属性中,用于设置线性布局方向的是(A)。
A、orientation B、gravity C、layout_gravity D、padding
5.下列选项中,不属于Android布局的是(C)。
A、FrameLayout B、LinearLayout C、Button D、RelativeLayout
6.帧布局FrameLayout是将其中的组件放在自己的(A)。
A、左上角 B、右上角 C、左下角 D、右下角
7.对于XML布局文件,android:layout_width属性的值不可以是(D)。
A、match_parent B、fill_parent C、wrap_content D、match_content
8.在XML文件中定义了一个Button,决定Button按钮上显示文字的属性是(B)。
A、android:value B、android:text C、android:id D、android:textvalue
9.下列选项中,(C)用于设置TextView中文字显示的大小。
A、android:textSize=”18” B、android:size=”18”
C、android:textSize=”18sp” D、android:size=”18sp”
10.为了让ImageView显示一张图片,可以通过设置的属性是(A)。
A、android:src B、android:background C、android:img D、android:value
11.下列关于ListView的说法中,正确的是(C)。
A、ListView的条目不能设置点击事件
B、ListView不能设置Adapter也能显示数据内容
C、当数据超出能显示范围时,ListView自动具有可滚动的特性
D、若ListView当前能显示10条,一共有100条数据,则产生了100个View
12.CheckBox被选择的监听事件通常使用(B)方法。
A、setOnClickListener B、setOnCheckedChangeListener
C、setOnMenuItemSelectedListener D、setOnCheckedListener
13.当前使用EditText控件时,能够使用文本框设置为多行显示的属性是(A)。
A、android:lines B、android:layout_height
C、android:textcolor D、android:textsize
14.下列选项中,不属于Android四大组件的是(C)。
A、Service B、Activity C、Handler D、ContentProvider
15.下列关于Android中Activity管理方式的描述中,正确的是(B)。
A、Android以堆的形式管理Activity B、 Android以栈的形式管理Activity
C、Android以树的形式管理Activity D、Android以链表的形式管理Activity
16.下列选项中,(B)不是Activity生命周期方法。
A、onCreate() B、startActivity() C、onStart() D、onResume()
17.下列方法中,(A)是启动Activity的方法。
A、startActivity() B、goToActivity() C、startActivityResule() D、以上都是
18.下列关于Intent的描述中,正确的是(B)。
A、 Intent不能够实现应用程序间的数据共享
B、 Intent可以实现界面的切换,还可以在不同组件间直接进行数据传递
C、 使用显式Intent可以不指定要跳转的目标组件
D、隐式Intent不会明确指出需要激活的目标组件,所以无法实现组件之间的数据跳转
19.下列关于SharedPreferences存取文件的描述中错误的是(C)。
A、属于移动存储解决方式 B、SharedPreferences处理的就是key-value对
C、读取xml的路径是/sdcard/shared_prefsD、文本的保存格式是xml
20.下列选项中不属于getSharedPreferences方法的文件操作模式参数是(B)。
A、Context.MODE_PRIVATE B、Context.MODE_PUBLIC
C、Context.MODE_WORLD_READABLE D、Context.MODE_WORLD_WRITEABLE
21.下列方法中,(B)方法是SharedPreferences获取其编辑器的方法。
A、getEdit() B、edit() C、setEdit() D、getAll
22.Android对数据库的表进行查询操作时,会使用SQLiteDatabase类中的(C)方法。
A、insert() B、execSQL() C、query() D、updata()
23.下列关于SQLite数据库的描述中,错误的是(C)。
A、SqliteOpenHelper类有创建数据库和更新数据库版本的功能
B、SqliteDatabase类是用来操作数据库的
C、每次调用SqliteDatabase的getWritableAdtabase方法时,都会执行SqliteOpenHelper的onCreat()方法
D、当数据库版本发生变化时,会调用SqliteOpenHelper的onUpgrade()方法更新数据库
24.下列初始化SharedPreferences代码中,正确的是(D)。
A、SharedPreferences sp = new SharedPreferences();
B、SharedPrefe / rences sp = SharedPreferences.getDefault();
C、SharedPreferences sp = SharedPreferences.Factory();
D、SharedPreferences sp = getSharedPreferences();
25.如果一个应用程序想要访问另外一个应用程序的数据库,那么需要通过(C)实现。
A、BroadcastReceiver B、Activity C、ContentProvider D、AIDL
26.下列方法中,(B)能够得到ContentResolver的实例对象。
A、new ContentResolver() B、getContentResolver()
C、newInstance() D、ContentUris.newInstance()
27.自定义内容观察者时,需要继承的类是(B)。
A、BaseObserver B、ContentObserver C、BasicObserver D、DefaultObserver

二、填空题
1.如果希望在XML布局文件中调用颜色资源,可以使用(@color)调用。
2.Android程序入口的Activity是在(AndroidManifest.xml)文件中注册的。
3.Android中的TableLayout继承自(LinearLayout)。
4.在R.java文件中,android:id属性会自动生成对应的(int)类型的值。
5.发送隐式Intent后,Android系统会使用(IntentFilter)匹配相应的组件。
6.Activity的(finish())方法用于关闭当前Activity。
7.广播接收者的注册方式有两种,分别是(动态注册)和(静态注册)。
8.Android系统的服务的通信方式分为(本地服务)和(远程服务)。
9.当Android设备上的物理按键被按下时,程序会回调(onKeyDown())方法。
10.(BroadcastReceiver)用于监听来自系统或者应用程序的广播。

三、判断题
1.Dalvik是Google公司设计的用于Android平台的虚拟机。(√)
2.Android应用程序的主要语言是Java。(√)
3.Android程序中,Log.e()用于输出警告级别的日志信息。(×)
4.ViewGroup是盛放界面控件的容器。(√)
5.Android中的布局文件通常放在res/layout文件夹中。(√)
6.Android的控制样式,每一个XML属性都对应一个Java方法。(√)
7.当指定RadioButton按钮的android:checked属性为true时,表示未选中状态。(×)
8.AlertDialog对话框能够直接通过new关键字创建对象。(×)
9.Toast是android系统提供的轻量级信息提醒机制,用于向用户提示即时消息。(√)
10.ListView列表中的数据是通过Adapter加载的。(√)
11.如果Activity不设置启动模式,则默认为standard。(√)
12.Fragment与Activity的生命周期方法是一致的。(×)
13.SQLite时Android自带的一个轻量级的数据库,支持基本SQL语法。(√)
14.Android中的文件存储方式,分为内部存储方式和外部存储方式。(√)
15.当Android SDK版本低于23时,应用程序想要操作SD卡数据,必须在清单文件中添加权限。(√)
16.内容提供者主要功能是实现跨程序共享数据的功能。(√)
17.Service服务是运行在子线程中的。(×)
18.不管使用哪种方式启动Service,它的生命周期都是一样的。(×)
19.事件监听的处理模型主要包含事件源、事件和事件监听器。(√)
20.Android中的事件主要包括键盘事件和触摸事件两类。(√)

四、简答题
1.简述Android系统架构包含的层次以及各层的特点。
答:Android系统架构从高到低分为四层,分别为依次是应用程序层(Applications)、应用程序框架层(Application Framework)、核心类库(Libraries)和Linux内核(Linux Kernel),各层的特点具体如下:
(1)应用程序层:一个核心应用程序的集合,安装在手机中的应用程序都属于这一层。
(2)应用程序架构层:主要提供了构建应用程序时用到的各种API。例如活动管理器(Activity Manager)。
(3)核心类库:主要包含了系统库和Android运行环境。
(4)Linux内核:它为Android设备的各种硬件提供了底层的驱动,如:显示驱动。

2.简述实现Button按钮的点击事件的方式有哪几种?
答:实现Button按钮的点击事件一共有3种方式,具体如下:
1、在布局文件中指定onClick属性的方式设置点击事件。
2、使用匿名内部类的方式设置点击事件。
3、通过为Activity实现OnClickListener接口的方式设置点击事件。

3.简述Activity、Intent、IntentFilter的作用。
答:Activity表示活动,他是Android的四大组件之一,Intent表示意图,IntentFilter表示过滤器,他们的作用具体如下:
(1) Activity是一个负责与用户交互的组件,每个Android应用中都会用Activity来显示界面以及处理界面上一些控件的事件。
(2) Intent被称为意图,是程序中各组件间进行交互的一种重要方式,它不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。
(3) IntentFilter为过滤器,当发送一个隐式Intent后,Android系统会将它与程序中的每一个组件的过滤器进行匹配,匹配属性有 action、data、category,需要这三个属性都匹配成功才能唤起相应的组件。

4.简述Android数据存储的方式。
答:Android平台提供的五种数据存储方式,分别为文件存储、SharedPreferences、SQLite数据库、ContentProvider和网络存储,这些存储方式的特点如下。
1、文件存储:Android提供了openFileInput()和openFileOutput()方法来读取设备上的文件,其读取方式与Java中I/O程序是完全一样的。
2、SharedPreferences:这是Android提供的用来存储一些简单的配置信息的一种机制,它采用了XML格式将数据存储到设备中。通常情况下,我们使用SharedPreferences存储一些应用程序的各种配置信息,如用户名、密码等。
3、SQLite数据库:SQLite是Android自带的一个轻量级的数据库,它运算速度快,占用资源少,还支持基本SQL语法,一般使用它作为复杂数据的存储引擎,可以存储用户信息等。
4、ContentProvider:Android四大组件之一,主要用于应用程序之间的数据交换,它可以将自己的数据共享给其他应用程序使用。
5网络存储:需要与Android网络数据包打交道,将数据存储到服务器上,通过网络提供的存储空间来存储/获取数据信息。

5.简述事件监听处理的实现原理。
答:事件监听处理主要涉及三个对象,分别是Event Source(事件源)、Event(事件)、Event Listener(事件监听器),这三个对象的具体介绍如下:
(1)Event Source(事件源):事件发生的场所,通常是指各个组件。
(2)Event(事件):封装了界面组件发生的特定事情。
(3)Event Listener(事件监听器):负责监听事件源所发生的事件,并对各种事件做出相应的响应。
事件监听的处理主要围绕上述3个对象实现,首先为事件源设置监听器,用于监听用户操作,当用户执行该操作时,会触发事件源的监听器并生成对应的事件对象,接着将生成的事件对象作为参数传递给事件监听器,事件监听器会对该事件对象进行判断,执行对应的事件处理器。

6.简述ListView与RecyclerView的区别。
答:ListView与RecyclerView的区别具体如下:
1、展示效果:RecyclerView控件可以通过LayoutManager类实现横向或竖向的列表效果、瀑布流效果和GridView效果,而ListView控件只能实现竖直的列表效果。
2、适配器:RecyclerView控件使用的是RecyclerView.Adapter适配器,该适配器将BaseAdapter中的getView()方法拆分为onCreateViewHolder()方法和onBindViewHolder()方法,强制使用ViewHolder类,使代码编写规范化,避免了初学者写的代码性能不佳。
3、复用效果:RecyclerView控件复用Item对象的工作由该控件自己实现,而ListView控件复用Item对象的工作需要开发者通过convertView的setTag()方法和getTag()方法进行操作。
4、动画效果:RecyclerView控件可以通过setItemAnimator()方法为Item添加动画效果,而ListView控件不可以通过该方法为Item添加动画效果。

7.简述Activity的四种启动模式及其特点。
答:Activity的四种启动模式分别为standard、singleTop、singleTask和singleInstance,这些模式的特点具体如下:
1、standard:每启动一个Activity就会在栈顶创建一个新的实例。
2、singleTop:当被启动的Activity位于栈顶时,复用该Activity实例。
3、singleTask:当被启动的Activity在栈中存在实例时,会直接复用此Activity实例,并把当前Activity上面的所有实例弹出栈。
4、singleInstance:会启动一个新的任务栈来管理该Activity。

8.简述广播机制的实现过程。
答:Android中的广播使用了观察者模式,即基于消息的发布/订阅事件的模式。广播发送者和接收者分别处于观察者模式中的消息发布和订阅两端。广播机制的实现过程具体如下:
1、广播接收者通过Binder机制在AMS(Activity Manager Service)中进行注册。
2、广播发送者通过Binder机制向AMS发送广播。
3、AMS查找符合相应条件(IntentFilter/Permission)的广播接收者,将广播发送到相应的消息循环队列中。
4、执行消息循环时获取到发送的广播,然后回调广播接收者中的onReceive()方法并在该方法中进行相关处理。

五、编程题
实战演练——保存QQ账号与密码
答:在日常生活中,登录QQ时通常会有记住账号与密码的功能,这个纪录账号与密码的过程实际上就是将数据保存到文件中。具体步骤如下:
1.创建程序:创建一个名为SaveQQ的应用程序,指定包名为cn.itcast.saveqq
2.导入界面图片:将保存QQ密码界面需要的图片head.png导入到项目中的drawable文件夹中。
3.放置界面控件:在activity_main.xml布局文件中,放置一个ImageView控件用于显示用户图像,两个TextView控件用于分别显示“账号:”与“密码:”文本信息,两个EditText空间分别用于输入账号和密码信息,一个Button控件用于显示登录按钮。
4.创建工具类:由于QQ账号和密码需要存放在文件中,因此需要在程序中的cn.itcast.saveqq包中创建一个工具类FileSaveQQ,在该类中实现QQ账号和密码的存储与读取功能。
5.编写界面交互代码:在MainActivity中编写逻辑代码,实现QQ账号与密码的存储和读取功能。①变量定义;②在OnCreat方法中初始化信息;③添加监听事件;④检验账号和密码。
6.运行程序:运行上述程序,在界面中输入账号和密码,点击“登录”按钮,会弹出“登录成功”与“保存成功”的提示信息。


版权声明:本文为qq_43605753原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。