android笔试题及答案_第1页
android笔试题及答案_第2页
android笔试题及答案_第3页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、android笔试题及答案【篇一:android面试题带答案】1. >1.math.round(11.5)等于多少().math.round(-11.5)等于多少(c)a、?11,-11b、11,-12c、12,-11d、12,-122下列程序段的输出结果是:(b)voidcomplicatedexpression_r()intx=20,y=30;booleanb;b=x50y60|x50y-60|x-50y60|x-50y-60;system.out.println(b);a、trueb、falsec、1d、011.activityandroid中下列属于intent的作用的是(c)a

2、、实现应用程序间的数据共享b、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失c、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带d、处理一个应用程序整体性的工作失4在android中使用menu时可能需要重写的方法有(ac)。(多选)a、oncreateoptionsmenu()b、oncreatemenu()c、onoptionsitemselected()d、onitemselected()5在android中使用sqliteopenhelper这个辅助类时,可以生成一个数据库,并可以对数据扁版茶进行管理的方法可以是(ab)a、ge

3、twriteabledatabase()b、getreadabledatabase()c、getdatabase()d、getabledatabase()6.android关于service生命周期的oncreate()和onstart()说法正确的是(ad)(多选题)a、当第一次启动的时候先后调用oncreate()和onstart()方法b、当第一次启动的时候只会调用oncreate()方法c、如果service已经启动,将先后调用oncreate()和onstart()方法d、如果service已经启动,只会执行onstart()方法,不在执行oncreate()方法7我们都知道hanl

4、der是线程与activity通信的桥梁如果线程处理不当,你的机器就会变得越慢,那么线程销毁的方法是(a)a、ondestroy()b、onclear()c、onfinish()d、onstop()8关于res/raw目录说法正确的是(a)a、这里的文件是原封不动的存储到设备上不会转换为二进制的格式b、这里的文件是原封不动的存储到设备上会转换为二进制的格式c、这里的文件最终以二进制的格式存储到指定的包中d、这里的文件最终不会以二进制的格式存储到指定的包中填空题android中常用的四个布局是。2. android的四大组件是android中service的实现方法(两种)是和bindservi

5、ce。3. android的数据存储的方式,文件,网络。当启动一个activity并且新的activity执行完后需要返回到启动它的activity来执行的回调函数是4. 请描述下activity的生命周期。必调用的三个方法:oncreate()-onstart()-onresume(),用aaa表示父activity启动子activity,子actvity退出,父activity调用顺序如下aaa-onfreeze()-onpause()-onstop()-onrestart()-onstart(),onresume()亩户点击home,actvity调用顺序如下aaa-onfreeze()

6、-onpause()-onstop()-maybe-ondestroy()maybe调用finish(),activity调用顺序如下aaa-onpause()-onstop()-ondestroy()在activity上显示dialog,activity调用顺序如下aaa在父activity上显示透明的或非全屏的activity,activity调用顺序如下aaa-onfreeze()-onpause()5. 设备进入睡眠状态,activity调用顺序如下aaa-onfreeze()-onpause()请介绍下android的数据存储方式。6. 一.sharedpreferences方式文件

7、存储方式sqlite数据库方式内容提供器(contentprovider)方式网络存储方式请介绍下contentprovider是如何实现数据共享的。创建一个属于你自己的contentprovider或者将你的数据添加到一个已经存在的contentprovider中,前提是有相同数据类型并且有写入contentprovider的权限。7. 如何启用service,如何停用service。android中的service类似于windows中的service,service一般没有用户操作界面,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类的程序。一。步骤第一步:继承service类p

8、ublicclasssmsserviceextendsservice第二步:在androidmanifest.xml文件中的application节点里对服务进行配置:serviceandroid:name=.demoservice/二。context.startservice()和context.bindservice服务不能自己运行,需要通过调用context.startservice()或context.bindservice()方法启动服务。这两个方法都可以启动service,但是它们的使用场合有所不同。1. 使用startservice()方法启用服务,调用者与服务之间没有关连,即使

