android面试题目

2024-05-03

android面试题目(精选13篇)

篇1:android面试题目

以下整理的内容是百度android开发类面试题目,欢迎大家练一练。

1. SQLite支持事务吗?添加删除如何提高性能?

2. 对Intent、Activity、广播、Service等的理解

3. 系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由。

4. Activity和Task的启动模式有哪些?每种含义是什么?

5、handler机制的原理

6、sim卡的EF 文件有何作用

sim卡的文件系统有自己规范,主要是为了和手机通讯,sim本身可以有自己的操作系统,EF就是作存储并和手机通讯用的

7、嵌入式操作系统内存管理有哪几种,各有何特性?

页式,段式,段页,用到了MMU,虚拟空间等技术

8、什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?

嵌入式实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。主要用于工业控制、军事设备、

航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。又可分为软实时和硬实时两种,而android是基于linux内核的,因此属于软实时。

9、一条最长的短信息约占多少byte?

中文70(包括标点),英文160个字节

10、 android中的动画有哪几类,它们的特点和区别是什么?

两种,一种是Tween动画、还有一种是Frame动画。Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。

相关阅读推荐:

1、9道有趣的面试逻辑题 2、英语面试试题及答案(中英文对照30题) 3、微创智力题 4、国泰君安笔试真题 5、常见面试问题:为什么要雇用你? 6、客服经理常见面试问题 7、平安保险公司面试问题 8、采购员面试问题及答案 9、营销策划类面试试题

篇2:android面试题目

注意事项:

1、每人可选下列题目中的一题完成课程设计。

2、学习委员于10月31日收齐上交。

3、本次要求打印稿(正反打印)。

一、题目及要求:

1、基于Android平台的在线通信录

功能要求:实现通信录的在线备份还原功能,服务器端技术自定。

2、基于Android平台的云记事本软件

功能要求:具有记事本的基本功能。同时具备在线备份功能。服务器端技术自定。

3、基于BaiDu在线地图的轨迹跟踪服务

功能要求:

1、能动态、实时记录设备位置。

2、能在手机或者网页上显示地图轨迹。服务端技术自定。

用例场景:小明今天80岁,患老年痴呆又喜欢出远门,经常发生走丢事故。小小明为了能实时掌握小明的行踪,特意为他配备了装有跟踪服务的智能机,从此小明再也不怕走丢了。

4、基于Android平台的财务软件

功能要求:

1、记账和统计功能。2.实时备份 实现要求:客户端基于Android,服务端技术自定

用例场景:随手记,一家人共用一个账号,所有支出都清清楚楚

5、基于Android平台的社交软件

功能要求:参考QQ、微信、微博等

实现要求:客户端基于Android,服务端技术自定

6、基于Android平台的新闻客户端

功能要求:参考网易新闻客户端

实现要求:客户端基于Android,服务端技术自定.7.基于Android平台的天气预报系统

功能要求:从服务器端下载天气预报数据并显示.实现要求:客户端基于Android,服务端技术自定

8.自拟题目。要求有客户端和服务端,具备一定的实用性。

二、设计文档要求(格式同上学期多核开发课程报告格式)

整体要求:使用Eclipse集成开发环境完成课程设计,界面友好,代码的可维护性好,有必要的注释和相应的文档。文档具体书写内容要求如下:  系统的需求概述  系统的概要设计  设计与实现部分  运行画面截图

篇3:奇特的面试题目

总裁问:“你上学的学费是你父亲付的吗?”

研究生答:“我的父亲在我一岁时就去世了,是我的母亲为我付的学费。”

总裁又问:“你的母亲是干什么工作的?”

研究生答:“她是一个洗衣工。”

总裁要求研究生伸出双手。这是一双柔软、光滑的手。

总裁接着问:“你以前帮你的母亲洗过衣服吗?”

研究生答:“没有。母亲总是让我好好学习多读书。还有,她洗衣服比我快。”

总裁说:“我有一个要求,回去后,请为你的母亲洗一洗手,明天上午再来见我。”

研究生感到自己获得经理职位的可能性很大,心中高兴。回到家后,他要求母亲把手让他洗一洗。

母亲感到诧异,但还是犹犹豫豫地伸出了手,眼神里流露出幸福的同时,还闪过一丝复杂的表情。

研究生给母亲轻轻地洗着手的时候,眼眶里慢慢地盈满了泪水。这是他第一次仔细看母亲的手。这双手粗糙、干燥、脱皮、多皱,甚至有好几处皮肤磨破的地方。这些磨破的地方一被触及,整双手就会一颤,他的心也就随之一颤。他第一次意识到,正是这双手为他支付了学费,让他能够读了大学又读研究生,为他取得优异成绩提供了条件,为他将来的发展提供了保证。

在为母亲洗过手之后,研究生又替母亲洗掉了所有待洗的衣服。那天晚上,母子俩在一起谈了很久。

第二天上午,研究生走进总裁的办公室。在得知研究生为母亲洗了手还洗了衣服之后,总裁询问他的感想。

研究生说:“我懂得了什么是感恩。没有母亲,就没有我的进步。在替母亲洗衣服的过程中,我明白了她工作的不易。我还认识到家庭关系的重要及价值。”

篇4:android面试题目

A. 数组是一种对象 B. 数组属于一种原生类

C. int number=={31,23,33,43,35,63} D. 数组的大小可以任意改变

2. 下列正确的有(D )

A. call by value不会改变实际参数的数值 B. call by reference能改变实际参数的参考地址 C. call by reference不能改变实际参数的参考地址 D. call by reference能改变实际参数的内容

3. 下列说法错误的有(A )

A. Java面向对象语言容许单独的过程与函数存在 B. Java面向对象语言容许单独的方法存在 C. Java语言中的方法属于类中的成员(member)

篇5:android面试题

1.下列哪些语句关于内存回收的说明是正确的?

A、程序员必须创建一个线程来释放内存

B、内存回收程序负责释放无用内存

C、内存回收程序允许程序员直接释放内存

D、内存回收程序可以在指定的时间释放内存对象

