Android笔试题(1-13)

合集下载

android开发笔试题及答案

android开发笔试题及答案

android开发笔试题及答案一、选择题1. 下列哪个不是Android开发中常用的布局控件?A. LinearLayoutB. RelativeLayoutC. ConstraintLayoutD. Button答案:D2. 在Android中,下列哪个方法用于启动一个新的Activity?A. startActivity()B. startService()C. bindService()D. sendBroadcast()答案:A3. 下列哪个不是Android中的四大组件?A. ActivityB. ServiceC. Content ProviderD. View答案:D4. 在Android开发中,下列哪个不是UI线程?A. 主线程B. UI线程C. 子线程D. 工作线程答案:C5. 在Android中,下列哪个不是用于处理网络请求的类?A. HttpURLConnectionB. HttpClientC. AsyncTaskD. HttpUrlConnection答案:C二、填空题1. 在Android中,______是用来定义一个应用程序的可执行组件。

答案:Activity2. AndroidManifest.xml文件是Android应用的______。

答案:配置文件3. 在Android开发中,______是用来实现数据持久化的一种方式。

答案:SQLite4. 在Android中,______是用来处理后台任务的。

答案:Service5. Android中,______是用来进行网络通信的。

答案:HTTPURLConnection三、简答题1. 请简述Android中Activity和Fragment的关系。

答案:Activity是Android应用程序中的基本构建块,它是一个可以包含用户界面的屏幕。

Fragment是Activity的一部分,可以被添加到Activity中,用来管理用户界面的一部分。

android笔试题

android笔试题

android笔试题Android是一种基于Linux的开放源代码操作系统,主要用于移动设备、平板电脑和智能电视等。

近年来,Android在全球范围内得到了广泛的应用和普及。

而为了能够熟练掌握Android开发技术,需要进行系统的学习和实践,并且需要通过一些笔试题来测试和巩固自己的知识。

下面是一些常见的Android笔试题,帮助你进一步了解该领域的知识。

一、基础知识1. 什么是Android操作系统?Android操作系统是基于Linux的开放源代码操作系统,主要用于移动设备和智能电视等。

它提供了丰富的应用程序框架和开发工具,能够实现丰富多样的移动应用程序。

2. 什么是APK文件?APK文件是Android应用程序的安装包文件,其中包含了该应用程序的所有代码、资源文件和配置信息等。

通过将APK文件安装到Android设备上,用户可以使用和体验该应用程序。

3. 什么是Activity?它的生命周期是怎样的?Activity是Android应用程序的组成部分,它代表着一个用户界面和交互的窗口。

Activity的生命周期包括以下几个关键方法:onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()。

通过这些方法,开发者可以控制Activity的初始化、可见性以及内存管理等操作。

4. 什么是Intent?它有哪些作用?Intent是Android应用程序之间进行通信和交互的一种机制。

它可以用于启动Activity、传递数据、启动Service、启动BroadcastReceiver等。

通过使用Intent,开发者可以灵活地实现不同组件之间的相互调用和传递数据。

二、布局和界面1. Android常用的布局有哪些?请简要介绍一下。

Android常用的布局有线性布局(LinearLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)和网格布局(GridLayout)等。

Android笔试题-新

Android笔试题-新

Android 笔试题(一)多选题(每题5分,可能包含多个选项)1.下列哪种类型的对象不能直接通过Intent传递?A. StringB. ParcelableC. SerializableD. View2.Activity在不可见时随时会被系统终止。

在终止前要保存Activity状态,需要实现哪些方法?A. onPause()B. onStop()C. onFinish()D. onSaveInstanceState()E. onSaveActivityState()3.下列方法中,执行耗时操作而不会产生ANR的有:A. AsyncTask.doInBackground()B. Activity.onPause()C. Receiver.onReceive()D. Service.onStartCommand()4.下列做法中,存在内存泄露的隐患有:A. 在Activity中使用静态变量B. 成员变量中使用软引用C. Activity结束时没有将成员变量置为nullD. 查数据库忘记关闭Cursor5.下列布局中,需要使用Adapter的有:A. TabHostB. TableLayoutC. ListViewD. Gallery6.下面哪一个方法是View的强制刷新方法?A.invalidate()B. paint()C. redraw()D. refresh()7.如果发现UI布局在手机上出现问题,可以用sdk中哪个工具查看?A.DDMSB. HierarchyViewerC.TraceViewD. hprof-conv8.想把手机上的文件拷贝到电脑上,应当使用哪个命令?A.adb pushB. adb installC. adb copyD. adb pull9.下面描述正确的是?A.AIDL是线程间通信解决方案B.不同的Android应用之间可以通过SharedPreference交换数据C. Android的dvm是Linux中的一个进程D. 一个Android应用可以运行在多个dvm上(二)填空题(每空5分)这是一个从 Web 页面读取文本内容并显示的程序,请完成空白的部分。

Android开发基础(习题卷1)

Android开发基础(习题卷1)

Android开发基础(习题卷1)第1部分:单项选择题,共71题,每题只有一个正确答案,多选或少选均不得分。

1.[单选题]关于res/raw目录说法正确的是( )A)这里的文件是原封不动的存储到设备上不会转变为二进制的格式B)这里的文件是原封不动的存储到设备上会转变为二进制的格式C)这里的文件最终以二进制的格式存储到指定的包中D)这里的文件最终不会已二进制的格式存储到指定的包中答案:A解析:2.[单选题]下列代码输出的结果是:( )int i = 0;i = ++i + 8;Console.WriteLine(i++);A)8B)9C)10D)编译出现语法错误,不能运行答案:B解析:i = ++i + 8; 结果为9i++是先输出后加,所以为93.[单选题]查询手机系统短信时,内容提供者对应的 Uri 为( )。

A)Contacts.Photos.CONTENT_URIB)Contacts.People.CONTENT_URIC)"content://sms/"D)Media.EXTERNAL_CONTENT_URI答案:C解析:4.[单选题]在多个应用中读取共享存储数据时,需要用到的query 方法,是哪个对象的方法( )A)ContentResolverB)ContentProviderC)CursorD)SQLiteHelper答案:A解析:5.[单选题]以下哪个不是应用间交互常用的方法? ()A)接收Broadcast 的消息B)文件共享访问C)通过Content Resolver 接口访问D)Activity 的调用6.[单选题]下面关于广播叙述错误的是( )A)广播是Android 四大组件之一B)BroadcastReceiver 有两种注册方式,静态注册和动态注册C)静态注册需要在Mainfest.xml 中配置D)动态注册需要在应用退出时候接触广播的注册。

答案:A解析:7.[单选题]若要实现对系统联系人的增删改查,需要使用的系统ContentProvider的Uri为( )。

android 笔试题及答案

android 笔试题及答案

android 笔试题及答案一、选择题1. 下列哪个不是Android应用的组成部分?A. 清单文件(AndroidManifest.xml)B. Java源代码文件C. 图片和资源文件D. 执行文件答案:D2. Android系统的内核基于以下哪个操作系统?A. WindowsB. LinuxC. macOSD. iOS答案:B3. 在Android开发中,以下哪个不是常用的布局文件?A. LinearLayoutB. RelativeLayoutC. FrameLayoutD. TableView答案:D4. 在Android中,以下哪个不是四大组件?A. ActivityB. ServiceC. IntentD. ContentProvider答案:C5. 在Android中,以下哪个不是常用的存储方式?A. SharedPreferencesB. SQLite数据库C. 文件存储D. 内存缓存答案:D二、填空题1. Activity的生命周期包括以下几个方法:onCreate、onStart、______、onStop、onDestroy。

填空答案:onResume2. ______是Android系统提供的轻量级跨进程通信方式。

填空答案:AIDL(Android Interface Definition Language)3. 在Android中,使用______可以发送一个广播给其他应用或系统组件。

填空答案:Intent4. 在Android开发中,______是一种将组件从布局文件中实例化的机制。

填空答案:LayoutInflater5. 使用______可以将一个应用发布到Google Play商店。

填空答案:Android Studio、Android Developer Console三、问答题1. 什么是Fragment?它的作用是什么?答案:Fragment是Android中一种可重复使用的界面组件,它可以嵌入到Activity中,并且可以独立地管理自己的生命周期。

Android笔试基础题以及面试题.

Android笔试基础题以及面试题.