9、调用者退出了,服务仍然运行。使用bindservice()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止。采用context.startservice()方法启动服务,在服务未被创建时,系统会先调用服务的oncreate()方法,接着调用onstart()方法。如果调用startservice()方法前服务已经被创建,多次调用startservice()方法并不会导致多次创建服务,但会导致多次调用onstart()方法。采用startservice()方法启动的服务,只能调用context.stopservice()方法结束服务,服务结束时会调用ondestroy()方法

10、。【篇二:华为android面试题及答案】用程序的进程是否为同一个概念dvm指dalivk的虚拟机。每一个android应用程序都在它自己的进程中运行,都拥有一个独立的dalvik虚拟机实例。而每一个dvm都是在linux中的一个进程,所以说可以认为是同一个概念。2、sim卡的ef文件有何作用sim卡的文件系统有自己规范,主要是为了和手机通讯,sim本身可以有自己的操作系统,ef就是作存储并和手机通讯用的3、嵌入式操作系统内存管理有哪几种,各有何特性页式,段式,段页,用到了mmu,虚拟空间等技术4、什么是嵌入式实时操作系统,android操作系统属于实时操作系统口?嵌入式实时操作系统是指当外界

11、事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。主要用于工业控制、军事设备、航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。又可分为软实时和硬实时两种,而android是基于linux内核的,因此属于软实时。5、一条最长的短信息约占多少byte?中文70(包括标点),英文160,160个字节。6、android中的动画有哪几类,它们的特点和区别是什么?两种,一种是tween动画、还有一种是frame动画。tween动画,这种实现方式可以使视图组件移动、放

12、大、缩小以及产生透明度的变化;另一种frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。7、handler机制的原理andriod提供了handler和looper来满足线程间的通信。handler先进先出原则。looper类用来管理特定线程内对象之间的消息交换(messageexchange)。1)looper:一个线程可以产生一个looper对象,由它来管理此线程里的messagequeue(消息队歹U)。2)handler:你可以构造handler对象来与looper沟通,以便push新消息至Vmessagequeue里;或者接收looper从messageque

13、ue取出)所送来的消息。3)messagequeue(消息队列):用来存放线程放入的消息。4)线程:uithread通常就是mainthread,而android启动程序时会替它建立一个messagequeue。8、说说mvc模式的原理,它在android中的运用android的官方建议应用程序的开发采用mvc模式。何谓mvc?mvc是model,view,controller的缩写,mvc包含三个部分:l模型(model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。l视图(view)对象:是应用程序中负责生成用户界面的部分。也是在整个mvc架构中用户唯一可以看到的一层,接收用户

14、的输入,显示处理结果。l控制器(control)对象:是根据用户的输入,控制用户界面数据显示及更新model对象状态的部分,控制器更重要的一种导航功能,想用用户出发的相关事件,交给m哦得了处理。android鼓励弱耦台和组件的重用,在android中mvc的具体体现如下:1)视图层(view):一般采用xml文件进行界面的描述,使用的时候可以非常方便的引入,当然,如何你对android了解的比较的多了话,就一定可以想到在android中也可以使用javascript+html等的方式作为view层,当然这里需要进行java和javascript之间的通信,幸运的是,android提供了它们之间

15、非常方便的通信实现。2)控制层(controller):android的控制层的重任通常落在了众多的acitvity的肩上,这句话也就暗含了不要在acitivity中写代码,要通过activity交割model业务逻辑层处理,这样做的另外一个原因是android中的acitivity的响应时间是5s,如果耗时的操作放在这里,程序就很容易被回收掉。3) 模型层(model):对数据库的操作、对网络等的操作都应该在model里面处理,当然对业务计算等操作也是必须放在的该层的。9、activity的生命周期和其他手机平台的应用程序一样,android的应用程序的生命周期是被统一掌控的,也就是说我们写

16、的应用程序命运掌握在别人(系统)的手里,我们不能改变它,只能学习并适应它。简单地说一下为什么是这样:我们手机在运行一个应用程序的时候,有可能打进来电话发进来短信,或者没有电了,这时候程序都会被中断,优先去服务电话的基本功能,另外系统也不允许你占用太多资源,至少要保证电话功能吧,所以资源不足的时候也就有可能被干掉。言归正传,activity的基本生命周期如下代码所示:java代码publicclassmyactivityextendsactivityprotectedvoidoncreate(bundlesavedinstancestate);protectedvoidonstart();pro