2.下面异常是属于Runtime Exception 的是

A、ArithmeticException

B、IllegalArgumentException

C、NullPointerException

D、BufferUnderflowException

3.Math.round(-11.5)等于多少

A、11 ,-11

B、11 ,-12

C、12 ,-11

D、12 ,-1

24.下列程序段的输出结果是:

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、true

B、false

C、1

D、011.activity

5.对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行

A、onPause()

B、onCreate()

C、onResume()

D、onStart()

6.Intent传递数据时,下列的数据类型哪些可以被传递

A、Serializable

B、charsequence

C、Parcelable

D、Bundle

7.android 中下列属于Intent的作用的是

A、实现应用程序间的数据共享

B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失

C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带

D、处理一个应用程序整体性的工作

8.下列属于SAX解析xml文件的优点的是

A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能

B、不用事先调入整个文档,占用资源少

C、整个文档调入内存,浪费时间和空间

D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会

消失

9.在android中使用SQLiteOpenHelper这个辅助类时,可以生成一个数据库,并可以对数据库版本进行管理的方法可以是()

A、getWriteableDatabase()

B、getReadableDatabase()

C、getDatabase()

D、getAbleDatabase()

10.android 关于service生命周期的onCreate()和onStart()说法正确的是

A、当第一次启动的时候先后调用onCreate()和onStart()方法

B、当第一次启动的时候只会调用onCreate()方法

C、如果service已经启动,将先后调用onCreate()和onStart()方法

D、如果service已经启动,只会执行onStart()方法,不在执行onCreate()方法

11.下面是属于GLSurFaceView特性的是

A、管理一个surface,这个surface就是一块特殊的内存,能直接排版到android的视图view上。

B、管理一个EGL display,它能让opengl把内容渲染到上述的surface上。

C、让渲染器在独立的线程里运作,和UI线程分离。

D、可以直接从内存或者DMA等硬件接口取得图像数据

12.下面在AndroidManifest.xml文件中注册BroadcastReceiver方式正确的A、

android:name=“android.provider.action.NewBroad”/>

B、

android:name=“android.provider.action.NewBroad”/>

C、

android:name=“android.provider.action.NewBroad”/>

D、

android:name=“android.provider.action.NewBroad”/>

13.关于ContenValues类说法正确的是

A、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值都是基本类型

B、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是任意类型,而值都是基本类型

C、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名,可以为空,而值都是String类型

D、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值也是String类型

14.我们都知道Hanlder是线程与Activity通信的桥梁,如果线程处理不当,你的机器就会变得越慢,那么线程销毁的方法是

A、onDestroy()

B、onClear()

C、onFinish()

D、onStop()

15.下面退出Activity错误的方法是

A、finish()

B、抛异常强制退出

C、System.exit()

D、onStop()

16.下面属于android的动画分类的有

A、Tween

B、Frame

C、Draw

D、Animation

17.下面关于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中的一个进程,所以说可以认为是同一个概念.18.Android项目工程下面的assets目录的作用是什么

A、放置应用到的图片资源。

B、主要放置多媒体等数据文件

C、放置字符串,颜色,数组等常量数据

D、放置一些与UI相应的布局文件,都是xml文件

19.关于res/raw目录说法正确的是

A、这里的文件是原封不动的存储到设备上不会转换为二进制的格式

B、这里的文件是原封不动的存储到设备上会转换为二进制的格式

C、这里的文件最终以二进制的格式存储到指定的包中

D、这里的文件最终不会以二进制的格式存储到指定的包中

20.下列对android NDK的理解正确的是

A、NDK是一系列工具的集合B、NDK 提供了一份稳定、功能有限的 API 头文件声明。

C、使 “Java+C” 的开发方式终于转正,成为官方支持的开发方式

D、NDK 将是 Android平台支持 C 开发的开端

问答题:

1.系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由。

2.Activity和Task的启动模式有哪些? 每种含义是什么?

3.SQLite支持事务吗? 添加删除如何提高性能?

4.对Intent、Activity、广播、Service等的理解

篇6:android面试经历

先说投简历,其时我没投简历,有经验的同学们可以把简历挂到网上(最好是智联)等着公司和猎头给你电话就行,简历要尽量简洁,当然你会的技能最好写的详细些,最好一篇纸搞定。

先说小公司,小公司面了10多家,总结来说小公司远没有想象中那样要求低,很多小公司要求还是很高的,但基本问的都是些皮毛,大家只要把网上的面试题搞定就好了,不少小公司都问道了布局,因为面试官以前可能是做j2ee的,他们要转android应用层开发,界面布局还是稍微另他们头痛的事,小公司不愿花从大多成本招程序员,一个客户端往往就2,3个人开发,比较变态的是有的公司让你一个人搞定。另外小公司大多做apk,布局和界面的美化对他们来说十分重要。小公司一般都会有笔试题,都是些基础知识还有工作中常见的问题,比如手机适配方面的知识。有两家中小企业有些印象:一家忘记名字了,项目经理很牛的样子,说出他们公司为了性能整个客户端就用一个activity,这个固然可以,但是也得考虑可维护性吧,再说写成一个activity也没什么牛的,不用那么吹嘘。还有一家是中科金财,问了些布局和socket和手机地图的问题就ok了,结果我吃了大亏,报道时说第二天就派我去飞机场(客户那边),让我一个人负责客户端的开发,我说周期多长,答曰:两三个月。立马闪人,工作地点又远又偏僻,还我一个人搞开发,待遇也不高,典型的节约成本拿技术人员当驴使的公司。

轮到些大一点的公司,先说搜狐,搜狐要求还是很高的,问题是该项目经理对我这种从小公司出来的人很不感冒,他很随意但显然坐不住凳子,他说他们做了一个新浪视频客户端正在维护,让我看着他们的界面,让我简单分析他们的布局。这个问题看似简单其实很难,要全部说清楚几乎不可能。

