赞
踩
一、填空题
1、dex
2、@color
3、AndroidManifest.xml
4、LogCat
二、判断题
1、对 2、对 3、对 4、错 5、错 6、错
三、选择题
1、C 2、C 3、D 4、C 5、A
四、简答题
1. 简述如何搭建Android开发环境。
答:Android开发环境的搭建分为3步,具体如下:
2. 简述Android源代码的编译过程
答:Java源文件经过JDK编译器编译为class文件后,Dalvik虚拟机中的Dx工具会将部分class文件转换成dex文件,dex文件还会在Dalvik虚拟机中进一步优化成odex文件。
3.简述Android系统架构包含的层次以及各层的特点
答:Android系统架构从高到低分为四层,分别为依次是应用程序层(Applications)、应用程序框架层(Application Framework)、核心类库(Libraries)和Linux内核(Linux Kernel),各层的特点具体如下:
一、填空题
1、ViewGroup
2、LinearLayout
3、TableRow
4、RelativeLayout
5、int
二、判断题
1、对 2、错 3、对 4、对 5、对
三、选择题
1、A 2、C 3、A 4、D 5、C
四、简答题
1. 列举Android中的常用布局,并简述他们各自的特点。
Android中有五种常用布局,分别为RelativeLayout(相对布局)、LinearLayout(线性布局)、FrameLayout(帧布局)、TableLayout(表格布局),他们的特点具体如下:
五、编程题
一、判断题
1、对 2、错 3、错 4、对 5、对
二、选择题
1、B 2、C 3、D 4、A 5、C 6、B 7、A 8、A
三、简答题
1. 简述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添加动画效果。
2. 简述实现Button按钮的点击事件的方式有哪几种?
答:实现Button按钮的点击事件一共有3种方式,具体如下:
2、使用匿名内部类的方式设置点击事件。
3、通过为Activity实现OnClickListener接口的方式设置点击事件。
3.简述AlertDialog对话框的创建过程
AlertDialog对话框的创建过程如下:
1、 调用AlertDialog的静态内部类Builder创建AlertDialog.Builder的对象。
2、 调用AlertDialog.Builder的setTitle()和setIcon()方法分别设置AlertDialog对话框的标题名称和图标。
3、 调用AlertDialog.Builder的setMessage()、setSingleChoiceItems()或者setMultiChoiceItems()方法设置AlertDialog对话框的内容为简单文本、单选列表或者为多选列表。
4、 调用AlertDialog.Builder的setPositiveButton()和setNegativeButton()方法设置AlertDialog对话框的确定和取消按钮。
5、 调用AlertDialog.Builder的create()方法创建AlertDialog对象。
6、 调用AlertDialog对象的show()方法显示该对话框。
7、 调用AlertDialog对象的dismiss()方法取消该对话框。
四、编程题
一、填空题
1、singleInstance
2、startActivityForResult()
3、IntentFilter
4、在清单文件中为Activity添加<intent-filter>标签时,必须添加的属性名为(action),否则隐式Intent无法开启该Activity
5、finish()
二、判断题
1、对 2、错 3、对 4、错 5、对
三、选择题
1、C 2、B 3、B 4、A 5、B
四、简答题
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,这些模式的特点具体如下:
3. 简述Activity、Intent、IntentFilter的作用
答:Activity表示活动,他是Android的四大组件之一,Intent表示意图,IntentFilter表示过滤器,他们的作用具体如下:
(1) Activity是一个负责与用户交互的组件,每个Android应用中都会用Activity来显示界面以及处理界面上一些控件的事件。
(2) Intent被称为意图,是程序中各组件间进行交互的一种重要方式,它不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。
(3) IntentFilter为过滤器,当发送一个隐式Intent后,Android系统会将它与程序中的每一个组件的过滤器进行匹配,匹配属性有 action、data、category,需要这三个属性都匹配成功才能唤起相应的组件。
一、判断题
1、对 2、对 3、错 4、对 5、错 6、对
二、选择题
1、C 2、B 3、B 4、C 5、C 6、D
三、简答题
1.简述数据库事物的4个基本要素要素
答:事务的操作比较严格,他必须满足ACID,ACID是指数据库事务正确执行的四个基本要素的缩写,这些要素包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),接下来针对这四个基本要素进行详细解释。
2. 简述Android数据存储的方式
答:Android平台提供的五种数据存储方式,分别为文件存储、SharedPreferences、SQLite数据库、ContentProvider和网络存储,这些存储方式的特点如下。
四、编程题
1.使用SQLite数据库的事务操作,编写一段模拟银行转账的逻辑代码。
PersonSQLiteOpenHelper helper = new PersonSQLiteOpenHelper (getApplication());
//获取一个可读写的SQLiteDataBase对象
SQLiteDatabase db = helper.getWritableDatabase();
// 开始数据库的事务
db.beginTransaction();
try {
//执行转出操作
db.execSQL("update person set account = account-1000 where name =?",
new Object[] { "张三" });
//执行转入操作
db.execSQL("update information set account = account +1000 where name =?",
new Object[] { "王五" });
//标记数据库事务执行成功
db.setTransactionSuccessful();
}catch (Exception e) {
Log.i("事务处理失败", e.toString());
} finally {
db.endTransaction(); //关闭事务
db.close(); //关闭数据库
}
一、判断题
1、对 2、对 3、对 4、错 5、对
二、选择题
1、C 2、B 3、B 4、C 5、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、对 2、对 3、错 4、对 5、错
三、选择题
A、 BC 2、ABCD
四、简答题
1. 广播机制的实现过程
答:Android中的广播使用了观察者模式,即基于消息的发布/订阅事件的模式。广播发送者和接收者分别处于观察者模式中的消息发布和订阅两端。广播机制的实现过程具体如下:
1. 广播接收者通过Binder机制在AMS(Activity Manager Service)中进行注册。
2. 广播发送者通过Binder机制向AMS发送广播。
3. AMS查找符合相应条件(IntentFilter/Permission)的广播接收者,将广播发送到相应的消息循环队列中。
4. 执行消息循环时获取到发送的广播,然后回调广播接收者中的onReceive()方法并在该方法中进行相关处理。
2. 简述有序广播和无序广播的区别
答:广播分为有序广播和无序广播,他们有以下几点的区别。
(1) 发送广播时,使用的方法不同。有序广播使用sendOrderedBroadcast()发送广播,而无序广播使用sendBroadcast()方法发送广播。
(2) 广播接收者执行的顺序
有序广播按照广播接收者声明的优先级别被依次接收。当在高级别的广播接收者逻辑执行完毕之后,广播才会继续传递。当优先级相同时,先注册的广播接受者优先执行。
当发送无序广播时,所有监听这个广播的广播接收者都会接收到此广播消息,但接收和执行的顺序不确定。
(3)拦截广播
有序广播的接收者可拦截广播。如果优先级较高的广播接收者将广播终止,那么广播将不再向后传递。而无序广播则不能被拦截。
(4)效率
有序广播的效率比无序广播低。
五、编程题
一、填空题
1、unBindService() 2、本地服务 远程服务 3、AIDL
二、判断题
1、错 2、错 3、对 4、错 5、错
三、选择题
1、C 2、D 3、D
四、简答题
1.简述Service的两种启动方式
答:Service的启动方式分别可以调用startService()、bindService()方法,这两个启动方式的区别如下所示:
2. 简述Service的生命周期?
答:使用不同的方式启动服务,其生命周期会不同。开启服务的方法分别为startService()、bindService(),当通过startService()方法启动服务时,执行的生命周期方法依次为onCreate()、onStartCommand()、onDestroy()。当通过bindService()方法启动服务时,执行的生命周期方法依次为onCreate()、onBind()、onUnbind()、onDestroy()。其生命周期方法的具体含义如下:
五、编程题
1、对 2、对 3、对 4、对 5、对 6、错
1、ABCD 2、ABD
1. 简述使用HttpURLConnection 访问网络的步骤。
答:使用HttpURLConnection访问网络的步骤如下:
1. 请写出使用JSONArray类解析JSON数据的主要逻辑代码。JSON数据如下所示。
[{"name":"LiLi","score":"95"},{"name":"LiLei","score":"99"},
{"name":"王小明","score":"100"},{"name":"LiLei","score":"89"}]
答:使用JSONArray类解析JSON数据的逻辑代码如下:
public void getJson(){
String json = "["
+ "{" + "\"" + "name" + "\"" + ":" + "\"" + "LiLi" + "\"" + ","+"\"" + "score" + "\"" + ":" + "\"" + "95" + "\""+ "},"
+ "{" + "\"" + "name" + "\"" + ":" + "\"" + "LiLei" + "\"" + ","+"\"" + "score" + "\"" + ":" + "\"" + "99" + "\""+ "},"
+ "{" + "\"" + "name" + "\"" + ":" + "\"" + "李小明" + "\"" + ","+"\"" + "score" + "\"" + ":" + "\"" + "100" + "\""+ "},"
+ "{" + "\"" + "name" + "\"" + ":" + "\"" + "王小敏" + "\"" + ","+"\"" + "score" + "\"" + ":" + "\"" + "89" + "\""+ "}"+ "]";
JSONArray jsonArray = null;
try {
jsonArray = new JSONArray(json);
for(int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObj = jsonArray.getJSONObject(i);
String name = jsonObj.optString("name");
int score = jsonObj.optInt("score");
}
} catch (JSONException e) {
e.printStackTrace();
}
}
1、对 2、对 3、对
1、ABC 2、ABCD 3、ABCD 4、B 5、C
1.简述逐帧动画的工作原理。
答:逐帧(Frame)动画的工作原理非常简单,类似与动画片的工作原理,他按照事先准备好的静态图片顺序进行播放,并利用人眼的“视觉暂留”原理,使用户产生动画的错觉。
1、对 2、对 3、错 4、对 5、对
1、ABC 2、ABC 3、D
答:使用MediaPlayer播放音频包含以下几个步骤:
2. 简要介绍一下SoundPool使用的场景。
答:SoundPool又称为音频池,他适合在应用程序中播放按键音或者消息提示音等短小的多个音频。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。