17、tectedvoidonresume();protectedvoidonpause();protectedvoidonstop();protectedvoidondestroy();publicclassmyactivityextendsactivityprotectedvoidoncreate(bundlesavedinstancestate);protectedvoidonstart();protectedvoidonresume();protectedvoidonpause();protectedvoidonstop();protectedvoidondestroy();你自己写的act

18、ivity会按需要重载这些方法,oncreate是免不了的,在一个activity正常启动的过程中,他们被调用的顺序是oncreate-onstart-onresume,在activity被干掉的时候顺序是onpause-onstop-ondestroy,这样就是一个完整的生命周期,但是有人问了,程序正运行着呢来电话了,这个程序咋办?中止了呗,如果中止的时候新出的一个activity是全屏的那么:onpause-onstop,恢复的时候onstart-onresume,如果打断这个应用程序的是一个theme为translucent或者dialog的activity那么只是onpause,恢复的

19、时候onresume。详细介绍一下这几个方法中系统在做什么以及我们应该做什么:oncreate:在这里创建界面,做一些数据的初始化工作onstart:到这一步变成用户可见不可交互的onresume:变成和用户可交互的,(在activity栈系统通过栈的方式管理这些个activity的最上面,运行完弹出栈,则回到上一个activity)onpause:到这一步是可见但不可交互的,系统会停止动画等消耗cpu的事情从上文的描述已经知道,应该在这里保存你的一些数据,因为这个时候你的程序的优先级降低,有可能被系统收回。在这里保存的数据,应该在onresume里读出来,注意:这个方法里做的事情时间要短,因

20、为下一个activity不会等到这个方法完成才启动onstop:变得不可见,被下一个activity覆盖了ondestroy:这是activity被干掉前最后一个被调用方法了,可能是外面类调用finish方法或者是系统为了节省空间将它暂时性的干掉,可以用isfinishing()来判断它,如果你有一个progressdialog在线程中转动,请在ondestroy里把他cancel掉,不然等线程结束的时候,调用dialog的cancel方法会抛异常的。onpause,onstop,ondestroy,三种状态下activity者K有可能被系统干掉为了保证程序的正确性,你要在onpause()里

21、写上持久层操作的代码,将用户编辑的内容都保存到存储介质上(一般都是数据库)。实际工作中因为生命周期的变化而带来的问题也很多,比如你的应用程序起了新的线程在跑,这时候中断了,你还要去维护那个线程,是暂停还是杀掉还是数据回滚,是吧?因为activity可能被杀掉,所以线程中使用的变量和一些界面元素就千万要注意了,一般都是采用android的消息机制handler,message来处理多线程和界面交互的问题。10、让activity变成一个窗口:activity属性设定讲点轻松的吧,可能有人希望做出来的应用程序是一个漂浮在手机主界面的东西,那么很简单你只需要设置一下activity的主题就可以了在a

22、ndroidmanifest.xml中定义activity的地方一句话:xml代码android:theme=IIandroid:style/theme.dialogIIandroid:theme=IIandroid:style/theme.dialogII这就使你的应用程序变成对话框的形式弹出来了,或者xml代码android:theme=|android:style/theme.translucent|android:theme=|android:style/theme.translucent|就变成半透明的,友情提示-.-类似的这种activity的属性可以在android.r.styl

23、eable类的androidmanifestactivity方法中看到,androidmanifest.xml中所有元素的属性的介绍都可以参考这个类android.r.styleable上面说的是属性名称,具体有什么值是在android.r.style中可以看到,比如这个IIandroid:style/theme.dialogII就对应于android.r.style.theme_dialog,(?_换成.-注意:这个是文章内容不是笑脸)就可以用在描述文件中了,找找类定义和描述文件中的对应关系就都明白了。11、你后台的activity被系统回收怎么办:onsaveinstancestate当你

24、的程序中某一个activitya在运行时中,主动或被动地运行另一个新的activityb这个时彳a会执行java代码publicvoidonsaveinstancestate(bundleoutstate)super.onsaveinstancestate(outstate);outstate.putlong(id,1234567890);b完成以后又会来找a,这个时候就有两种情况,一种是a被回收,一种是没有被回收,被回收的a就要重新调用oncreate()方法,不同于直接启动的是这回oncreate()里是带上参数savedinstancestate,没被收回的就还是onresume就好了。