还有千橡互动(人人网),这个公司也勉强算大吧= =,前台很牛的样子,进来让我做智力题,我说我来面试程序员,他说每个来面试的必须写,一个填图题跟智力无关,反而感觉自己被轻视了。面试官穿这脱鞋,蓬头垢面,很“牛”的样子。拿了张纸考我闰年的算法和listview的优化,期间他一直手直哆嗦,看来派了个小兵考我,再次被轻视,果断闪人(罢面)。

联想面了3次+ +,第一个项目经理还是很随和的,问了些Task的问题,activity加载模式以及一些我项目中的问题,可能我经验尚浅没进去。第二次有些变态,四个人面我,其中一个之总经理级别,面我一个小程序员不用这样吧,一人问一个问题,静态的问题啊,我项目中的问题啊,不过居然问我代码是怎写的,让我说出来,我当时无语了,早忘了啊。第三次没印象了。

土豆网很偏僻啊,我看了看他们的环境(不太好)人员也很闲散,大下午的都不在工作。项目经理有会,找可俩手下面我,感觉更像是技术PK,聊些asyncTask了,消息处理了,当我说道framework层时,显然他们就不知道了。Pk了一小时,还让我教他们关于surfaceview的知识,说他们不清楚,我刚想讲项目经理来了,可能是离职原因说的不太好吧。只差一步了啊= =,所以离职原因非常重要,想好了再说出来。

京东商城好像包了三层大楼,环境不错,来了个开发人员考我问题,问的都是项目中的问题,一些关于多线程下载的问题,问道我代码,我记错了,所以就惨了,其实我认为不应考一些代码的问题,虽然是自己写的,但过一阵都忘了,我要问面试官代码,估计他也说不出来。不过感觉不错。

阿里云,刚去时不知道是什么公司,是阿里巴巴的子公司,环境还ok,主要是项目经理不错,我们聊了一个半小时,技术问题没问太多,就是关于布局一些问题,消息处理,数据存储等一些基本题,他更关注的是你的思想,很可惜这个岗位招的是管理人员,我经验尚浅条件不符。

金山去了一趟,楼里还不错,不过我没见面试官,人事给我一张笔试题,我其实很差异大公司一般不笔试啊+ +,我看了看,三道题都拿不准,一道链表的算法题,晕菜啊没看啊。最郁闷的是,最后一道问金山快盘的原理和设计什么的,我也没用过啊,狂晕,果断闪人。

中科软,这个比较郁闷,项目经理显然很喜欢我,遗憾的是他们这没有做android开发,所以面试时最好先了解面试的公司招什么职位,具体做哪些事,变被动为主动。

中软国际,这个是做外包项目,面试题很多,主要还是基础,什么如何观看手机的内存cpu信息等等。

文思创新,临时有事直接罢面,面试题很多也很恶心,算法题考的很多,还是客观题。

还有一家大公司忘了名字了,这回彻底被鄙视,意思是我在小公司没有做过内存优化和性能方面的工作,不过面试期间我接了四个面试电话,把俩面试官凉在那也算解了气。

期间还有新浪,百度,360,创新工厂找我面试因为各种原因没去,最后去了华为,在华为可以让你的层次更高一些,因为我参与的是整机开发,如果去搜狐和千橡或者是土豆做客户端维护的,技术就容易停留到应用层了。

篇7:android面试题

如何将一个activity设置成窗口的样式。(edited by sodino)

如何退出activity?如何安全退出已调用多个activity的application?

请介绍下android中常用的五种布局。

请介绍下android的数据存储方式。(edited by sodino)

请介绍下contentprovider是如何实现数据共享的。(edited by sodino)

如何启用service,如何停用service。(edited by sodino)

注册广播有几种方式,这些方式有何优缺点?请谈谈android引入广播机制的用意。

请解释下在单线程模型中message、handler、message queue、looper之间的关系。

aidl的全称是什么?如何工作?能处理哪些类型的数据?

请解释下android程序运行时权限与文件系统权限的区别。(edited by sodino)

系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由。

嵌入式操作系统内存管理有哪几种,各有何特性 ?

页式,段式,段页,用到了mmu,虚拟空间等技术

什么是嵌入式实时操作系统, android 操作系统属于实时操作系统吗?

嵌入式实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。主要用于工业控制、军事设备、航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。又可分为软实时和硬实时两种,而android是基于linux内核的,因此属于软实时。

一条最长的短信息约占多少byte?

中文70(包括标点),英文160个字节

android中的动画有哪几类,它们的特点和区别是什么?

两种,一种是tween动画、还有一种是frame动画。tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;另一种frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。

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。

说说mvc模式的原理,

它在android中的运用 mvc(model_view_contraller)” 模型_视图_控制器”。 mvc应用程序总是由这三个部分组成。event(事件)导致controller改变model或view,或者同时改变两者。只要 controller改变了models的数据或者属性,所有依赖的view都会自动更新。类似的,只要controller改变了view,view会 从潜在的model中获取数据来刷新自己

(view重绘和内存泄露面试经常问的问题 )

view的刷新:

在需要刷新的地方,使用handle.sendmessage发送信息,然后在handle的getmessage里面执行invaliate或者postinvaliate。

可以调用invalidate()和postinvalidate()这两个方法刷新

gc内存泄露 出现情况:

1).数据库的cursor没有关闭

2).构造adapter时,没有使用缓存contentview 衍生listview的优化问题-----减少创建view的对象,充分使用contentview,可以使用一静态类来优化处理getview的过程/

3).bitmap对象不使用时采用recycle()释放内存

篇8:android面试题

是多么华丽的一种浪费啊。

于是你会有这样一种设想,浏览器Activity,可不可以作为一个单独的Task而存在,不管是来自那个Task的请求,浏览器的Task,都不会归并过去。这样,虽然浏览器Activity本身需要维系的状态更多了,但整体的开销将大大的减少,这种舍小家为大家的行为,还是很值得歌颂的

standard“, ”singleTop“, ”singleTask“, ”singleInstance“。

standard模式, 是默认的也是标准的Task模式,在没有其他因素的影响下,使用此模式的Activity,会构造一个Activity的实例,加入到调用者的Task栈中去,对于使用频度一般开销一般什么都一般的Activity而言,standard模式无疑是最合适的,因为它逻辑简单条理清晰,所以是默认的选择。