Android笔试题及答案一、选择题(20题,每题2分,共40分)1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分类,按功能分为:(),如果为读取的内容进行处理后再输出,需要使用下列哪种流?(CG)A、输入流和输出流B、字节流和字符流C、节点流和处理流D、File streamE、Pipe streamF、Random streamG、Filter stream2.下列代码的执行结果是:(B)public class Test3{public static void main(String args[]){System.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.以下程序的运行结果为( B )public class IfTest{public static void main(String args[]){int x=3;int y=1;if(x==y)System.out.println("Not equal");elseSystem.out.println("Equal");}}A、Not equalB、EqualC、无输出D、编译出错4.Java语言中字符串“学Java”所占的内存空间是(A)A. 6个字节B. 7个字节C. 10个字节D. 11个字节5.关于下列程序段的输出结果,说法正确的是:(D )public class MyClass{static int i;public static void main(String argv[]){System.out.println(i);}}A、有错误,变量i没有初始化。

B、nullC、1D、06.下列哪些语句关于内存回收的说明是正确的? ( B)A、程序员必须创建一个线程来释放内存B、内存回收程序负责释放无用内存C、内存回收程序允许程序员直接释放内存D、内存回收程序可以在指定的时间释放内存对象7. Math.round(11.5)等于多少(). Math.round(-11.5)等于多少(C).A、11 ,-11B、11 ,-12C、12 ,-11D、12 ,-128.下列程序段的输出结果是:( B)void complicatedexpression_r(){int x=20, y=30;boolean b;b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60;System.out.println(b);}A、trueB、falseC、1D、09.activity对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行(D)A、onPause()B、onCreate()C、onResume()D、onStart()10.android 中下列属于Intent的作用的是(C)A、实现应用程序间的数据共享B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带D、处理一个应用程序整体性的工作11.下列属于SAX解析xml文件的优点的是(B)A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能B、不用事先调入整个文档,占用资源少C、整个文档调入内存,浪费时间和空间D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失12.下面的对自定style的方式正确的是(A)A、<resources><style name="myStyle"><item name="android:layout_width">fill_parent</item></style></resources>B、<style name="myStyle"><item name="android:layout_width">fill_parent</item></style>C、<resources><item name="android:layout_width">fill_parent</item></resources>D、<resources><style name="android:layout_width">fill_parent</style></resources>13.在SQL Server 2005中运行如下T-SQL语句,假定SALES表中有多行数据,执行查询之后的结果是(D)。

Android工程师笔试题及答案

Android工程师笔试题及答案

Android工程师面试题一、基础(79分)1.String s = new String("xyz");创建了几个String Object ( )3分A、1个B、2个C、3个D、4个2.和分别等于多少(3.)2分A、11和-11B、12和-11C、11和-12D、12和-124.以下错误的说法有:( )2分A、只要设计合理,当出现error这样的情况时,程序完全可以自动处理B、exception 表示一种设计或实现问题C、Set和Map都继承自Collection接口D、接口可以继承接口E、抽象类可以继承没有构造函数的实体类5.以下哪种类型不能作为switch(expr1)表达式的expr1( )3分A、intB、longC、charD、byte6.有关ArrayList和Vector的说法,那些是错误的(7. )3分A、Vector是线程安全的B、ArrayList是线程序不安全的C、当需要增长时,Vector默认增长为原来一培D、当需要增长时, ArrayList默认增长为原来一培8.以下说法那些是错误的()3分A、一个char型变量可以存储一个中文汉字B、String是最基本的数据类型C、Integer的缺省值是0D、String类提供了数值不可改变的字符串9.请指出以下代码的执行结果()5分class A{static{X");}public A(){}}classBextendsA{static{}public B(){}}publicclassHello{publicstaticvoidmain(String[]ars){Aab=newB();ab=newB();}}A、Xa2b2bB、Xa2bXa2bC、abX2abD、2bXaba10.2<<3= ()3分A、8B、6C、9D、1611.那些不属于面向对象的特征()2分A、多态性B、抽象C、继承D、重写12.若要说明一个抽象类,使用的关键字是:()2分A、staticB、implementsC、extendsD、abstract13.在Java中,要定义类的保护类型元素,则必须使用的关键字是()2分A、[default]B、privateC、publicD、protected14.下面是有关子类调用父类构造函数的描述正确的是()2分A、子类定义了自己的构造函数,就不会调用父类的构造函数B、子类必须通过super关键字调用父类没有参数的构造函数C、如果子类的构造函数没有通过super调用父类构造函数,那么子类会先调用父类不含参数的构造函数,再调用子类自己的构造函数D、创建子类对象时,先调用子类自己的构造函数,然后调用父类的构造函数15.下列选项中不属于结构化程序设计方法的是()2分16.A、自顶向下 B、逐步求精17.C、模块化 D、可复用18.下列描述中,错误的是()2分19.A、Java要求编程者管理内存20.B、Java的安全性体现在多个层次上21.C、Applet要求在支持Java的浏览器上运行22.D、Java有多线程机制23.以下代码的输出结果是:()2分publicclassTest1{publicstaticvoidchangeStr(Stringstr){str="welcome";}publicstaticvoidmain(String[]args){Stringstr="1234";changeStr(str);}}A、1234B、welcome24.以下代码的输出结果是:()4分Public class Test2 {Static boolean foo(char c) {return true;}Public static void main(String[] argv) {int i = 0;ABDCBDCB B. ABCDABCDC. Compilation fails.D. An exception is thrown at runtime.25.假设int x=4,y=50,下列语句的循环体共执行几次 ( )4分while (y / x > 3) {if (y % x > 3) {x = x + 1;} else {y = y / x;}}A、1B、2C、3D、426.要从文件" "文件中读出第10个字节到变量C中,下列哪个方法适合27.3分A、FileInputStream in=new FileInputStream(""); (9); int c=();B、FileInputStream in=new FileInputStream(""); (10); int c=();C、FileInputStream in=new FileInputStream(""); int c=();D、RandomAccessFile in=new RandomAccessFile(""); (9); int c=();28.下面异常是属于Runtime Exception 的是()(多选) 2分A、ArithmeticExceptionB、IllegalArgumentExceptionC、NullPointerExceptionD、BufferUnderflowException29.下面在文件中注册BroadcastReceiver体式格式正确的() 4分30.android 关于service生命周期的onCreate()和onStart()说法正确的是()(多选题)3分A、当第一次启动的时辰先后调用onCreate()和onStart()办法B、当第一次启动的时辰只会调用onCreate()办法C、若是service已经启动,将先后调用onCreate()和onStart()办法D、若是service已经启动,只会履行onStart()办法,不在履行onCreate()办法31.关于SharedPreferences和文件存储数据描述正确的是( ).(选择一项) () 3分A. 使用文件存储需要创建文件,而SharedPreferences的存储方式自动创建xml文件B. 使用文件存储时,只能将文件保存在SD卡上C. 两种存储方式都可以将存储的数据共享给其他应用D. SharedPreferences一般用于保存不经常改变的参数设置32.定义广播需要重写父类中的什么方法().(选择一项) 3分A. onCreateB. onSendC. onReceiveD. onBroadcast33.下列聚合函数中不忽略空值 (null) 的是()2分A. SUM (列名)B. MAX (列名)C. COUNT ( )D. AVG (列名)34.SQL中,下列涉及空值的操作,不正确的是()2分A. AGE IS NULLB. AGE IS NOT NULLC. AGE = NULLD. NOT (AGE IS NULL)35.SQL语言中,条件“年龄BETWEEN 20 AND 30”表示年龄在20至30之间,且( )2分A.包括20岁和30岁B.不包括20岁和30岁C.包括20岁但不包括30岁D.包括30岁但不包括20岁36.在android中使用SQLiteOpenHelper这个辅助类时,可以生成一个数据库,并可以对数据库版本进行管理的方法可以是( ) 3分A、getWriteableDatabase()B、getReadableDatabase()C、getDatabase()D、getAbleDatabase()37.若用如下的SQL语句创建了一个表SCREATE TABLE S(S CHAR(6) NOT NULL,SNAME CHAR(8) NOT NULL,SEX CHAR(2),AGE INTEGER)今向S表插入如下行时,哪一行可以被插入 3分A、('991001','李明芳',女,'23')B、('990746','张为',NULL,NULL)C、(NULL,'陈道一','男',32)D、('992345',NULL,'女',25)38.有表tb,tb有字段id(int型)、a(varchar型)、b(char型)、c(日期型)下面那些sql语句是正确的()3分A、update tb set a=’1’ where id=1B、delete tb where id=1C、select top 1 b from tb order by a descD、update table tb set a=’1’ where id=2二、逻辑部分(21分)1、某商场失窃,员工甲、乙、丙、丁涉嫌被拘审.甲说:“是丙作的案.”乙说:“我和甲、丁三人中至少有一人作案.”丙说:“我没作案.”丁说:“我们四人都没作案.”如果四人中只有一人说真话,则可推出以下哪项结论 4分A.甲说真话,作案的是丙.B.乙说真话,作案的是乙.C.丙说真话,作案的是甲.D.丙说真话,作案的是丁.E.丁说真话,四人中无人作案.2、随着心脏病成为人类的第一杀手.人体血液中的胆固醇含量越来越引起人们的重视.一个人血液中的胆固醇含量越高,患致命的心脏病的风险也就越大.至少有三个因素会影响人的血液中胆固醇的含量,它们是抽烟、饮酒和运动.如果上述断定为真,则以下哪项一定为真 4分I 某些生活方式的改变,会影响一个人患心脏病的风险.II 如果一个人血液中的胆固醇含量不高,那么他患致命的心脏病的风险也不高.III 血液中的胆固醇高含量是造成当今人类死亡的主要原因.A.只有I.B.只有Ⅱ.C.只有I和Ⅱ.D.只有I和III.E.I、II和III.3、如果比较全日制学生的数量,东江大学的学生数是西海大学学生数的70%,如果比较学生总数量(全日制学生加上成人教育学生),则东江大学的学生数是西海大学的120%.由上文最能推出以下哪项结论 5分A.东江大学比西海大学更注重教学质量.B.东江大学成人教育学生数量所占总学生数的比例比西海大学的高.C.西海大学的成人教育学生比全日制学生数多.D.东江大学的成人教育学生数比西海大学的少.E.东江大学的全日制学生比成人教育学生多.4、在一次对全省小煤矿的安全检查后,甲、乙、丙三个安检人员有如下结论:甲:有小煤矿存在安全隐患.乙:有小煤矿不存在安全隐患.丙:大运和宏通两个小煤矿不存在安全隐患.如果上述三个结论只有一个正确,则以下哪项一定为真 4分A.大运和宏通煤矿都不存在安全隐患.B.大运和宏通煤矿都存在安全隐患.C.大运存在安全隐患,但宏通不存在安全隐患.D.大运不存在安全隐患,但宏通存在安全隐患.E.上述断定都不一定为真.5、一把钥匙能打开天下所有的锁.这样的万能钥匙是不可能存在的.4分以下哪项最符合题干的断定A.任何钥匙都必然有它打不开的锁.B.至少有一把钥匙必然打不开天下所有的锁.C.至少有一把锁天下所有的钥匙都必然打不开.D.任何钥匙都可能有它打不开的锁.E.至少有一把钥匙可能打不开天下所有的锁.答案一、j2ee基础(64分)1、B 32、B 23、A/C/E 24、B 35、D 36、BC 37、A 58、D 39、B 210、D 211、D 212、C 213、D 214、A 215、A 216、A 417、A 418、A 319、A/B/C/D 220、A 421、A/D 322、A 323、C 324、C 325、C 326、A 327、AB 328、B 329、A/C 3三、逻辑题1、A 42、A 43、B 54、B 45、A 4。

Android编程基础笔试题及答案

Android编程基础笔试题及答案

《Android 编程基础》试卷 A题号 一 二 三 总分 合分人得分 注意事项:1. 本试卷共 8 页,满分 100 分;2. 请把学院、姓名、班级写到密封线内,考试时间90 分钟;3. 请不要把答案写在密封线内得分阅卷人题答一、单项选择题(共 35 题,共 61 分) 1、 D03MA057(2 分)退出 activity 对一些资源以及状态的操作保留,能够在生命周要期的哪个函数中进行 aA 、onPause()B 、 onCreate()C 、 onResume()D 、onStart()不2、 D02MA058 (2 分) Android 项目工程下边的 assets 目录的作用是什么 b内线名 姓封 3、级 班密 4、院 学5、A 、搁置应用到的图片资源。

Res/drawableB 、主要搁置一些文件资源 , 这些文件会被纹丝没动打包到 apk 里面 C 、搁置字符串,颜色,数组等常量数据 res/values D 、搁置一些与 UI 相应的布局文件,都是 xml 文件 res/layoutD04MA059 (2 分)以下不属于 android 布局的是 (c)E 、 A 、B 、C 、BorderLayoutD 、 Fr a me L a y ou t L i n ea r L a y o u tTa b l e La y o ut Re l a t i v e L a y o utD08MA2060(2 分) Intent的作用的是 aA 、intent 是连结四大组件的纽带 , 能够实现界面间切换, 能够包含动作和动作数据,B 、是一段长的生命周期,没实用户界面的程序,能够保持应用在后台运转,而不会由于切 换页面而消逝 serviceC 、实现应用程序间的数据共享 contentproviderD 、办理一个应用程序整体性的工作D04EA1061(1分) 以下哪个是 AbsoluteLayout 中独有的属性 bA,android:layout_height B,android:layout_xC,android:layout_above D,android:layout_toRightOf 6、 D07EA1062(1分)RatingBar 组件中不可以用属性直接设置的是 dA, 五角星个数 B, 目前分数 C,分数的增量 D,五角星的色彩 7、D在手机开发中常用的数据库是 _a__10EA1063(1 分 )A,sqlLite B,OracleC,Sql ServerD,Db238、 D14MA2064(2分) 对于 BroadcastReceiver 的说法不正确的选项是_b_A, 是用来接收广播 Intent 的B, 一个广播 Intent只好被一个定阅了此广播的BroadcastReceiver所接收C, 对有序广播,系统会依据接收者申明的优先级别按次序逐一履行接收者D, 接收者申明的优先级别在<intent-filter>的android:priority属性中申明,数值越大优先级别越高9、 D19MA2065(2分)使用MediaPlayer播放保留在sdcard上的mp3文件时_c_A, 需要使用方法创立 MediaPlayerB, 直接 newMediaPlayer 即可C,需要调用 setDataSource 方法设置文件源D,直接调用 start方法,无需设置文件源10、 D05EA1066(1分) 在 android 中使用 RadioButton 时,要想实现互斥的选择需要用的组件是 dA,ButtonGroup B, RadioButtons C,CheckBox D,RadioGroup11、 D16MA2067(2分) 在多个应用中读取共享储存数据时,需要用到的query方法,是哪个对象的方法__A_A, ContentResolver B, ContentProvider C, Cursor D,SQLiteHelper 12、D03MA2068(2分)DDMSLog 信息分为几个级别_c_中A,3B,4C,5D,613、 D06MA2069(2分) 能够自动达成输入内容的组件是_d__A,TextView B,EditText C,ImageView D,AutoCompleteTextView14、 D12EA1070(1 分)创立子菜单的方法是_b__A,add B,addSubMenu C,createSubMenu D,createMenu15、 D17DA4071(4 分)使用 AIDL 达成远程 service方法调用以下说法不正确的选项是_a_A, aidl对应的接口名称不可以与aidl文件名同样B, aidl的文件的内容近似java 代码C, 创立一个 Service (服务),在服务的onBind(Intent intent)方法中返回实现了 aidl接口的对象D, aidl对应的接口的方法前方不可以加接见权限修饰符16、 D19MA2072(2 分) MediaPlayer 播放资源前,需要调用哪个方法达成准备工作_bA,setDataSource B,prepare C,begin D,pause17、 D12MA2073(2分) 办理菜单项单击事件的方法不包含_d_A, 使用 onOptionsItemSelected(MenuItem item)响应B, 使用 onMenuItemSelected(int featureId ,MenuItem item)响应C,使用 onMenuItemClick(MenuItem item)响应D,使用 onCreateOptionsMenu(Menu menu)响应18、 D13EA1074(1分) android 中文件操作模式中表示只好被本应用使用,写入文件会覆盖的是 _d__A, MODE_APPEND B,MODE_WORLD_READABLEC,MODE_WORLD_WRITEABLE D, MODE_PRIVATE19、 D07MA2075(2分) 进度条中哪个属性是设置进度条大小格式的_d_A,android:secondaryProgress B,android:progress C,android:max D,style20、 D07MA2076(2分) 以下用以显示一系列图像的是_b_A,ImageView B,Gallery C,ImageSwitcher D,GridView 21、D06MA2077(2分) 表示下拉列表的组件是 _b__A,Gallery B,Spinner C,GridView D,ListView22、D12MA2078(2 分)对于AlertDialog的说法不正确的选_a_项是A, 要想使用对话框第一要使用new重点字创立AlertDialog的实例B, 对话框的显示需要调用show方法C,setPositiveButton方法是用来加确立按钮的D,setNegativeButton方法是用来加撤消按钮的23、 D05MA2079(2分) 以下说法错误的选项是 __d__A,Button 是一般按钮组件,除别的还有其余的按钮组件B,TextView 是显示文本的组件, TextView 是 EditText的父类C,EditText是编写文本的组件,能够使用EditText输入特定的字符D,ImageView 是显示图片的组件,能够经过设置显示局部图片24、 D19MA2080(2分) 对于 android 中播放视频的说法不对的是_c__A, 能够使用 SurfaceView 组件播视频 B ,能够使用 VideoView 组件播视频C,VideoView 组件能够控制播放的地点和大小D,VideoView 播放视频的格式能够是3gp25、 D10MA2081(2分) 以下哪个是 SqlLite下的命令_c_A,shell B,push C,.quit D,keytool26、D15EA1082(1分) 以下对于怎样使用Notification,不对的是_d_A,notification需要 NotificatinManager来管理B, 使用 NotificationManager的notify方法显示notification信息C,在显示 Notification时能够设置通知时的默认发声,震动等D,Notification中有方法能够消除信息_b__27、 D19EA1083(1分) 以下对于 open core说法不正确的选项是A, Open core是Android多媒体框架的中心B, MediaPlayer是open Core中的一个中心类C, 全部在 Android 平台的音频、视频的收集以及播放等操作都是经过它来实现的D, 在实现开发中我们其实不会过多地研究open core 的实现,我们的Android为我们供给了上层的media api 的开发使用28、 D12EA1084(1分) 上下文菜单与其余菜单不一样的是_b_A, 上下文菜单项上的单击事件能够使用onMenuItemSelected方法来响应B, 上下文菜单一定注册到指定的view 上才能显示C,上下文菜单的菜单项能够增添,能够删除D,上下文菜单的菜单项能够有子项29、 D07MA2085(2分) 拖动条组件是 _c_A,RatingBar B,ProgressBar C,SeekBar D,ScrollBar30、D13EA1086(1分) 读取文件内容的首要方法是_d__A,openFileOutput B,read C,write D,openFileInput31、 D08EA1087(1分) 对于隐式 Intent正确的选项是_a_A, android中使用IntentFilter来找寻与隐式Intent有关的对象B, 经过组件的名称找寻与intent有关系的对象C, 隐式 Intent更多用于在应用程序内部传达信息D, 一个声了然 IntentFilter的组件只好响应隐式Intent恳求32、 D05MA2088(2分) 多项选择框被选择事件往常用__b__A,setOnClickListener B,setOnCheckChangeListenerC, setOnMenuItemSelectedListener D,setOnCheckedListener33、 D12EA1089(1分) 自定义对话框时,将视图对象增添到目前对话框的方法是_d_A,setIcon B,setXML C,setLayout D,setView34、 D09MA2090(2分) 以下不属于 service生命周期的方法是_C_A,onCreate B,onDestroy C,onStop D,onStart 35、D09MA2091(2分) 绑定 Service 的方法是 _a__A,bindService B, startService C,onStart D,onBind得分阅卷人二、多项选择题(共10 题,共 24 分)36、 D08MB2092(2 分) Intent传达数据时,以下的数据种类哪些能够被传达abcdA、SerializableB、charsequenceC、ParcelableD、Bundle37、 D11DB4093(4 分)数据储存与接见的方式一下说法正确的选项是:(abcde)A、文件 B 、数据库 C 、sharedpreference D、内容供给者 E 、网络38、D07DB4094 (4 分 ).以下可能会致使GC内存泄漏的是:abcA. 数据库的 cursor 没有封闭B. 结构 adapter 时, 没有使用缓存 contentviewC.衍生 listview的优化问题-----减少创立view的对象,充足使用contentview,能够使用一静态类来优化办理getview 的过程 activity一般会重载一些方法用来保护其生命周期,以下不输于有关方法的是 D.使用sqlite数据库39、 D09MA2095(2 分) android经过startService的方式开启服务,对于service生命周期的 onCreate()和onStart()说法正确的选项是adA、当第一次启动的时候先后调用onCreate()和onStart()方法B、当第一次启动的时候只会调用onCreate()方法C、假如 service已经启动,将先后调用onCreate()和onStart()方法D、假如 service已经启动,只会履行onStart()方法,不在履行onCreate()方法40、 D02MB2096(2 分)开发 android 程序需要的开发工具和开发包包含abcdA, JDK B,Eclipse C,Android SDK D,ADT E,Raw41、 D18MB2097(2分) 以下属于补间动画有关类的是_acd__A, TranslateAnimation B,FrameAnimationC, RotateAnimation D, AlphaAnimation42、 D13MB2098(2 分)以下哪些api的操作需要申明权限cdA、播放 mp3 文件 B 、读 SD 卡 ( 读 sd卡状态) C、发短信D、接见网络43、 D10MB2099(2分) 4.在android中使用SQLiteOpenHelper这个协助类时,哪些操作可能生成一个数据库, abA、getWriteableDatabase()B、getReadableDatabase()C、getDatabase()D、 getAbleDatabase()44、D13MB2100(2分)以下对SharePreferences存、取文件的说法中正确的选项abd是:A, 属于挪动储存解决方案B,sharePreferences办理的就是key-value对C,读取 xml 文件的路径是 /sdcard/shared_prefx D,信息的保留格式是xml45、 D15MB2101(2分)NotificationManager中消除信息的方法是bdA,destroy B,cancel C,clear D,cancelAll得分阅卷人三、填空题:(共 11 题, 15 分)46、 D11EC1102(1 分)当启动一个 Activity而且新的Activity履行完后需要返回到启动它的 Activity来履行的回调函数是_____startActivityResult()47、 D06EC1103(1 分) android中输入日期的组件是__ DatePicker ___48、 D17EC1104(1 分) AIDL 的全称是 __ Android interface definition language__49、 D14MC2105 (2分 ) 广播分为 ____ 无序广播和有序广播 _______50、 D06EC1106(1 分) android中输入时间的组件是_TimePicker______51、 D01EC1107(1 分) Android应用的进口点是____Main___52、 D19EC1108(1分) android中特意用于录音的组件是__MediaRecorder__53、 D18MC2109(2 分)动画中有一种 ___Frame__动画,经过次序的播放摆列好的图片来实现,近似电影。

Android面试必备笔试题

Android面试必备笔试题

Android面试必备笔试题1:Android中五种数据存储方式分别是什么?他们的特点?答:Android提供了五种存取数据的方式(1)SharedPreference,存放较少的五种类型的数据,只能在同一个包内使用,生成XML 的格式存放在设备中(2) SQLite数据库,存放各种数据,是一个轻量级的嵌入式数据库(3) File文件,通过读取写入方式生成文件存放数据(4) ContentProvider,主要用于让其他应用程序使用保存的数据(5) 通过网络获取数据和写入数据到网络存储空间2:说说android 中mvc 的具体体现mvc是model,view,controller的缩写,mvc包含三个部分:模型(model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。

视图(view)对象:是应用程序中负责生成用户界面的部分。

也是在整个mvc架构中用户唯一可以看到的一层,接收用户的输入,显示处理结果。

控制器(control)对象:是根据用户的输入,控制用户界面数据显示及更新model对象状态的部分,控制器更重要的一种导航功能,响应用户出发的相关事件,交给m层处理。

android鼓励弱耦合和组件的重用,在android中mvc的具体体现如下:(1)视图(view):一般采用xml文件进行界面的描述,使用的时候可以非常方便的引入。

(2)控制层(controller):android的控制层的重任通常落在了众多的acitvity的肩上,这句话也就暗含了不要在acitivity中写过多的代码,要通过activity交割model业务逻辑层处理,这样做的另外一个原因是android中的acitivity的响应时间是5s,如果耗时的操作放在这里,程序就很容易被回收掉。

(3)模型层(model):对数据库的操作、对网络等的操作都应该在model里面处理,当然对业务计算等操作也是必须放在的该层的。

android笔试题及其参考答案

android笔试题及其参考答案

android笔试题及其参考答案android笔试题及其参考答案身为一个安卓工程师,面试的过程中自然免不了会要遇到笔试的题目,那么该怎么顺利通过笔试呢?下面小编就给大家分享一些android笔试题及其参考答案,希望能帮助你更好的通过面试,快来看看吧!android笔试题及其参考答案在android中,请简述jni的调用过程。

1)安装和下载Cygwin,下载 Android NDK 2)在ndk项目中JNI接口的设计3)使用C/C++实现本地方法4)JNI生成动态链接库.so文件5)将动态链接库复制到java工程,在java工程中调用,运行java工程即可简述Android应用程序结构是哪些? Android 应用程序结构是:Linux Kernel(Linux内核)、Libraries(系统运行库或者是c/c++核心库)、Application Framework(开发框架包)、Applications (核心应用程序)如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态? onSaveInstanceState() 当你的程序中某一个Activity A在运行时,主动或被动地运行另一个新的Activity B,这个时候A会执行onSaveInstanceState()。

