《Android面试题附答案.pdf》由会员分享,可在线阅读,更多相关《Android面试题附答案.pdf(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、An droid面试题附答案附带答案,共 100 分一、选择题(30 题,每题 1.5 分,共 45 分)l.java.io 包中定义了多个流类型来实现输入和输出功能,可 以从不同的角度对其进行分类,按功能分为:(c),如果为读取的内容进行处理后再输出,需要使用下列哪种流?(g)A、输入流和输出流B、字节流和字符流流C、节点流和处理D、File stream E、Pipe stream F、Random stream G、Filterstream2 下列代码的执行结果是:(b)public class Test3public static void main(String args)Syste
2、m.out.print(100%3);System.out.print();System.out.println(100%3.0);A、1,1B、1,1.0C、1.0,1D、1.0,1.03. 在继承中,关于构造方法的说明,下列说法错误的是(A、子类无条件的继承父类的无参构造方法,B、子类可以引用父类中的有参构造方法,使用d)super关键字,C、如果子类没有构造方法,则父类无参构造方法作为 自已的构造方法,D、 如果子类有无参构造方法, 而父类的无参构造方法 则被覆盖。4.以下程序的运行结果为(b)public class lfTestpublic static void main(Stri
3、ng args)int x=3;int y=1;if(x=y)System.out.println( “ Not equal ” );elseSystem.out.println(Equal ” );A、Not equal B、Equal C、无输出 D、编译出错5. Java 语言中字符串 学 Java 所占的内存空间是(A. 6 个字节B. 7 个字节C. 10 个字节D. 11 个字节6. 关于下列程序段的输出结果,说法正确的是:public class MyClassa)(d)static int i;public static void main(String argv)System
4、.out.println(i);A、 有错误,变量 i 没有初始化。B、nullC、1D、07. 下列哪些语句关于内存回收的说明是正确的? (b )A、程序员必须创建一个线程来释放内存B、内存回收程序负责释放无用内存C、 内存回收程序允许程序员直接释放内存D、 内存回收程序可以在指定的时间释放内存对象8. 下面异常是属于 Runtime Exception 的是(abed)(多选)A、 ArithmeticExceptionB、 lllegalArgumentExceptionC、 NullPointerExceptionD、 BufferUnderflowException9. Math.r
5、ound(11.5)等于多少().Math.round(-11.5)等于多少(c). cA、 11 ,-11 B、 11 ,-12 C、 12 ,-11 D、 12 ,-1210 下列程序段的输出结果是:(b )void complicatedexpression_r() int x=20, y=30;boolean b;b=x5 0&y60|x50&y60|xandroid:name=c、android:name=android.provider.action.NewBroad/android:name=23.关于 ContenValues 类说法正确的是(a)A、他和 Hashtable
6、比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是 String 类型,而值都是基本类型B、他和 Hashtable 比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是任意类型,而值都是基本类型C、他和 Hashtable 比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名,可以为空,而值都是String 类型D、他和 Hashtable 比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是 String 类型,而值也是 String 类型24.我们都知道 Hanlder 是线程与 Activity 通信的桥梁,程处理不当,你的机器就会变得越慢,那么
7、线程销毁的方法是(a)A、onDestroy()B、onClear()C、onFinish()D、onStop()25. 下面退出 Activity 错误的方法是(c)如果线A、 finish。B、抛异常强制退出C、 System.exit()D、 onStop()26. 下面属于 android 的动画分类的有(ab)(多项)A、Tween B、Frame C、Draw D、Animation27. 下面关于 Android dvm 的进程和 Linux 的进程,应用程序的进程说法正确的是(d)A、DVM 指 dalivk 的虚拟机 每一个 Android 应用程序都在它自己的进程中运行,不
8、一定拥有一个独立的 Dalvik 虚拟机实例.而每一个 DVM 都是在 Linux 中的一个进程,所以说可以认为是同一个概念B、DVM 指 dalivk 的虚拟机 每一个 Android 应用程序都在它自己的进程中运行,不一定拥有一个独立的 Dalvik 虚拟机实例.而每一个 DVM 不一定都是在 Linux 中 的一个进程,所以说不是一个概念.C、DVM 指 dalivk 的虚拟机 每一个 Android 应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik 虚拟机实例.而每一个 DVM 不一定都是在 Linux 中的 一个进程,所以说不是一个概念.D、DVM 指 dalivk 的虚
9、拟机 每一个 Android 应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik 虚拟机实例.而每一个 DVM 都是在 Linux 中的一个进 程,所以说可以认为是同一个概念.28.项目工程下面的 assets 目录的作用是什么AndroidbA、放置应用到的图片资源。B、 主要放置多媒体等数据文件C、 放置字符串,颜色,数组等常量数据D、 放置一些与 UI 相应的布局文件,都是xml 文件29.关于 res/raw 目录说法正确的是(aA、 这里的文件是原封不动的存储到设备上不会转换为二进 制的格式B、 这里的文件是原圭寸不动的存储到设备上会转换为二进制 的格式C、 这里的文件最终
10、以二进制的格式存储到指定的包中D、 这里的文件最终不会以二进制的格式存储到指定的包中30.下列对 android NDK 的理解正确的是(abed )A、 NDK 是一系列工具的集合B、 NDK 提供了一份稳定、功能有限的API 头文件声明。C、 使“ Java+C ” 的开发方式终于转正,成为官方支持的开 发方式D、 NDK 将是 Android 平台支持 C 开发的开端二.填空题(每题 2 分,共 20 分)1. _ 我们用 _int_ 来定义一个整数,用 _char_ 来定义一个字符类型,称为原始数据类型。2. android 中常用的四个布局是relativelayout 和 tabl
11、elayoutoframlayout , linenarlayout ,3. android 的四大 组件是 activiey , service, broadcast 和contentprovide。4. java.io 包中的 objectinputstream 和 objectoutputstream 类主要用于对对象(Object)的读写。5. android 中 service 的实现方法是:startservice 和 bindservice。6. activity 般会重载 7 个方法用来维护其生命周期,除了onCreate(),onStart(),onDestory()onre
12、start,onresume,onpause,onstopb夕卜还有7. android的数 据存储 的方式 sharedpreference,文件,SQIite,contentprovider,网络。8. 当启动一个 Activity 并且新的 Activity 执行完后需要返回到启动它的 Activity 来执行的回调函数是 startActivityResult()。9. 请使用命令行的方式创建一个名字为2.2,sd 卡是在 d 盘的根目录下,myAvd,sdk 版本为名字为 scard.img , 并指定屏幕大小HVGA. _ 。10. _ 程序运行的结果是: _goodand gbc
13、 _ public class ExampleString str=new String(“good” );charch= a ,b ,c ;public static void main(String args)Example ex=new Example。;ex.change(ex.str,ex.ch);System.out.print(ex.str+ ” and “);Sytem.out.print(ex.ch);public void change(String str,char ch)str= ” test ok ch0= g;三简答编程题(共 35 分)1. 在 android 中
14、,请简述 jni 的调用过程。(8 分)1)安装和下载 Cygwin,下载 Android NDK2)在 ndk 项目中 JNI 接口的设计3)使用 C/C+实现本地方法4)JNI 生成动态链接库.so 文件5)将动态链接库复制到 java 工程,在 java 工程中调用,运行java 工程即可2. 简述 Android 应用程序结构是哪些?( 7 分)Android 应用程序结构是:Linux Kernel(Linux 内核)、Libraries(系统运行库或者是 C/C+核心库)、ApplicationFramework(开发框架包)、Applications (核心应用程序)3. 请继承
15、 SQLiteOpenHelper 实现:(10 分)1).创建一个版本为 1 的“ diaryOpenHelper.db 的数据库,2).同时创建一个topic 字符型 100“diary 表(包含一个_id 主键并自增长,长度,content 字符型 1000 长度)3)除.在数据库版本变化时请删 diarydiary 表,并重新创建出 publicclass DBHelper extends SQLiteOpenHelper public final staticString DATABASENAME“ diaryOpenHelper.db ”;public final static i
16、nt DATABASEVERSION = 1;/创建数据库 public DBHelper(Context context,Stringname,CursorFactory factory,int version) super(context, name,factory, version);/创建表等机构性文件public void onCreate(SQLiteDatabase db)String sql =” create table diary ” +“ (“+“ _id integer primary key autoincrement,” +“ topic varchar(100),
17、 ” +content varchar(IOOO) db.execSQL(sql);/若数据库版本有更新,则调用此方法public void onUpgrade(SQLiteDatabase db,intnewVersion)oldVersioString sql =“ drop table if exists diary db.execSQL(sql);this.onCreate(db);4. 页面上现有 ProgressBar 控件 progressBar,请用书写线程以10 秒的的时间完成其进度显示工作。(10 分)答案public class ProgressBarStu extend
18、s Activity private ProgressBar progressBar = null;protected void onCreate(Bundle savedlnstanceState) super.onCreate(savedlnstanceState);setContentView(Rayout.progressbar);/从这到下是关键progressBar = (ProgressBar)findViewByld(R.id.progressBar);Thread thread = new Thread(new Runnable() Overridepublic void r
19、un() int progressBarMax = progressBar.getMax();try while(progressBarMax!=progressBar.getProgress()int stepProgress = progressBarMax/10;int currentprogress = progressBar.getProgress();progressBar.setProgress(currentprogress+stepProgress);Thread.sleep(1000); catch (InterruptedException e) / TODO Auto-
20、generated catch blocke.printStackTrace(););thread.start();II关键结束答案:、选择题1 2 3 4 5 6 7 8 9 10CG B D B A D B ABCD C B11 12 13 14 15 16 17 18 19 20D ABCD C B A AC C D AB AD21 22 23 24 25 26 27 28 29 30ABC A A A C AB D B A ABCD、填空题1. int char2. FrameLayout,LilnearLayout,RelativeLayout,TableLayout3. Activity,Broadcast,Service,ContentProvide4.0bject putStream ObjectOutputSteam5.startService ,bindService6.onRestart(),onResume(),onPause(),onStop()7.SharedPreferences 存储,文件存储,SQLite 存储,ContentProvider,网络存储8. startActivityResult()9. adnroid create acd -n myAvd -t 8 -s HVDA -C d:card.img10. good and gbc