25、savedinstancestate是一个bundle对象,你基本上可以把他理解为系统帮你维护的一个map对象。在oncreate()里你可能会用到它,如果正常启动oncreate就不会有它,所以用的时候要判断一下是否为空。java代码if(savedinstancestate!=null)(longid=savedinstancestate.getlong(id);就像官方的notepad教程里的情况,你正在编辑某一个note,突然被中断,那么就把这个note的id记住,再起来的时候就可以根据这个id去把那个note取出来,程序就完整一些。这也是看你的应用需不需要保存什么,比如你的界面就是读

26、取一个列表,那就不需要特殊记住什么,哦,没准你需要记住滚动条的位置.12、调用与被调用:我们的通信使者intent要说intent了,intent就是这个这个意图,应用程序间intent进行交流,打个电话啦,来个电话啦都会发intent,这个是android架构的松耦台的精髓部分,大大提高了组件的复用性,比如你要在你的应用程序中点击按钮,给某人打电话,很简单啊,看下代码先:java代码intentintent=newintent();intent.setaction(intent.action_call);intent.setdata(uri.parse(tel:+number);starta

27、ctivity(intent);扔出这样一个意图,系统看到了你的意图就唤醒了电话拨号程序,打出来电话。什么读联系人,发短信啊,由斜啊,统统只需要扔出intent就好了,这个部分设计地确实很好啊。那intent通过什么来告诉系统需要谁来接受他呢?通常使用intent有两种方法,第一种是直接说明需要哪一个类来接收代码如下:java代码intentintent=newintent(this,myactivity.class);intent.getextras().putstring(id,1);tartactivity(intent);第一种方式很明显,直接指定了myactivity为接受者,并且传

28、了一些数据给myactivity,在myactivity里可以用getintent()来的到这个intent和数据。第二种就需要先看一下androidmenifest中的intentfilter的配置了xml代码actionandroid:name=ent.action.view/actionandroid:value=ent.action.edit/actionandroid:value=ent.action.pick/categoryandroid:name=ent.category.default/d

29、ataandroid:mimetype=vnd.android.cursor.dir/vnd.google.note/这里面配置用到了action,data,category这些东西,那么聪明的你一定想到intent里也会有这些东西,然后一匹配不就找到接收者了吗?action其实就是一个意图的字符串名称。上面这段intent-filter的配置文件说明了这个activity可以接受不同的action,当然相应的程序逻辑也不一样咯,提一下那个mimetype,他是在contentprovider里定义的,你要是自己实现一个contentprovider就知道了,必须指定mimetype才能让数据

30、被另U人使用。不知道原理说明白没,总结一句,就是你调用别的界面不是直接new那个界面,而是通过扔出一个intent,让系统帮你去调用那个界面,这样就多么松藕台啊,而且符合了生命周期被系统管理的原则。想知道category都有啥,android为你预先定制好的action都有啥等等,请亲自访问官方链接intentps:想知道怎么调用系统应用程序的同学,可以仔细看一下你的logcat,每次运行一个程序的时候是不是有一些信息比如:startingactivity:intent【篇三:android工程帅笔试题及答案】xt>一、基础(79分)1. strings=newstring(xyz);仓

31、U建了几个stringobject?()3分a、1个b、2个c、3个d、4个2. math.round(11.5)和math.round(-11.5)分另U等于多少?()2分a、11和-11b、12和-11c、11和-12d、12和-12以下错误的说法有:()2分a、只要设计合理,当出现error这样的情况时,程序完全可以自动处理b、exception表示一种设计或实现问题c、set和map都继承自collection接口d、接口可以继承接口e、抽象类可以继承没有构造函数的实体类以下哪种类型不能彳为switch(expr1)表达式的expr1?(a、intb、longc、chard、byte有

32、关arraylist和vector的说法,那些是错误的?()3分a、vector是线程安全的b、arraylist是线程序不安全的c、当需要增长时,vector默认增长为原来一培d、当需要增长时,arraylist默认增长为原来一培以下说法那些是错误的?()3分a、一个char型变量可以存储一个中文汉字b、string是最基本的数据类型c、integer的缺省值是0d、string类提供了数值不可改变的字符串请指出以下代码的执行结果()5分classastaticsystem.out.print(x);publica()(system.out.print(2);classbextendsa(s

33、tatic(system.out.print(a);publicb()(system.out.print(b);publicclasshello(publicstaticvoidmain(stringars)(aab=newb();)3分ab=newb();a、xa2b2bb、xa2bxa2bc、abx2abd、2bxaba23=?()3分a、8b、6c、9d、16那些不属于面向对象的特征()2分a、多态性b、抽象c、继承d、重写若要说明一个抽象类,使用的关键字是:()2分a、staticb、implementsc、extendsd、abstract在java中,要定义类的保护类型元素,则必须

34、使用的关键字是()2分a、defaultb、privatec、publicd、protected下面是有关子类调用父类构造函数的描述正确的是()2分a、子类定义了自己的构造函数,就不会调用父类的构造函数b、子类必须通过super关键字调用父类没有参数的构造函数c、如果子类的构造函数没有通过super调用父类构造函数,那么子类会先调用父类不含参数的构造函数,再调用子类自己的构造函数d、创建子类对象时,先调用子类自己的构造函数,然后调用父类的构造函数3. 下列选项中不属于结构化程序设计方法的是()2分a、自顶向下b、逐步求精c、模块化d、可复用4. 下列描述中,错误的是()2分a、java要求编程

35、者管理内存b、java的安全性体现在多个层次上c、applet要求在支持java的浏览器上运行d、java有多线程机制5. 以下代码的输出结果是:()2分publicclasstestl(publicstaticvoidchangestr(stringstr)(str=welcome;publicstaticvoidmain(stringargs)(stringstr=1234;changestr(str);system.out.println(str);a、1234b、welcome6. 以下代码的输出结果是:()4分publicclasstest2(staticbooleanfoo(cha

36、rc)(system.out.print(c);returntrue;publicstaticvoidmain(stringargv)(inti=0;/for(65;88(i2);67)for(foo(a);foo(b)(i2);foo(c)(i+;foo(d);pilationfails.d.anexceptionisthrownatruntime.假设intx=4,y=50,下列语句的循环体共执行几次?()4分while(y/x3)if(y%x3)x=x+1;elsey=y/x;a、1b、2c、3d、4要从文件file.dat文件中读出第10个字节到变量c中,下列哪个方法适合?3分a、fi

37、leinputstreamin=newfileinputstream(file.dat);in.skip(9);intc=in.read();b、fileinputstreamin=newfileinputstream(file.dat);in.skip(10);intc=in.read();c、fileinputstreamin=newfileinputstream(file.dat);intc=in.read();d、randomaccessfilein=newrandomaccessfile(file.dat);in.skip(9);intc=in.readbyte();下面异常是属于r

38、untimeexception的是()(多选)2分a、arithmeticexceptionb、illegalargumentexceptionc、nullpointerexceptiond、bufferunderflowexception下面在androidmanifest.xml文件中注册broadcastreceiver体式格式正确的()4分a、receiverandroid:name=newbroadintent-filteractionandroid:name=vider.action.newbroad/action/intent-filter/receiver

39、b、receiverandroid:name=newbroadintent-filterandroid:name=vider.action.newbroad/intent-filter/receiverc、receiverandroid:name=newbroadactionandroid:name=vider.action.newbroad/action/receiverd、intent-filterreceiverandroid:name=newbroadactionandroid:name=vider.action.new

40、broad/action/receiver/intent-filterandroid关于service生命周期的oncreate()和onstart()说法正确的是()(多选题)3分a、当第一次启动的时辰先后调用oncreate()和onstart()办法b、当第一次启动的时辰只会调用oncreate()办法c、若是service已经启动,将先后调用oncreate()和onstart()办法d、若是service已经启动,只会履行onstart()办法,不在履行oncreate()办法关于sharedpreferences和文件存储数据描述正确的是().(选择一项)()3分使用文件存储需要创建文件,而shar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论