B完成以后又会来找A,这个时候就有两种情况:一是A被回收,二是A没有被回收,被回收的A就要重新调用onCreate()方法,不同于直接启动的是这回onCreate()里是带上了参数savedInstanceState;而没被收回的就直接执行onResume(),跳过onCreate()了。

如何将一个Activity设置成窗口的样式。

在AndroidManifest.xml 中定义Activity的地方一句话android:theme=“@android:style/Theme.Dialog”或android:theme=“@android:style/Theme.Translucent”就变成半透明的请介绍下Android中常用的五种布局。

android笔试题及答案

android笔试题及答案

android笔试题及答案Android是一款由谷歌开发的移动操作系统,目前已成为全球最为流行的手机操作系统之一。

对于开发Android应用程序的开发者来说,掌握相关的知识和技能非常重要。

本文将介绍一些常见的Android笔试题及其答案,帮助大家更好地准备和应对Android开发的笔试。

一、Java基础1. 面向对象的三大特征是什么?答案:封装、继承和多态。

2. 请简要说明访问修饰符private、protected、public和default的作用和区别。

答案:private表示私有的,只能在本类中访问;protected表示受保护的,可以在本类、同包及子类中访问;public表示公共的,可以在任何地方访问;default表示默认的,可以在本类及同包中访问。