而singleTop模式,基本上于standard一致,仅在请求的Activity正好位于栈顶时,有所区别。此时,配置成singleTop的Activity,不再会构造新的实例加入到Task栈中,而是将新来的Intent发送到栈顶Activity中,栈顶的Activity可以通过重载onNewIntent来处理新的Intent(当然,也可以无视...)。这个模式,降低了位于栈顶时的一些重复开销,更避免了一些奇异的行为(想象一下,如果在栈顶连续几个都是同样的Activity,再一级级退出的时候,这是怎么样的用户体验...),很适合一些会有更新的列表Activity展示。一个活生生的实例是,在Android默认提供的应用中,浏览器(Browser)的书签Activity(BrowserBookmarkPage),就用的是singleTop。

singleTask,和singleInstance,则都采取的另辟Task的蹊径。

标志为singleTask的Activity,最多仅有一个实例存在,并且,位于以它为根的Task中。所有对该Activity的请求,都会跳到该Activity的Task中展开进行。singleTask,很象概念中的单件模式,所有的修改都是基于一个实例,这通常用在构造成本很大,但切换成本较小的Activity中。最典型的例子,还是浏览器应用的主Activity(名为Browser...),它是展示当前tab,当前页面内容的窗口。它的构造成本大,但页面的切换还是较快的,于singleTask相配,还是挺天作之合的。

singleInstance显得更为极端一些。在大部分时候singleInstance与singleTask完全一致,唯一的不同在于,singleInstance的Activity,是它所在栈中仅有的一个Activity,如果涉及到的其他Activity,都移交到其他Task中进行。这使得singleInstance的Activity,像一座孤岛,彻底的黑盒,它不关注请求来自何方,也不计较后续由谁执行。在Android默认的各个应用中,很少有这样的Activity,在我个人的工程实践中,曾尝试在有道词典的快速取词Activity中采用过,

是因为我觉得快速取词入口足够方便(从notification中点选进入),并且会在各个场合使用,应该做得完全独立。

大的apk 拆成 很多小的apk

●Activity的 android:taskAffinity=”"属性 姻缘关系

1.配置后 当启动这个activity时就先去找有没有activity的亲和力属性相同 有就加入这个

activity所在的任务中没有就新开任务

2.affinity起作用需要的条件而者具备一个:

1.intent包含FLAG_ACTIVITY_NEW_TASK标记

2.activity元素启用了allowTaskReparenting属性.

43. 在Android中,怎么节省内存的使用,怎么主动回收内存?

回收已经使用的资源,

合理的使用缓存

合理设置变量的作用范围… application 对象

//未来的某一段时间执行

System.gc();

44. 不同工程中的方法是否可以相互调用?

可以,列举aidl访问远程服务的例子.

45. 在Android中是如何实现判断区分电话的状态,去电,来电、未接来电?

Day8 showAddressService.java

46. dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念

Dvm的进程是dalivk虚拟机进程,每个android程序都运行在自己的进程里面,

每个android程序系统都会给他分配一个单独的liunx uid(user id),

每个dvm都是linux里面的一个进程.所以说这两个进程是一个进程.

47. sim卡的EF 文件有何作用

Sim卡相关的东西,没接触过

48. 如何判断是否有SD卡?

配置文件中有sd卡的权限, 通过environment的静态方法,

if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {

49. 嵌入式操作系统内存管理有哪几种, 各有何特性。

页式,段式,段页,等 …

50. 什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?

实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。主要用于工业控制、军事设备、航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。又可分为软实时和硬实时两种,而android是基于linux内核的,因此属于软实时。

硬实时. 火星探测车.

软实时.

51. 一条最长的短信息约占多少byte?

中文70(包括标点),英文160,160个字节 这个说法不准确,

要跟手机制式运营商等信息有关.

做实验,看源码

ArrayList msgs = sms.divideMessage(message);

篇9:android面试题

58. 什么是ANR 如何避免它?

在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择让程序继续运行,但是,他们在使用你的应用程序时,并不希望每次都要处理这个对话框。因此,在程序里对响应性能的设计很重要,这样,系统不会显示ANR给用户。

Activity 5秒 broadcast10秒

耗时的操作 worker thread里面完成, handler message…AsynTask , intentservice.等…

59. android中的动画有哪几类,它们的特点和区别是什么?

两种,一种是Tween动画、还有一种是Frame动画。

Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;

可以通过布局文件,可以通过代码

1、控制View的动画

a) alpha(AlphaAnimation)

渐变透明

b) scale(ScaleAnimation)

渐变尺寸伸缩

c) translate(TranslateAnimation)

画面转换、位置移动

d) rotate(RotateAnimation)

画面转移,旋转动画

2、控制一个Layout里面子View的动画效果

a) layoutAnimation(LayoutAnimationController)

b) gridAnimation(GridLayoutAnimationController)

另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。

62. 说说mvc模式的原理,它在android中的运用。

MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层――模型层、视图层、控制层。

Android中界面部分也采用了当前比较流行的MVC框架,在Android中M就是应用程序中二进制的数据,V就是用户的界面。Android的界面直接采用XML文件保存的,界面开发变的很方便。在Android中C也是很简单的,一个Activity可以有多个界面,只需要将视图的ID传递到setContentView(),就指定了以哪个视图模型显示数据。

在Android SDK中的数据绑定,也都是采用了与MVC框架类似的方法来显示数据。在控制层上将数据按照视图模型的要求(也就是Android SDK中的Adapter)封装就可以直接在视图模型上显示了,从而实现了数据绑定。比如显示Cursor中所有数据的ListActivity,其视图层就是一个ListView,将数据封装为ListAdapter,并传递给ListView,数据就在ListView中显示。

63. 通过点击一个网页上的url 就可以完成程序的自动安装,描述下原理

Day11 AddJavascriptInterface

new Object{

callphone();

installapk();

}

64,Service和Activity在同一个线程吗

默认情况同一线程 main主线程 ui线程

65,java中的soft reference是个什么东西

