1、云时代Android 面试题集键入文档副标题1 / 69目录第一章 Android 最全面试题 71 道题 .4一、选择题 .4二填空和问答 .925. android 中常用的五个布局是 FrameLayout(单帧布局)、RelativeLyout(相对布局)、LinerLayout(线性布局)、TableLayout( 表格布局)、AbsoluteLayout(绝对布局) .926. android 的四大组件是 _Activity Service BrodcastReceiver ContentProvier。.927. java.io 包中的_ObjectInputStream_和_
2、ObjectOutputStream_类主要用于对对象(Object)的读写。 .928. android 中 service 的启动方法有:_startService_bindService_ .929. activity 一般会重载 7 个方法用来维护其生命周期,分别是:onCreate onStart onResume onPause onStop onDestroy onRestart.930. android 的数据存储的方式有:SharedPreferences 数据存储、文件存储、SQLite数据库存储数据、Contentprovider 存储数据、网络存储数据 .1031. 当
3、启动一个 Activity 并且新的 Activity 执行完后需要返回到启动它的 Activity 数据,启动新 Activity 的方法是_startActivityForResult(intent,RequestCode)_,用来处理返回数据的 Activity 回调函数是 void onActivityResult(int requestCode,int resultCode,intent data)_。 .1033.下面 程序运行的结果是:_。 .1034. 在 android 中,请简述 jni 的调用过程。 .1135. 简述 Android 的体系结构包括哪些 ?.1136.
4、请继承 SQLiteOpenHelper 实现下述功能 .1137. 页面上现有 ProgressBar 控件 progressBar,请用书写线程以 10 秒的的时间完成其进度显示工作。 .1238. 请描述 Activity 的生命周期。 .1339. 如果后台的 Activity 由于某原因被系统回收了,如何在被系统回收之前保存当前状态? .132 / 6940. 如何将一个 Activity 设置成对话框窗口的样式。 .1441. 如何退出 Activity?如何安全退出已调用多个 Activity 的 Application? .1443. 请介绍下 Android 的数据存储方式。
5、 .1544. 请介绍下 ContentProvider 是如何实现数据共享的。 .1545. 如何启用 Service,如何停用 Service。 .1546. 注册广播接收器有几种方式,这些方式有何优缺点?请谈谈 Android 引入广播机制的用意。 .1647. 请解释下在单线程模型中 Message、Handler、Message Queue、Looper 之间的关系。 .1848. AIDL 的全称是什么?如何工作?能处理哪些类型的数据? .1949. 请解释下 Android 程序运行时权限与文件系统权限的区别。 .2050. 系统上安装了多种浏览器,能否指定某浏览器访问指定页面?
6、请说明原由。.2051. 你如何评价 Android 系统优缺点。 .2052. 什么是 ANR 如何避免它 ?.2153. 什么情况会导致 Force Close ?如何避免?能否捕获导致其的异常 ? .2254.Android 本身的 api 并未声明会抛出异常,则其在运行时有无可能抛出 runtime异常,你遇到过吗?若有的话会导致什么问题 ?如何解决? .2255. 简要解释一下 activity、 intent 、intent filter、service、Broadcase 、BroadcaseReceiver .2256. IntentService 有何优点? .2357. 请
7、描述横竖屏切换时候 activity 的生命周期? .2358. 如何将打开 res aw 目录中的数据库文件? .23如何将 SQLite 数据库(dictionary.db 文件)与 apk 文件一起发布? .2359. Android 引入广播机制的用意? .2360.Android dvm 的进程和 Linux 的进程, 应用程序的进程是否为同一个概念 .243 / 6961. sim 卡的 EF 文件有何作用 .2462. 嵌入式操作系统内存管理有哪几种, 各有何特性 .2463. 什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗 ? .2464. 一条最长的短
8、信息约占多少 byte?.2465. android 中的动画有哪几类,它们的特点和区别是什么? .2466. 请说明 handler 机制的原理 .2467. 说说 mvc 模式的原理,它在 android 中的运用? .2568. DDMS 和 TraceView 的区别? .2569. java 中如何引用本地语言 .2570. 谈谈 Android 的 IPC(进程间通信)机制 .2571. NDK 是什么 .26第二章 Android 面试题总结加强版(一) .261.android 中线程与线程,进程与进程之间如何通信 .262.请描述一下你所掌握的 Android 常用控件的信息
9、 .263 ListtView 的数据加载优化方案 .274 请描述广播接收者生命周期 .275.设计模式和 IoC(Inversion of Control 控制反转) .286.请说明 Android 中的长度单位 .287. 请解释 4 种 activity 的启动模式 .298.如果后台的 Activity 由于某原因被系统回收了,如何在被系统回收之前保存当前状态? .299 View, surfaceView,GLSurfaceView 有什么区别。 .2910 AndroidManifest.xml 文件中主要包括哪些信息? .2911 根据自己的理解描述下 Android 数字签
10、名。 .304 / 6912 AIDL 的全称是什么?如何工作?能处理哪些类型的数据? .3013 android:gravity 与 android:layout_gravity 的区别 .3114 android 中有哪几种解析 xml 的类,官方推荐哪种?以及它们的原理和区别 . .3115 Android 系统中 GC 什么情况下会出现内存泄露呢? .3216 双缓冲技术原理以及优缺点: .3217 AsyncTask 简介 .3218, Socket 通信编程的基本实现步骤 .3319 如果有个 100M 大的文件,需要上传至服务器中,而服务器 form 表单最大只能上传 2M,可以
11、用什么方法。 .3320 内存溢出和内存泄漏有什么区别?何时会产生内存泄漏?内存优化有哪些方法?.3321 AsyncTask 使用在哪些场景?它的缺陷是什么?如何解决? .3322 assest 文件夹里放文件,对于文件的大小有没有限制?22 .3423 启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别? .3424、同一个程序,但不同的 Activity 是否可以放在不同的 Task 任务栈中? .345 / 69第一章 Android 最全面试题一、选择题1. 下列哪些语句关于内存回收的说明是正确的? ( b )A、程序员必须创建一个线程来释放内存B、内存
12、回收程序负责释放无用内存C、内存回收程序允许程序员直接释放内存D、内存回收程序可以在指定的时间释放内存对象2. 下面异常是属于 Runtime Exception 的是( abcd )(多选)A、ArithmeticExceptionB、IllegalArgumentExceptionC、 NullPointerExceptionD、BufferUnderflowException3. Math.round(11.5)等于多少( )?Math.round(-11.5)等于多少( c ).A、11 ,-11 B、11 ,-12 C、12 ,-11 D、12 ,-124. 下列程序段的输出结果是:
13、(b)void complicatedexpression_r()6 / 69int x=20, y=30;boolean b;b=x50&y60|x50&y60|xfill_parentB、fill_parent(没有)C、fill_parent(没有)D、fill_parent(应为)8 / 6910. 在 android 中使用 Menu 时可能需要重写的方法有( ac ) 。(多选)A、onCreateOptionsMenu()B、onCreateMenu()C、onOptionsItemSelected()D、onItemSelected()说明:/当客户点击 MENU 按钮的时候,
14、调用该方法public boolean onCreateOptionsMenu(Menu menu)/当客户点击菜单当中的某一个选项时,会调用该方法public boolean onOptionsItemSelected(MenuItem item) 11. 在 SQLServer Management Studio 中运行下列 T-SQL 语句,其输出值( c ) 。SELECT IDENTITYA、可能为 0.1B、可能为 3C、不可能为-100D、肯定为 0identity 是表示的是最近一次向具有 identity 属性(即自增列)的表插入数据时对应的自增列的值,是系统定义的全局变量。
15、一般系统定义的全局变量都是以开头,用户自定义变量以开头。比如有个表 A,它的自增列是 id ,当向 A 表插入一行数据后,如果插入数据9 / 69后自增列的值自动增加至 101,则通过 select identity 得到的值就是 101。使用identity 的前提是在进行 insert 操作后,执行 select identity 的时候连接没有关闭,否则得到的将是 NULL 值。12. 在 SQLServer 2005 中运行如下 T-SQL 语句,假定 SALES 表中有多行数据,执行查询之后的结果是(d) 。BEGIN TRANSACTION AUpdate SALES Set qt
16、y=30 WHERE qty30BEGIN TRANSACTION BUpdate SALES Set qty=40 WHERE qty40Update SALES Set qty=50 WHERE qty50Update SALES Set qty=60 WHERE qty60COMMITTRANSACTION BCOMMIT TRANSACTION AA、SALES 表中 qty 列最小值大于等于 30B、SALES 表中 qty 列最小值大于等于 40C、 SALES 表中 qty 列的数据全部为 50D、SALES 表中 qty 列最小值大于等于 60Update SALES Set qty=60 WHERE qty60(关键在最后一句,执行完数据就都是大于等于60 了)13. 在 android 中使用 SQLiteOpenHelper 这个辅助类时,可以生成一个数据库,并可以对数据库版本进行管理的方法可以是( ab )A、getWriteableDatabase()B、getReadableDatabase()C、getDatabase()