二、Android基础1. Activity的生命周期是什么?答案:- onCreate():Activity正在创建时调用。

- onStart():Activity正在变为可见时调用。

- onResume():Activity已经可见时调用。

- onPause():Activity正在失去焦点时调用。

- onStop():Activity即将停止时调用。

- onDestroy():Activity即将被销毁时调用。

2. 什么是Intent及其作用?答案:Intent是Android系统中用于传递消息和进行组件之间通信的一种方式。

它可以用来启动Activity、启动Service、发起广播等。

三、Android布局与UI设计1. Android中常用的布局方式有哪些?答案:常用的布局方式有LinearLayout、RelativeLayout、FrameLayout、ConstraintLayout等。

2. 如何在Android中实现数据的持久化存储?答案:可以使用Shared Preferences、文件存储、SQLite数据库等方式实现数据的持久化存储。

android笔试题及答案

 android笔试题及答案

android笔试题及答案[android笔试题]android笔试题及答案android笔试题篇1【】1:下面的表达式错误的就是a:floatf=(1.9+0.1)/(int)1.0b:floatf=1.0fc:floatf=(float)1.0fd:floatf=(int)(0.73+0.27);【】2:设x和y均为int型变量,则以下语句:x+=y,y=x-y;x-=y;的功能是 a:把x和y按从小至大排序b:把x和y按从小到大排列c:并无确认结果d:交换x和y中的值【】3:恳请写下下面程序运行的结果()intx=0;inty=1;inta=x+++++x;intb=y-----y;systeout.println(++a+b++);a:3b:4c:5d:6【】4:选择下列程序运行的结果inttotal=0;for(inti=0,j=5;total<10||j>3;++i,--j){total+=(i+j);systeout.println(total);}a:结果为5,因为一个i自加,一个j自减至抵销等同于没自加b:结果为10,因为正常运算了c:有语法错误,不能写多个变量d:存有语法错误,条件表达式无法写下多个android笔试题篇2【】1:答总共建立了多少个对象?stringaa,b,c;aa="bb";b="dd"+aa;c="cc"+b+aa;stringbufferd=newstringbuffer(c);a:4b:5c:7d:8【】2:接口a中有2个方法,接口b中有2个方法,以下正确的是()a:若USBc承继a,b两个USB,则c一定承继了四个方法b:若类c实现接口a,b,则c中必须至少实现a、b中各一个方法c:若类c必须承继USBa,b,则必须必须定义USBd去承继USBa、b,由类c同时实现USBd,就可以达至目的d:若抽象的接口c继承了接口a,b;抽象的d类实现c接口,此时必须要实现累加接口中的所有方法【】3:关于类,抽象化,USB,承继综合观点错误的就是?a:类与类之间有关联,继承,聚合的关系;b:抽象类可以承继实例类,抽象类可以同时实现USB,抽象化USB可以承继多个USBc:抽象类是类和接口的并集与接口继承的补集d:在应用领域研发中,功能类的承继就是平行结构,同时实现功能的USB就是树型结构【】4:请判断下面程序运行的结果:publicclassparamtest{intnum=1;publicvoidchange(){num=2;}publicvoidchange(intnum){num=3;}publicvoidchange(paramtestpt){pt.num=4;}publicstaticvoidmain(string[]args){paramtestpt=newparamtest();intnum=5;pt.change();systeout.println("1->:"+pt.num);pt.change(num); systeout.println("2->:"+pt.num);pt.change(pt); systeout.println("3->:"+pt.num);}a:b:c:d:1->:11->:21->:21->:22->:52->:52->:22->:53->:42->:53->:43->:4android笔试题篇3【】1:下面方法不可以共存的是:()已知:classa{publica(){}publicvoida(){}publicvoida(intx){}}classbextendsa{//填入一个方法}a:publicvoida(){}b:publicvoida(intx,inty){}c:publicinta(intx,chary){returnx+y;}d:publicstringa(intx){return"hello"+x;}【】2:已知类foo的定义如下:publicclassfoo{intvalue;foo(intvalue){this.value=value;}}运行下面程序段:foo[]a1={newfoo(1),newfoo(2),newfoo(3)};foo[]a2=newfoo[a1.length];systearrayco py(a1,0,a2,0,a1.length);systeout.println((a1==a2)+“,”+(a1[1]==a2[1]));控制台输出的结果是()。

Android笔试题及答案

Android笔试题及答案

Android笔试考题注意:答案请全部写在答题纸上总分: 100分考试时间: 60 分钟一.选择题(共30分)1. 下面关于Android dvm的进程和Linux的进程,应用程序的进程说法正确的是?A.DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念.B.DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux中的一个进程,所以说不是一个概念.C.DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM 不一定都是在Linux 中的一个进程,所以说不是一个概念.D.DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念.2. 下列选项哪个不是Activity启动的方法?A.goToActivityB.startActivityC.startActivityFromChildD.startActivityForResult3. 下列关于XML布局文件在Java代码中被引用的说明中,不正确的是?A.在Activity中,可以使用findViewById( )方法,通过资源id,获得指定视图元素B.在Activity中,可以使用R.drawable-system.***方式引用Android系统所提供的图片资源C.在Activity中,可以使用setContentView( )方法,确定加载哪一个布局文件D.可以使用View类的findViewById( )方法,获得当前View对象中的某一个视图元素4. 下列关于ListView使用的描述中,不正确的是?A.要使用ListView,必须为该ListView使用Adpater方式传递数据B.要使用ListView,该布局文件对应的Activity必须继承ListActivityC.ListView中每一项的视图布局既可以使用内置的布局,也可以使用自定义的布局方式D.ListView中每一项被选中时,将会触发ListView对象的ItemClick事件5. 在android 中使用Menu 时可能需要重写的方法有?A.onOptionsItemSelected()B.onCreateOptionsMenu()C.onItemSelected()D.onCreateMenu()6. 在android中使用SQLiteOpenHelper这个辅助类时,可以生成一个数据库,并可以对数据库版本进行管理的方法可以是?A.getDatabase()B.getWriteableDatabase()C.getReadableDatabase()D.getAbleDatabase()7. android 关于service生命周期的onCreate()和onStart()说法正确的是?A.如果service已经启动,将先后调用onCreate()和onStart()方法B.当第一次启动的时候先后调用onCreate()和onStart()方法C.当第一次启动的时候只会调用onCreate()方法D.如果service已经启动,只会执行onStart()方法,不再执行onCreate()方法8. 下列选项中不属于GLSurFaceView特性的是?A.管理一个surface,这个surface就是一块特殊的内存,能直接排版到android的视图view上。

Android笔试题

Android笔试题

Android笔试题Android笔试题(2000字)1. 请简要描述一下Android系统的架构。

Android系统的架构由以下四个主要组件组成:- Linux内核:提供底层硬件驱动程序和系统级服务,如内存管理、进程管理和网络协议栈等。

- 库:包含了一组核心的C/C++库,用于提供许多Android系统中常用的功能,如文件系统、图形渲染等。

- Android运行时环境(ART):执行Java字节码并管理应用程序的生命周期,包括运行时资源分配、垃圾回收和线程管理等。

- 应用框架:提供各种API和服务,用于开发Android应用程序,并提供了许多预定义的组件,如活动(Activity)、服务(Service)和内容提供器(Content Provider)等。

2. 请解释一下活动(Activity)和片段(Fragment)的区别和连接方式。

活动(Activity)是Android应用程序的基本用户界面单元,它通常代表应用程序中的一个屏幕,并且可以包含一个或多个视图组件。

活动可以通过Intent来启动、停止或销毁。

片段(Fragment)是活动的一部分,它拥有自己的布局和生命周期,可以在活动中动态添加、删除或替换。

区别:- 活动是单独的界面,而片段是活动的一部分。

- 活动通常用于显示全屏幕内容,而片段通常用于显示部分内容。

- 活动可以独立启动、停止或销毁,而片段通常由活动来管理。

连接方式:- 在活动中添加片段:通过在活动的布局中使用<fragment>标签来添加片段,或通过代码动态添加。

- 在片段中嵌入活动:通过在片段中调用getActivity()方法来获取活动的引用,并与活动进行交互。

3. 在Android中如何实现数据持久化?Android中有多种方法可以实现数据持久化,以下是其中一些常用的方法:- SharedPreferences:轻量级的键值对存储方式,适用于存储少量简单的配置信息。

Android开发笔试题库.docx

Android开发笔试题库.docx

黑马程序员:Android开发笔试题库公司:上海知临信息公司适用职位:Android开发笔试来源:学生群收集,就业服务部整理1. SharedPreferences 本质是什么?以什么形式存在于APP中?SharedPreferences 是android.content.SharedPreferences 包内的一类,它主要是用来共享程序数据的。

SharedPreferences是以键值对(key-value )的方式来存储数据,它可以存储booleans, floats, ints, longs, and strings 这些基本的数据类型。

SharedPreferences存储的数据是持久性的,一旦通过其存储数据,数据就一直保留着,即便是你的APP完全停止运行,从内存中完全退出,这些数据也会被保留下来,下一次你再进入APP时,从SharedPreferences中,你仍然可以读出上一次写入的数据。

从这个角度来讲,SharedPreferences存储数据的方式和xml文件类似。

但是,如果把APP卸载了,下次安装时,SharedPreferences中的数据会被清除,这点和xml文件是不一样的。

获取SharedPreferences对象的方法有两种:getSharedPrefere nces()这种方法用于APP中有多个SharedPreferences文件,通过名字来获取SharedPreferences 对象;get Pref ere nces()这种方法用于Activity中只有一个SharedPreferences文件时,因为只有一个,所以就不必提供名字。

实际应用时,第一种方法用的会更多。

向SharedPreferences 中写数据:通过edit()方法获取SharedPreferences.Editor 对象;调用putXXXO方法,放值,(XXX为基本数据类型);调用commitO方法提交放入的值。

Android笔试题集锦

Android笔试题集锦

Android笔试题集锦1、A ndroid的四大组件是哪些,它们的作用?答:Activity:Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它需要为保持各界面的状态,做很多持久化的事情,妥善管理生命周期以及一些跳转逻辑service:后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的食物,定义好需要接受的Intent提供同步和异步的接口Content Provider:是Android提供的第三方应用数据的访问方案,可以派生Content Provider类,对外提供数据,可以像数据库一样进行选择排序,屏蔽内部数据的存储细节,向外提供统一的借口模型,大大简化上层应用,对数据的整合提供了更方便的途径BroadCast Receiver:接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型2、请介绍下Android中常用的五种布局。

常用五种布局方式,分别是:FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。

一、FrameLayout:所有东西依次都放在左上角,会重叠,这个布局比较简单,也只能放一点比较简单的东西。

二、LinearLayout:线性布局,每一个LinearLayout里面又可分为垂直布局(android:orientation="vertical")和水平布局(android:orientation="horizontal" )。

当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。

三、AbsoluteLayout:绝对布局用X,Y坐标来指定元素的位置,这种布局方式也比较简单,但是在屏幕旋转时,往往会出问题,而且多个元素的时候,计算比较麻烦。

android测试题及答案

android测试题及答案

android测试题及答案一、单选题(每题2分,共20分)1. Android操作系统基于哪个内核?A. Linux内核B. Windows内核C. MacOS内核D. FreeBSD内核答案:A2. Android应用开发主要使用哪种编程语言?A. JavaB. C++C. PythonD. Ruby答案:A3. 下列哪个不是Android开发中常用的布局?A. LinearLayoutB. RelativeLayoutC. GridLayoutD. FlowLayout答案:D4. Android中用于处理网络请求的类是?A. IntentB. AsyncTaskC. HttpUrlConnectionD. BroadcastReceiver答案:C5. 在Android开发中,Activity的生命周期中,哪个方法用于配置更改时保存当前状态?A. onCreate()B. onSaveInstanceState()C. onStart()D. onDestroy()答案:B6. Android开发中,用于定义资源的XML文件扩展名是什么?A. .javaB. .xmlC. .resD. .layout答案:B7. 下列哪个不是Android开发中常用的数据存储方式?A. Shared PreferencesB. SQLite DatabaseC. File SystemD. HTTP Server答案:D8. 在Android中,哪个服务是用于后台执行任务,并且可以在系统需要时被系统终止?A. IntentServiceB. JobIntentServiceC. ServiceD. BroadcastReceiver答案:C9. Android开发中,用于实现界面间数据传递的组件是?A. IntentB. BundleC. ParcelableD. Serializable答案:A10. 在Android开发中,下列哪个不是Fragment生命周期的方法?A. onAttach()B. onCreateView()C. onDetach()D. onDestroy()答案:D二、多选题(每题3分,少选、多选、错选均不得分,共15分)1. Android开发中,哪些组件可以用于接收系统广播?A. ActivityB. ServiceC. BroadcastReceiverD. ContentProvider答案:A, B, C2. 在Android开发中,哪些是布局优化的常见方法?A. 使用ViewStubB. 使用merge标签C. 使用include标签D. 增加布局层级答案:A, B, C3. Android开发中,哪些是常用的数据绑定框架?A. Data BindingB. LiveDataC. ViewModelD. MVP答案:A, B, C三、判断题(每题1分,共10分)1. Android Studio是官方推荐的Android开发IDE。

Android面试笔试题集.doc

Android面试笔试题集.doc

Java知识点包括:接口与抽象的使用及区别,多线程,socket基础,集合类,也有个别公司考察定义,很无语.C/C++知识点包括:指针的移动,排序算法,链表,有时还会有二叉树的遍历或图的遍历.1.Android手机操作系统的四层架构?Applications ApplicationFramework Android RunTime Libraries Liunx Kernel架构框架以此从上到下:1. Applications (应用程序(应用层))Android会同一系列核心应用程序包一起发布,该应用程序包包括email 客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等.所有的应用程序都是使用JAVA语言编写的.2.Application FrameWork (应用程序扩展层(框架))由于Android的手机操作系统是,基于Liunx 2.6系统之上封装而成.所以开发人员可也以直接访问核心程序所使用的API框架,该核心应用程序的API框架设计简化了组件的重用,任何一个核心应用程序(模块)都暴露出它的功能作用,并且其他应用程序也都可以使用该核心应用程序(模块)的功能(不过的遵守该核心应用程序框架的安全性限制).同样,该应用程序的重用机制也使用户方便使用应程序的相关组件.API框架隐藏的核心应用程序是一系列的应用程序的服务和系统应用,其中包括如下:(Android手机中的View是最基本的一个UI类)丰富而又可扩展的视图(手机界面所显示的组件(Activity上所显示的))组件,可以用来构建应用程序如:(视图)Views,网格(grids),文本框(text boxes),按钮(button),放置图片区(imageview),文本编辑区(edittext),文本显示区(textview ),3.Android RunTime Libraries (Android 系统运行库);4.Liunx Kernel (Android系统最底层核心系统Liunx)2.Android dvm的进程和Linux的进程,应用程序的进程是否为同一个概念?DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM 都是在Linux 中的一个进程,所以说可以认为是同一个概念.3.SIM卡的EF文件有何作用?SIM卡的文件系统有自己规范,主要是为了和手机通讯,SIM卡本身可以有自己的操作系统,EF就是作存储并和手机通讯用的.4.一条最长的短信息约占多少byte?中文70(包括标点),英文160,160个字节.5.Android中的动画有哪几类,它们的特点和区别是什么?两种.一种是Tween动画.还有一种是Frame动画.Tween动画,这种实现方式可以使视图组件移动.放大.缩小以及产生透明度的变化;另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影.6.什么是嵌入式实时操作系统,Android操作系统属于实时操作系统吗?嵌入式实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统.主要用于工业控制,军事设备,航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统.又可分为软实时和硬实时两种,而Android是基于linux内核的,因此属于软实时.7.Handler机制的原理?Andriod提供了Handler和Looper来满足线程间的通Handler先进先出原则.Looper类用来管理特定线程内对象之间的消息交换(Message Exchange).1)Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的Message Queue(消息队列).2)Handler:你可以构造Handler对象来与Looper沟通,以便push新消息到Message Queue里;或者接收Looper从Message Queue取出) 所送来的消息.3)Message Queue(消息队列):用来存放线程放入的消息.4)线程:UI thread通常就是main thread,而Android启动程序时会替它建立一个Message Queue.&嵌入式操作系统内存管理有哪几种,各有何特性?页式,段式,段页, 用到了MMU,虚拟空间等技术9.说说mvc模式的原理,它在android中的运用MVC(Model_view_contraller)^^模型—视图—控制器MVC 应用程序总是由这三个部分组成.Event(事件)导致Controller改变Model或View,或者同时改变两者.只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新.类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己.10.Activity的生命周期,两个Activity之间跳转时必然会执行的是那几个方法?onCreate() //在activity生命周期开始时被调用.onRestoreInstanceState() //onCreate 完成后被调用,用来恢复UI 状态.onRestart() //当activity从停止状态重新启动时调用.onStart() //当activity对用户即将可见的时候调用.onResume() //当activity与用户交互的时候,重绘屏幕.onSaveInstanceState() //activity即将移出栈顶保留UI状态时调用此方法.onPause()//当系统要启动一个其他的activity时调用(其他的activity 显示之前,这个方法被用来提交那些持久数据的改变.停止动画.和其他占用CPU资源的东西.由于下一个activity在这个方法返回之前不会resumed,所以实现这个方法时代码执行要尽可能快.onStop() //用户不再可见时调用onDestroy 〃在activity被销毁前所调用的最后一个方法,当进程终止时会出现这种情况1.完整生命周期:即一个activity从出现到消失,对应的周期方法是从onCreate 到o nDestroy2.可见生命周期:从onStart(倒onStop()方法,在这个周期中,用户可以看见Activity,但不一定能够与之交互,这两个方法可以随着状态的变化被执行多次.3.前景生命周期:从onResume()到onPause()方法,在这个周期中,Activity处在其它Activity之前,即在Activity栈的最顶端,负责与用户进行交互,伴随着状态的变化,这两个方法可以被执行多次11.两个Activity之间跳转时必然会执行的是哪几个方法.1.启动一个Activity启动一个新的Activity需调用StartActivity(Intent )函数.参数Intent 一个Intent 对象,若要在两个Activity之间进行跳转我们还得借助Intent类中另的外一个函数.public Intent setClass(Context packageContext,Class<?>cls )其返回值为一个Intent对象(即你要跳转到得Activity的Intent对象)2.从一个Activity获取另外一个Activity中的数据结果例如:你在某个app中点击了按键跳转到了另外一个Activity(此处我暂称为子Activity)中,在此Activity中你让用户选择联系人列表中的联系人,而在此Activity结束后需要在上层Activity(此处我暂称为父Activity)中需显示子Activity中返回的联系人名字.要想做到上述功能,我们需做一下三件事(a)在父Activity 中调用Start Activity F orResult(Intent ,int );(b)在父Activity 中实现OnActivityResult(int requestCode, int resultCode, Intent Date)参数分析:requestCode:此参数传个Start Activity F orResult 为了确定是谁请求的.resultCode:此参数是SetReuslt(Intent Date)的返回值为Intent 对象.Date :Intent对象返回给调用者.(c)在子Activity快要退出时调用SetReuslt(Intent Date)函数用于回调<style 父Activity 中的OnActivityResult(int requestCode, int resultCode, Intent Date)函数.12. 横竖屏切换时候Activity 的生命周期.1. 不设置Activity 的android:configChanges 时,切屏会重新调用 各个生命周期,切横屏时会执行一次,切竖屏时会执行两次2. 设置 Activity 的 android:configChanges=''orientation "时,切屏 还是会重新调用各个生命周期,切横.竖屏时只会执行一次3 设 置 Activity 的 android: configChanges='' orientation |key boardHidden''时,切 屏不会 重新调用各个生命周期,只会执行onConfigurationChanged 方法 13. 如何将一个Activity 设置成窗口的样式.1.在你的styles.xml 文件中可以新建一如下的style:name=" Theme.FloatActivity"parent= " android: style/Theme.Dialog " ><!- float_box 为我们定义的窗口背景,这个不是必须的<itemname=" android: windowBackground ">@ drawable/float_box</item></style>如果窗口要添加窗口背景,可以在drawable中新建一个叫float_box.xml的文件,内容可以如下(自定义):<?xml version="1.0" encoding="utf-8''?><shapexmlns:android= "/apk/res/android " ><solid android:color=' '#ffffff'' /><stroke android:width="3dp" color="#000000" /><corners android:radius='' 3dp'' /><padding android :left="10dp" android:top="10dp" android: right= " 1 Odp " android :bottom= " 1 Odp " /></shape>2.在AndroidManifest.xml中在你需要显示为窗口的activity中添加如果属性:android :theme= "@ style/Theme.FloatActivity "即可如果说您觉得新建style.xml及float_box.xnil文件的方式麻烦或者只想Test—下,那么可以直接添加您对应需要展示为Dialog style的Activity 的android: theme 属性值为android :theme='' @ android: sty le/Theme.Dialog''.14.如何退出Activity?如何安全退出已调用多个Activity的Application?对于单一Activity的应用来说,退出很简单,直接finish()即可.当然,也可以用killProcess()和System.exit()方法.15.如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?onSaveInstanceState()当你的程序中某一个Activity A在运行时,主动或被动地运行另一个新的Activity B,这个时候A会执行onSaveInstaiiceState().B完成以后又会来找A,这个时候就有两种情况:一是A被回收,二是A没有被回收,被回收的A 就要重新调用onCreate()方法,不同于直接启动的是这回onCreate()里是带上了参数savedlnstanceState ;而没被收回的就直接执行onResume(),跳过onCreate()T.16.两个Activity之间怎么传递数据?邮递员Intent17.怎么让在启动一个Activity 是就启动一个service?IntentService18.同一个程序,但不同的Activity是否可以放在不同的Task任务栈中?task就好像是能包含很多activity的栈.默认情况下,一个activity启动另外一个activity时,两个activity是放在同一个task栈中的,第二个activity压入第一个activity所在的task栈.当用户按下返回键时,第二个activity从栈中弹出,第一个activity又在当前屏幕显示.这样,从用户角度来看,这两个activity就好像是属于同一个应用程序的,即使第二个activity是属于另外一个应用程序的.当然,这是指默认情况下.task栈包含的是activity的对象.如果一个activity有多个实例在运行,那么栈中保存的是每个实例的实体.栈中的activity不会重新排列,只有弹出和压入操作.一个task中的所有activity都以整体的形式移动.整个task可以被移到前台或后台.打个比方,当前的task 包含4个activity-当前activity下面有3个activity.当用户按下HOME键返回到程序启动器(application launcher)后,选择了一个新的应用程序(事实上是一个新的task),当前的task就被转移到后台,新的task中的根activity将被显示在屏幕上.过了一段时间,用户按返回键回到了程序启动器界面,选择了之前运行的程序(之前的task). 那个task,仍然包含着4个activity.当用户再次按下返回键时,屏幕不会显示之前留下的那个activity (之前的task的根activity),而显示当前activity从task栈中移出后栈顶的那个activity.刚刚描述的行为是默认的activity和task的行为.有很多方法能够改变这种行为.activity和task之间的联系,以及task中的activity的行为可以通过intent中的标记以及在manifest中的〈activity>元素的属性控制. 其中,主要的Intent标记有:FLAG_ACTIVITY_NEW_TASKFLAG ACTIVITY CLEAR TOPFLAG_ACTIVITY_RESET_TASK_IF_NEEDEDFLAG_ACTIVITY_SINGLE_TOP主要的<activity>属性有:taskAffinity launchModeallowT askReparentingclearT askOnLaunch alwaysRetainT askStatefinishOnT askLaunch默认情况下,一个应用程序中的所有activity都有一个affinity-这让它们属性同一个task.然而,每个activity可以通过<玄“2呵>中的taskAffinity属性设置单独的affinity.不同应用程序中的activity可以共享同一个affinity,同一个应用程序中的不同activity也可以设置成不同的affinity.affinity属性决定了:启动activity的Intent对象需包含FLAG_ACTIVITY_NEW_TASK 标记‘activity 的allowTaskReparenting 被认为是设置成true.FLAG_ACTIVITY_NEW_TASK 标记当传递给startActivity()的Intent对象包含FLAG_ACTIVITY_NEW_TASK标记时,系统会为需要启动的activity 寻找与当前activity不同的task.如果要启动的activity的affinity属性与当前所有的task的affinity属性都不相同,系统会新建一个带那个affinity属性的task,并将要启动的activity压到新建的task栈中;否则将activity压入那个affinity属性相同的栈中.allowTaskReparenting 属性如果一个activity的allowTaskReparenting属性为true,那么它可以从一个task(TASKl)移到另外一个有相同affinity的task(TASK2) 中(TASK2带到前台时).如果一个.apk文件从用户角度来看包含了多个“应用程序”,你可能需要对那些activity赋不同的affinity值.运行模式activity的launchMode属性可以有四种值:“standard"(默认)"singleTop" “singleTask” u singlelnstance u19.什么是Service以及描述下它的生命周期.Android Service是运行在后台的代码,不能与用户交互,可以运行在自己的进程,也可以运行在其他应用程序进程的上下文里.需要通过某一个Activity 或者其他Context 对象来调用,Context.startService() 和Context.bindService().如果在Service执行耗时的操作需要启动一个新线程来执行.Android Service 只继承了onCreate(),onStart(),onDestroy()三个方法,当我们第一次启动Service时,先后调用了onCreate(),onStart() 这两个方法,当停止Service时,则执行onDestroy()方法,这里需要注意的是,如果Service已经启动了,当我们再次启Service时,不会在执行onCreate()方法,而是直接执行onStart()方法.启动一个Service 的过程如下:context.startService() |->onCreate()->onStart()->Servicerunning 其中onCreate()可以进行一些服务的初始化工作,onStart()则启动服务.停止一个Service 的过程如下:context.stopService()|->onDestroy() ->Service stop20.什么是IntentService?有何优点?优点:Acitivity的进程,当处理Intent的时候,会产生一个对应的ServiceAndroid的进程处理器现在会尽可能的不kill掉你.非常容易使用日历中IntentService的应用21.请描述一下Intent 和Intent Filter.Intent在Android中被翻译为“意图",熟语来讲就是目的,他们是三种应用程序基本组件一activity,service和broadcast receiver之间互相激活的手段.在调用Intent名称时使用ComponentName也就是类的全名时为显示调用.例:setComponent("org.rickystudio.intentActivity ") setClass("org.rickystudio.intent Activity ")setClassName("org.rickystudio.intentActivity")这种方式一般用于应用程序的内部调用,因为你不一定会知道别人写的类的全名.那我们怎么调用呢?有显就有隐嘛.我们来看看隐式Intent怎么用?首先我们先配置我们的Activity 的Intent Filter <intent-filter> <action android:name="com.example.project.SHOW_CURRENT" /></intent-filter>这样在调用的时候指定Intent的action,系统就是自动的去对比是哪个intent-filter符合我们的Activity,找到后就会启动Activity.一个intent filter是IntentFilter类的实例,但是它一般不出现在代码中,而是出现在android Manifest文件中,以<intent-filter>的形式.(有一个例外是broadcast receiver 的intent filter 是使用Context.registerReceiver()来动态设定的,其intent filter 也是在代码中创建的.)一个filter 有action, data, category 等字段.一个隐式intent 为了能被某个intent filter接受,必须通过3个测试.一个intent为了被某个组件接受,则必须通过它所有的intent filter中的一个.22.1ntent传递数据时,可以传递哪些类型数据?Intent传递方式和参数类型:1.Extra:String[].Parcelable.long.boolean.double.CharSequence[].Par celable[].char.int[].int.double[].float.short.long[].boolean[].short[].Str ing.Serializable.float[].Bundle.byte[].byte.CharSequence.char[].2.Data: URI23.请描述一下Broadcast Receiver.Broadcast Receiver用来接收并处理广播.可以接收系统的广播例如:电量不足.来电来信等.程序也可以播放广播.Broadcast Receiver 可以通过多种方式通知用户:启动activity.使用NotificationManager. 开启背景灯.振动设备.播放声音等,最典型的是在状态栏显示一个图标,这样用户就可以点它打开看通知内容.通常我们的某个应用或系统本身在某些事件(电池电量不足. 来电来短信)来临时会广播一个Intent出去,我们可以利用注册一个Broadcast Receiver来监听到这些Intent并获取Intent中的数据.24.在manifest和代码中如何注册和使用BroadcastReceiver.<receiver android:name=" .xxReceiver"><intent-filter><actionandroid:name="android.provider.Telephony.SMS_RECEIVED "/></intent-filter> </receiver>25.请介绍下Android的数据存储方式.在Android中的数据存储方式有以下五种:1 .SharedPreferences:用来存储"key-value paires"格式的数据,它是一个轻量级的键值存储机制,只可以存储基本数据类型.2.文件存储:通过FilelnputStream 和FileOutputStream 对文件进行操作.在Android中,文件是一个应用程序私有的,一个应用无法读写其他应用程序的文件.3.SQLite数据库存储:Android提供的一个标准数据库,支持SQL 语句.4.网络:通过网络来存储和获得数据.5.ContentProvider:是所有应用程序之间数据存储和检索的一个桥梁,它的作用就是使得各个应用程序之间实现数据共享.它是一个特殊的存储数据的类型,它提供了一套标准的接口用来获取数据.操作数据.系统也提供了音频.视频.图像和个人信息等几个常用的Content Providers.如果你想公开自己的私有数据,可以创建自己的Content Provider类,或者当你对这些数据拥有控制.写入的权限时讲这些数据添加到Content Provider中实现共享.外部访问通过ContentResolver 去访问并操作这些被暴露的数据.组织数据主要包括:存储数据,读取数据,以数据库的方式暴露数据.数据的存储需要根据设计的需求,选择合适的存储结构,首选数据库,当然也可以选择本地其他文件,甚至可以是网络上的数据.数据的读取,以数据库的方式暴露数据这就要求, 无论数据是如何存储的,数据最后必须以数据的方式访问.26.请介绍下Android中常用的五种布局.最常用的布局方式为LinearLayout.RelativeLayout.F rameLay out.TableLayout AbsoluteL 町out.其中LinearLayout 和RelativeL町out 是最常用的方式,他们可以通过在xml配置文件或者代码中进行布局.1.FrameLayout最简单的布局方式,放置的控件都只能罗列到左上角,控件会有重叠,不能进行复杂的布局.2.LinearLayou可以通过orientation属性设置线性排列的方向是垂直(vertical)®是纵向(horizontal).每行或每列只有一个元素,可以进行复杂的布局.3.AbsoluteLayout可以让子元素指定准确的x/y坐标值,并显示在屏幕上.AbsoluteLayout没有页边框,允许元素之间互相重叠(尽管不推荐).他是绝对坐标,所以在实际中不提倡使用.4.RelativeLayout允许子元素指定他们相对于其它元素或父元素的位置(通过ID指定).因此,你可以以右对齐,或上下,或置于屏幕中央的形式来排列两个元素.元素按顺序排列,因此如果第一个元素在屏幕的中央,那么相对于这个元素的其它元素将以屏幕中央的相对位置来排列.这个是相对于AbsoluteLayout的,采用的相对坐标,所以在实际中比较常用.5.TableLayout将子元素的位置分配到行或列中.一个TableL町out 由许多的TableRow组成,每个TableRow都会定义一个row .TableL町out容器不会显示row .column或cell的边框线.每个row拥有0个或多个的cell ;和html中的table差不多.在实际中也经常使用.有的时候我们也会用到GridView,就像我们手机屏幕上摆放的各个图标应该就是用GridView排版的.Padding 是文字相对于边框,而Margin 是边框相对于父窗体.LinearLayout TableLayout FrameLayout AbsoluteLayoutRelativeLayout27.如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?在”暂停onPause”状态将数据保存.2&如何判断是否有SD卡?在程序中访问SDCard,你需要申请访问SDCard的权限.在AndroidManifest.xml中加入访问SDCard的权限如下:<!-在SDCard中创建与删除文件权限-><uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILE SYSTEMS"/〉<!-往SDCard写入数据权限-><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STOR AGE'7>Environment.getExternalStorageState().equals(Environment.MEDIA .MOUNTED)Environment.getExternalStorageState()方法用于获取SDCard 的状态,如果手机装有SDCard,并且可以进行读写,那么方法返回的状态等于Environment.MEDIA_MOUNTED.29.什么是嵌入式实时操作系统,Android操作系统属于实时操作系统吗?嵌入式实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统.主要用于工业控制,军事设备,航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统.又可分为软实时和硬实时两种,而Android是基于linux内核的,因此属于软实时.30.Linux中跨进程通信的几种方式.1.管道(pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用.进程的亲缘关系通常是指父子进程关系.2.有名管道(named pipe):有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信.3.信号量(semophore ):信号量是一个计数器,可以用来控制多个进程对共享资源的访问.它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源.因此,主要作为进程间以及同一进程内不同线程之间的同步手段.4.消息队列(message queue ):消息队列是由消息的链表,存放在内核中并由消息队列标识符标识.消息队列克服了信号传递信息少.管道只能承载无格式字节流以及缓冲区大小受限等缺点.5.信号(sinal):信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生.6.共享内存(shared memory ):共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问.共享内存是最快的IPC方式,它是针对其他进程间通信方式运行效率低而专门设计的.它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信.7.套接字(socket):套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信.31.谈谈对Android NDK的理解.NDK 全称:Native Development Kit2.误解误解一:NDK发布之ttf, Android不支持进行C开发在Google中搜索“NDK”,很多“Android终于可以使用C++ 开发”之类的标题,这是一种对Android平台编程方式的误解.其实,Android平台从诞生起,就已经支持C . C++开发.众所周知, Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言.但这并不等同于“第三方应用只能使用Java”.在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C动态库,即在Android平台上,“Java+C”的编程方式是一直都可以实现的.当然这种误解的产生是有根源的:在Android SDK文档里,找不到任何JNI方面的帮助.即使第三方应用开发者使用JNI完成了自己的C动态链接库(so )开发,但是so如何和应用程序一起打包成apk并发布?这里面也存在技术障碍.我曾经花了不少时间,安装交叉编译器创建so,并通过asset (资源)方式,实现捆绑so发布.但这种方式只能属于取巧的方式,并非官方支持.所以,在NDK出来之前,我们将“Java+C”的开发模式称之为灰色模式,即官方既不声明“支持这种方式”,也不声明“不支持这种方式”.误解二:有了NDK,我们可以使用纯C开发Android应用Android SDK 采用Java语言发布,把众多的C开发人员排除在第三方应用开发外(注意:我们所有讨论都是基于“第三方应用开发”,Android系统基于Linux,系统级别的开发肯定是支持C语言的.).NDK的发布,许多人会误以为,类似于Symbian . WM,在Android平台上终于可以使用纯C . C++开发第三方应用了!其实不然,NDK文档明确说明:it is not a good way .因为NDK 并没有提供各种系统事件处理支持,也没有提供应用程序生命周期维护.此外,在本次发布的NDK中,应用程序UI方面的API也没有提供.至少目前来说,使用纯C.C++开发一个完整应用的条件还不完备.1.NDK是一系列工具的集合.NDK提供了一系列的工具,帮助开发者快速开发C (或C++ )的动态库,并能自动将so和java应用一起打包成apk .这些工具对开发者的帮助是巨大的.NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU .平台. ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”.“编译特性要求”等),就可以创建出NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作.2.NDK提供了一份稳定.功能有限的API头文件声明.Google明确声明该API是稳定的,在后续所有版本中都稳定支持当前发布的API .从该版本的NDK中看出,这些API支持的功能非常有限,包含有:C标准库(libc ).标准数学库(libm ).压缩库(libz ). Log 库(liblog ).3.NDK带来什么1.NDK的发布,使“Java+C”的开发方式终于转正,成为官方支持的开发方式.使用NDK,我们可以将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率.使用NDK,我们可以将需要保密的应用逻辑使用C开发.毕竟,Java 包都是可以反编译的.NDK促使专业so组件商的出现.(乐观猜想,要视乎Android用户的数量)2.NDK将是Android平台支持C开发的开端.NDK提供了的开发工具集合,使开发人员可以便捷地开发.发布C组件.同时, Google承诺在NDK后续版本中提高“可调式”能力,即提供远程的gdb工具,使我们可以便捷地调试C源码.在支持Android平台C开发,我们能感觉到Google花费了很大精力,我们有理由憧憬“C组件支持”只是Google Android平台上C开发的开端.毕竟, C程序员仍然是码农阵营中的绝对主力,将这部分人排除在Android 应用开发之外,显然是不利于Android平台繁荣昌盛的.32.谈谈Android的优点和不足之处.Android平台手机5大优势:%1.开放性在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来.显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,随大的受益正是丰富的软件资源.开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机.%1.挣脱运营商的束缚在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制.从去年iPhone上市,用户可以更加方便地连接网络,运营商的制约减少.随着EDGE.HSDPA。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Android笔试题
一.选择题(30题,每个15分,共45分)
1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不
同的角度对其进行分类,按功能分为:(C),如果为读取的内容进行后台处理后在输出,需要使用下列哪种流?(A)
A、输入流和输出流
B、字节流和字符流
C、节点流和处理流
D、File stream
E、Pipe stream
F、Random stream
G、Filter stream
2.下列代码的执行结果是:(B)
public class Test3{
public static void main(String args[]){
System.out.print(100%3);
System.out.print(“,”);
System.out.print(100%3.0);
}
}
A、.1 , 1
B、1 , 1.0
C、1.0 ,1
D、1.0 ,1.0
3、在继承中,关于构造方法的说明,下列说法错误的是(D)
A、子类无条件的继承父类中的无参构造方法
B、子类可以引用父类中的有参构造方法,使用super关键字
C、如果子类没有构造方法,则父类无参构造方法作为自己的构造方法
D、如果子类有无参的构造方法,而父类的无参构造方法则被覆盖
4、以下的程序的运行结果为(D)
Public class IfTest{
Public static void main(String args[]){
int x=3;
int y=1;
if(x==y)
System.out.println(“Not equal”);
Else
System.out.println(“Equal”);
}
}
A、Not equal
B、Equal
C、无输出
D、编译错误
5、Java语言中字符串“学java”所占的内存空间是(C)
A、6个字节
B、7个字节
C、10个字节
D、11个字节
6、关于下列程序段的输出结果,说法正确的是(A)public class MyClass{
static int i;
public static void main(String args[]){
System.out.println(i);
}
}
A、有错误,变量i没有初始化
B、Null
C、 1
D、0
7、下列那些语句关于内存回收的说明是正确的(B)
A、程序员必须穿件一个内存来释放内存
B、内存回收程序负责释放无用内存
C、内存回收程序允许程序员直接释放内存
D、内存回收程序可以在指定的时间释放内存对象
8、下面异常是属于Runtime Exception的是(B C)?(多选)
A、ArithmeticException
B、IllegalArgumentException
C、NullPointerException
D、BufferUnderflowException
9、Math.round(11.5)等于多少?Math.round(-11.5)等于多少(C)
A、11,-11
B、11,-12
C、12,-11
D、12,-12
10、下列程序段输出的结果是:(B)
V oid complicatedexpression_r(){
int x=20,y=30;
boolean b;
b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60; System.out.println(b)
}
A、true
B、false
C、 1
D、0
11、activity对一些资源以及状态的操作保存,最好是保存在生命周
期的哪个函数中进行(D)
A、onPause()
B、onCreate()
C、onResume()
D、onStart()
12、Intent传递数据时,下列数据类型哪些可以被传递(A D)(多选)
A、Serializable
B、charsequence
C、Parcelable
D、Bundle
13、android中下列属于Intent的作用的是(C)
A、实现应用程序间的数据共享
B、是一段长的声明周期,没有用户界面的程序,可以保持应用在后再运行,而不会因为切换页面而消失
C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带
D、处理一个应用程序的整体性工作
14、下列属于SAX解析Xml文件的优点的是()
A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能
B、不用事先调入整个文档,占用资源少。

相关文档
最新文档