StrongReference 是 Java 的默认引用实现, 它会尽可能长时间的存活于 JVM 内, 当没有任何对象指向它时 GC 执行后将会被回收

SoftReference 会尽可能长的保留引用直到 JVM 内存不足时才会被回收(虚拟机保证), 这一特性使得 SoftReference 非常适合缓存

应用详细见豆瓣客户端图片的缓存

66,udp连接和TCP的不同之处

tcp/滑动窗口协议. 拥塞控制.

udp 不关心数据是否达到,是否阻塞

画面优先. tcp

流畅优先 udp

67, android开发中怎么去调试bug

逻辑错误

1.断点 debug

2. logcat ,

界面布局,显示 hierarchyviewer.bat

68.service里面可以弹土司么

可以

69.写10个简单的linux命令

cat ls ps psw wc mv rm cd ping tracert find grep tail vi gcc make ifconfig

startup dhcp

70 JNI调用常用的两个参数

JNIEnv *env, jobject javaThis

71. 书写出android工程的目录结构

src

android. jar

asset

res

gen

manifest

72. ddms 和traceview的区别.

daivilk debug manager system

1.在应用的主activity的onCreate方法中加入Debug.startMethodTracing(”要生成的traceview文件的名字");

2.同样在主activity的onStop方法中加入Debug.stopMethodTracing();

3.同时要在AndroidManifest.xml文件中配置权限

3.重新编译,安装,启动服务,测试完成取对应的traceview文件(adb pull /sdcard/xxxx.trace)。

4.直接在命令行输入traceview xxxxtrace,弹出traceview窗口,分析对应的应用即可。

traceview 分析程序执行时间和效率

KPI : key performance information : 关键性能指标:

splash界面不能超过5秒

从splash 界面加载mainactivity 不能超过0.7秒

74. 利用mvc的模式重构代码

1) 重构前的代码Bmi.java:

package com.demo.android.bmi;

import java.text.DecimalFormat;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

篇10:Android面试题总结

1.简述Activity的生命周期?

1)Activity的生命周期通过7个生命周期方法onCreate(),onRestart(), onStart(), onResume(), onPause(),onStop(),onDestroy()来体现。2)其中6个生命周期方法是成对对应起来的,哪里创建的对象,一般应该在其对应的方法中销毁。

onCreate()--onDestroy()onStart()--onStop()onResume()--onPause()3)当程序启动之后,第一个Activity经过的生命周期方法是:onCreate()→onStart()→ onResume()方法,当第一个Activity A启动第二个Activity B的时候(备注:第二个Activity完全遮盖住第一个Activity,并且这个过程中没有出现点击Home键,或者第一个Activity被杀死等异常情况,并且两个Activity的启动模式是标准模式),这两个Activity经历的生命周期方法是:

A onPause()→ B onCreate()→ B onStart()→ B onResume()→ A onStop()→(此时Activity A已经在回退栈的最低端,Activity B已经在Activity A的上面,在回退栈的最顶端)当通过点击后退键退出Activity B的时候:

(此时Activity B 弹出回退栈)→ B onPause()→ A onRestart()→ A onStart()→ A onResume()→ B onStop()→ B onDestroy()此时B 被销毁

2.简述Service的生命周期?

1).如果在Activity中通过调用startService()方法启动一个Service的话,那么生命周期是:

onCreate()→ onStartCommand()→ 运行中 →(如果自己或者客户端(如Activity)调用了stop Service的方法的话)→ onDestroy()2).如果在Activity中通过调用bindService()方法启动一个Service的话,那么生命周期是:

onCreate()→ onBind()→ 运行中 →(如果有客户端(Activity)调用了unBindService()方法与Service解除绑定时)→ onUnbind()→ onDestroy()3.有几种控件布局的方式?

1)RelativeLayout:相对布局,可以根据相对位置来调整控件的位置。推荐使用相对布局,更利于屏幕的自适应。2)LinearLayout:线性布局,控件之间的水平排列或者垂直排列。但是如果要想构建复杂布局,要进行多层的LinearLayout布局嵌套,但是这样会运行布局载入效率。

3)FrameLayout:帧布局,控件与控件之间处于上下叠加的状态。

备注:还有两个已经不怎么用的布局:TableLayout:表格布局 AbsoluteLayout 绝对布局。

布局实现方式有两种:xml文件静态实现,代码动态实现。

一般xml文件中可以实现布局控制的话,就不建议放在代码中实现布局控制,因为在xml文件中实现布局控制,可以做到布局与代码分离。4.有几种数据存储方式,分别是什么? 1)SQLite数据库存储结构化数据。

2)文件存储:分为内部存储和外部存储(SD卡)两种存储方式。3)SharedPreferences共享参数,键值对形式存储。4)网络存储。

5.IntentService与Service有什么区别? IntentService是Service的子类

1)Service如果要处理异步请求(如耗时操作)的话,需要自己启动一个worker thread,如果启动多个worker thread来处理相关事务的话,各线程之间无法很好的控制。而IntentService可以将多个异步请求的Intent放入队列中,封装了一个开启worker thread的onHandleIntent()方法,来依次处理放入队列中的Intent,只有一个worker thread在运行,同一时刻只有一个Intent被处理,当一个Intent处理完了之后才会处理另外一个Intent。

2)Service可以通过startService()或者bindService()方法来启动,而IntentService则是通过startService()方法来启动。3)Service适合多线程处理异步请求。而IntentService则适合处理需要排队的请求。

6.StartService与bindService之间的区别?

1)StartService启动了Service之后无法与Activity之间进行通信,与现有的Activity分离,即使Activity被杀掉了之后,Service还可以运行,同时通过设置Service的粘性,还可以让Service被杀掉之后,可以自启动。而bindService启动Service之后,与绑定的Activity之间有关系,可以依据Server/Client模式来进行通信(binder客户端主动请求模式,或者通过信使),但是无法设置Serrvice的粘性。2)StartService启动的Service,Activity中可以调用stopService()方法来结束一个Service,或者通过Service自己调用stopSelf()方法来结束Service。而bindService只能通过Activity()来调用unbindService()方法来结束Service,Service会调用onUnBind()方法,以及onDestroy()方法。

7.ArrayAdapter BaseAdapter CursorAdapter的区别?

ArrayAdpter CursorAdapter都是BaseAdapter的子类。都是用来填充那些含有item的控件。

1)主要区别是数据来源不同。ArrayAdapter数据来源是Object数组,CursorAdapter数据来源是数据库的Cursor,而BaseAdapter适合创建复杂自定义的item内容,通过继承BaseAdapter类,重写相关方法来实现。

8.Handler与Looper之间的关系? 1)Handler和Looper的关系就好比,坐地铁过安检时候:每一个人可以理解为一个Handler,一个人的一个或者多个东西看做Message而循环滚动的检查台装置可以看做是Looper,而要检查的东西排成队列可以理解为MessageQueue消息队列。

2)Looper是Handler和MessageQuene之间的桥梁,Looper将Handler发送过的消息放入MessageQueue,同时Looper也将MessageQueue中的Message发送给Handler来处理。

9.res文件夹与assets文件夹有什么区别? 1)res文件夹中的资源在会在R.java文件中生成ID,代码中可以直接通过R.id的形式来访问。而assets文件夹中的资源不会在R.java文件中生成ID,需要通过AssetsManager通过IO流的方式来访问。

2)res文件夹中的文件会被压缩,而assets文件中的文件不会被压缩。

3)Res不能自定义目录名,不支持多层目录。而assets支持自定义目录名,支持多层目录。

10.广播接收器有几种注册方式,分别是什么?

篇11:android个人面试简历

姓 名:

国籍: 中国

目前所在地: 番禺区

民族: 汉族

户口所在地: 湖南

身材: 168 cm 58 kg

婚姻状况: 未婚

年龄: 34 岁

培训认证:

诚信徽章:

求职意向及工作经历

人才类型: 普通求职

应聘职位: 计算机软件:ERP/SAP系统工程师、软件工程师:Windows Mobile,Android,J2ME开发、嵌入式软件开发(Linux/单片机/DLC/DSP…):

工作年限: 8

职称: 无职称

求职类型: 全职

可到职日期: 一个星期

月薪要求: 5000--8000

希望工作地区: 广东省 北京 上海

个人工作经历:

公司名称:

起止年月:20xx-03 ~ 20xx-04广州市科思电脑系统公司

公司性质: 所属行业:

担任职务: 项目经理、软件工程师

工作描述: 负责企业ERP/SAP,MRP2,HR管理系统的开发与实施工作,多次带领开发团队深入企业,参与多家企业的ERP/SAP系统的设计与项目实施,成功完成了电子、服装等十多个行业公司企业的ERP/SAP系统的开发与实施任务。

离职原因:

公司名称: 起止年月:20xx-02 ~ 20xx-01广州市天河学院

公司性质: 所属行业:

担任职务: 计算机系教师

工作描述: 负责软件,网络计算机相关课程讲授,带领学生进行进行课程实验。

离职原因:

公司名称: 起止年月:20xx-01 ~ 20xx-01广州艾斯顿有限公司

公司性质: 所属行业:

担任职务: 电脑部主管,软件工程师

工作描述: 负责公司的电脑维护,网站维护,软件开发工作。

离职原因:

教育背景

毕业院校: 湖南常德电脑大学

最高学历: 本科

毕业日期: -07-01

所学专业一: 计算机信息管理

所学专业二:

受教育培训经历:

起始年月 终止年月 学校(机构) 专 业 获得证书 证书编号

1992-09 -07 湖南常德机电工程学校(湖南常德职业技术学院) 机械电子 毕业证

1996-09 1999-07 湖南常德电脑大学 计算机信息管理 毕业证

20xx-01 20xx-01 广东外语外贸大学 商务英语 结业证

语言能力

外语: 英语 良好

国语水平: 优秀 粤语水平: 良好

工作能力及其他专长

1.精通Windows Mobile,WinCe手机系统软件开发,熟悉Android,J2Me系统设计。

2.精通C/C++VB/VC++,C++Builder/ABAP, EVC/WIN CE, SQL SERVER等编程语言, 有丰富的ERP/MRP/OA系统开发与实施经验,精通酒店信息管理系统的开发与维护,为多家企业成功设计开发了ERP/SAP系统软件和一百多家五星级酒店管理系统,赢得了客户广泛的好评。

2.熟识思科、华为等网络设备的安装与调试维护工作,精通RFID、嵌入式系统程序设计、嵌入式/上位机编程。

详细个人自传

精通Windows Mobile,WinCe手机系统软件开发,熟悉Android,J2Me系统设计,精通C/C++VB/VC++,C++Builder/SAP(ABAP), EVC/WIN CE,RFID、SQL SERVER等编程语言, 熟悉思科、华为等网络设备的安装与调试维护工作,为多家企业成功设计开发、完成实施ERP/SAP系统软件和一百多家五星级酒店管理系统,赢得了客户广泛的好评。

篇12:安居客 面试题 android

第一页

1.空白处随便画,画出你的未来和理想

偶画滴是一只没有脚的鸟,远方是大海和日出。不过后来面试官也没问这,本来想好了用张国荣的阿飞正传里的话去回答的,不过后来面试官也没问为啥这样画,总之个人感觉不能不画。大家可以随便画,万一面试官问起来,只要言之有理就行了。

2.这道题比较妖,因为偶做不来...话说一个卖饼的老板没有零钱,有16个人,其中8个只有5元,8个只有10元,一个饼5元,问有多少种排列组合方式能让老板都有找零钱的排队方式?选择题,选项a,b记得不是太清了

a.1000多 b.12870 c.16!/2 d.8!

反正当时偶没做出来,随便选了个C,回家想了下,竟然算出来个16!/9

3.任何代码实现输出一个log.txt文件,里面写“XXXXXXX”

不会

4.如何判断网站性能瓶颈?

吞吐量、响应时间、负载等考虑,根据性能指标发挥下。

5.舜即使孝子又是贤君,如果他父亲犯法那应该咋做?

判父亲有罪,不过可以自己代父亲受罚。

6.一道数据库题目

记住什么时候用通配符%的运用就行了

第二页

1.win下查看网络配置命令,linux下

ipconfig/all & ifconfig

2.ip是192.168.10.71子网掩码是255.255.255.64和ip192.168.10.1是不是同一局域网

这网络题偶不是太会,不过应该不是,后面那台机器子网掩码题目没有给出

3.“abc”编程“cba”,任意语言实现

这个学过编程滴应该都会吧,不是很难

4.sql查询和实现插入记录的语句

select& into, 不过总感觉这题太简单了点,说不定有什么陷阱啥的

5.winxp运行慢,判断是程序问题还是软硬件问题

随便吹了两句,具体其实不是很了解,反正这种题至少写两句自己在使用电脑时候的心得就行了

6.抓取远程图片到本地的函数用啥

file_get_conents

7.pv10w, linux比win快多少

没有明显差别

8.V模型

画下就行,基本上就是个软件开发流程,不过别画成双V了

9.qtp中action和function的区别

function是最小的功能单元,可复用性高,action是这些小功能单元的组合,实现业务逻辑

10.qtp如何调用外部函数

execute fileresourceexecute global 不知道对不对

11.自动化测试框架,qtp几种脚本编写方法

专家视图和普通视图

12.xss和csrf是什么,区别

cross site script&cross-site request forgery, 区别第一个是站内信任用户,第二个是伪装成来自受信任用户

13.吞吐量、响应时间、关联

14.62-63=1移动一个数字使等式成立

2的六次方...

15.LR有什么部件录制脚本

virtual user generator

16.VuGen何时关闭日志,何时选择标准和扩展日志

不会

17.Vuser_init中包括啥

不会

18.前端性能测试指什么,介绍几个测试工具

页面大小,加载速度,浏览器渲染效率,Yahoo性能优化,空格,换行,注释etc...

firebug, yslow, ibmpagedetailer...

19.smoke test

针对修改过的地方以及相关部分进行验证的测试

20.CMM

capability maturity model 软件质量成熟模型

21.LR主要监控内存泄露的指标

不会

22.常用覆盖率的区别

不会

面试流程,感觉发挥的并不是太好,不过总算是积累的不少经验,希望上面的笔试题对于后来者能有所帮助。

篇13:Android面试题附答案

1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分 类,按功能分为:(c),如果为读取的内容进行处理后再输出,需要使用下列哪种流?(g)

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.println(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.以下程序的运行结果为( b)

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”所占的内存空间是(a)

A. 6个字节

B. 7个字节

C. 10个字节

D. 11个字节

6.关于下列程序段的输出结果,说法正确的是:(d )

public class MyClass{

static int i;

public static void main(String argv[]){

System.out.println(i);

}

}

A、有错误,变量i没有初始化。

B、null

C、1

D、0

7.下列哪些语句关于内存回收的说明是正确的? (b )

A、 程序员必须创建一个线程来释放内存

B、 内存回收程序负责释放无用内存

C、 内存回收程序允许程序员直接释放内存

D、 内存回收程序可以在指定的时间释放内存对象

8.下面异常是属于Runtime Exception 的是(abcd)(多选)

A、ArithmeticException

B、IllegalArgumentException

C、NullPointerException

D、BufferUnderflowException

9. Math.round(11.5)等于多少(). Math.round(-11.5)等于多少(c). c

A、11 ,-11 B、11 ,-12 C、12 ,-11 D、12 ,-12

10.下列程序段的输出结果是:(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、true B、false C、1 D、0

11.activity对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行(d)

A、onPause() B、onCreate() C、 onResume() D、onStart()

12.Intent传递数据时,下列的数据类型哪些可以被传递(abcd)(多选)

A、Serializable B、charsequence C、Parcelable D、Bundle

13.android 中下列属于Intent的作用的是(c)

A、实现应用程序间的数据共享

B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失

C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带

D、处理一个应用程序整体性的工作

14.下列属于SAX解析xml文件的优点的是(b)

A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能

B、不用事先调入整个文档,占用资源少

C、整个文档调入内存,浪费时间和空间

D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会

消失

15.下面的对自定style的方式正确的是(a)

A、

B、

C、

fill_parent

D、

16.在android中使用Menu时可能需要重写的方法有(ac)。(多选)

A、onCreateOptionsMenu()

B、onCreateMenu()

C、onOptionsItemSelected()

D、onItemSelected()

17.在SQL Server Management Studio 中运行下列T-SQL语句,其输出值(c)。

SELECT @@IDENTITY

A、 可能为0.1

B、 可能为3

C、 不可能为-100

D、 肯定为0

18.在SQL Server 中运行如下T-SQL语句,假定SALES表中有多行数据,执行查询之 后的结果是(d)。

BEGIN TRANSACTION A

Update SALES Set qty=30 WHERE qty<30

BEGIN TRANSACTION B

Update SALES Set qty=40 WHERE qty<40

Update SALES Set qty=50 WHERE qty<50

Update SALES Set qty=60 WHERE qty<60

COMMIT TRANSACTION B

COMMIT TRANSACTION A

A、SALES表中qty列最小值大于等于30

B、SALES表中qty列最小值大于等于40

C、SALES表中qty列的数据全部为50

D、SALES表中qty列最小值大于等于60

19.在android中使用SQLiteOpenHelper这个辅助类时,可以生成一个数据库,并可以对数 据库版本进行管理的方法可以是(ab)

A、getWriteableDatabase()

B、getReadableDatabase()

C、getDatabase()

D、getAbleDatabase()

20. android 关于service生命周期的onCreate()和onStart()说法正确的是(ad)(多选题)

A、当第一次启动的时候先后调用onCreate()和onStart()方法

B、当第一次启动的时候只会调用onCreate()方法

C、如果service已经启动,将先后调用onCreate()和onStart()方法

D、如果service已经启动,只会执行onStart()方法,不在执行onCreate()方法

21.下面是属于GLSurFaceView特性的是(abc)(多选)

A、管理一个surface,这个surface就是一块特殊的内存,能直接排版到android的视图

view上。

B、管理一个EGL display,它能让opengl把内容渲染到上述的surface上。

C、让渲染器在独立的线程里运作,和UI线程分离。

D、可以直接从内存或者DMA等硬件接口取得图像数据

22.下面在AndroidManifest.xml文件中注册BroadcastReceiver方式正确的是(a)

A、

android:name=”android.provider.action.NewBroad“/>

B、

android:name=”android.provider.action.NewBroad”/>

C、

android:name=”android.provider.action.NewBroad“/>

D、

android:name=”android.provider.action.NewBroad”/>

23.关于ContenValues类说法正确的是(a)

A、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的

名是String类型,而值都是基本类型

B、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的

名是任意类型,而值都是基本类型

C、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的

名,可以为空,而值都是String类型

D、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中

的名是String类型,而值也是String类型

24.我们都知道Hanlder是线程与Activity通信的桥梁,如果线程处理不当,你的机器

就会变得越慢,那么线程销毁的方法是(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、Animation

27.下面关于Android dvm的进程和Linux的进程,应用程序的进程说法正确的是(d)

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 中的一个进程,所以说可以认为是同一个概念.

28.Android项目工程下面的assets目录的作用是什么b

A、放置应用到的图片资源。

B、主要放置多媒体等数据文件

C、放置字符串,颜色,数组等常量数据

D、放置一些与UI相应的布局文件,都是xml文件

29..关于res/raw目录说法正确的是(a

A、 这里的文件是原封不动的存储到设备上不会转换为二进制的格式

B、 这里的文件是原封不动的存储到设备上会转换为二进制的格式

C、 这里的文件最终以二进制的格式存储到指定的包中

D、 这里的文件最终不会以二进制的格式存储到指定的包中

30.下列对android NDK的理解正确的是(abcd )

A、 NDK是一系列工具的集合

B、 NDK 提供了一份稳定、功能有限的 API 头文件声明。

C、 使 “Java+C” 的开发方式终于转正,成为官方支持的开发方式

D、 NDK 将是 Android平台支持 C 开发的开端

二.填空题(每题2分,共20分)

1.我们用___int____来定义一个整数,用___char____来定义一个字符类型,称为原始数据类型。

2.android中常用的四个布局是framlayout,linenarlayout,relativelayout和tablelayout。

3.android 的四大组件是activiey,service,broadcast和contentprovide。

4.java.io包中的objectinputstream和objectoutputstream类主要用于对对象(Object)的读写。

5.android 中service的实现方法是:startservice和bindservice。

6.activity一般会重载7个方法用来维护其生命周期,除了onCreate(),onStart(),onDestory() 外还有onrestart,onresume,onpause,onstop。

7.android的数据存储的方式sharedpreference,文件,SQlite,contentprovider,网络。

8.当启动一个Activity并且新的Activity执行完后需要返回到启动它的Activity来执行

的回调函数是startActivityResult()。

9.请使用命令行的方式创建一个名字为myAvd,sdk版本为2.2,sd卡是在d盘的根目录下,

名字为scard.img, 并指定屏幕大小HVGA.____________________________________。

10.程序运行的结果是:_____good and gbc__________。

public class Example{

String str=new String(“good”);

char[]ch={‘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”;

ch[0]=’g;

}

}

三 简答编程题(共35分)

1.在android中,请简述jni的调用过程。(8分)

1)安装和下载Cygwin,下载 Android NDK

2)在ndk项目中JNI接口的设计

3)使用C/C++实现本地方法

4)JNI生成动态链接库.so文件

5)将动态链接库复制到java工程,在java工程中调用,运行java工程即可

2.简述Android应用程序结构是哪些?(7分)

Android应用程序结构是:

Linux Kernel(Linux内核)、Libraries(系统运行库或者是c/c++核心库)、Application

Framework(开发框架包)、Applications (核心应用程序)

3. 请继承SQLiteOpenHelper实现:(10分)

1).创建一个版本为1的“diaryOpenHelper.db”的数据库,

2).同时创建一个 “diary” 表(包含一个_id主键并自增长,topic字符型100

长度, content字符型1000长度)

3).在数据库版本变化时请删除diary表,并重新创建出diary表。

public class DBHelper extends SQLiteOpenHelper {

public final static String DATABASENAME = “diaryOpenHelper.db”;

public final static int DATABASEVERSION = 1;

//创建数据库

public DBHelper(Context context,String name,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),”+

“content varchar(1000)”+

“)”;

db.execSQL(sql);

}

//若数据库版本有更新,则调用此方法

public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)

{

String sql = “drop table if exists diary”;

db.execSQL(sql);

this.onCreate(db);

}

}

4.页面上现有ProgressBar控件progressBar,请用书写线程以10秒的的时间完成其进度

显示工作。(10分)

答案

public class ProgressBarStu extends Activity {

private ProgressBar progressBar = null;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.progressbar);

//从这到下是关键

progressBar = (ProgressBar)findViewById(R.id.progressBar);

Thread thread = new Thread(new Runnable() {

@Override

public void run() {

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-generated catch block

e.printStackTrace();

}

}

});

thread.start();

//关键结束

}

}

答案:

一、选择题

1 2 3 4 5 6 7 8 9 10

CG B D B A D B ABCD C B

11 12 13 14 15 16 17 18 19 20

D ABCD C B A AC C D AB AD

21 22 23 24 25 26 27 28 29 30

ABC A A A C AB D B A ABCD

二、填空题

1. int char

2.FrameLayout,LilnearLayout,RelativeLayout,TableLayout

3.Activity,Broadcast,Service,ContentProvide

4.ObjectInputStream ObjectOutputSteam

5.startService ,bindService

6.onRestart(),onResume(),onPause(),onStop()

7.SharedPreferences存储,文件存储,SQLite存储,ContentProvider,网络存储

8.startActivityResult()

9.adnroid create acd -n myAvd -t 8 -s HVDA – C d:card.img

上一篇:恋爱搞笑经典句子下一篇:高正物业临沂分公司