关键词:
android面试题(共9篇)
篇1: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等的理解
5、handler机制的原理
篇2:android面试题
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViews;
setListensers();
}
// 定义
private void findViews() {
button_calc = (Button) findViewById(R.id.submit);
field_height = (EditText) findViewById(R.id.height);
field_weight = (EditText) findViewById(R.id.weight);
view_result = (TextView) findViewById(R.id.result);
view_suggest = (TextView) findViewById(R.id.suggest);
}
// Listen for button clicks
private void setListeners() {
calcbutton.setOnClickListener(calcBMI);
}
private Button.OnClickListener calcBMI = new Button.OnClickListener() {
public void onClick(View v) {
DecimalFormat nf = new DecimalFormat(“0.0”);
double height = Double.parseDouble(field_height.getText().toString()) / 100;
double weight = Double.parseDouble(field_weight.getText().toString());
double BMI = weight / (height * height);
// Present result
view_result.setText(getText(R.string.bmi_result) + nf.format(BMI));
// Give health advice
if (BMI > 25) {
view_suggest.setText(R.string.advice_heavy);
} else if (BMI < 20) {
view_suggest.setText(R.string.advice_light);
} else {
view_suggest.setText(R.string.advice_average);
}
}
};
}
总结:
关于项目
在就是你项目经验,一定要突出你遇到什么难点,然后是怎么解决的!把问题引导到你熟悉的领域,或者知识点上,尽量将每个技术点细节凸显出来,
心态:
什么样的面试官都有,去面试的时候要做好一切心理准备,不管是技术还是基础都得扎实。一个人的交谈能力也很重要,总之不是非常标准的普通话, 最起码你说的得让别人听得懂,而且得把面试官讲得非常彻底,这样你获得offer的机会更大,谈工资也有优势~~
篇3:天才的面试题
1.房里有三盏灯, 房外有三个开关, 在房外看不见房内的情况, 但可以任意扳动开关。你只能进门观察一次, 你用什么方法来区分哪个开关控制哪一盏灯?
2.有两根粗细不均匀的香, 燃烧时快时慢, 但每根香烧完的时间确定是一小时。你能用什么方法来确定45分钟的时间?
3.村子里有50个人, 每个人都有一条狗, 在这50条狗中有病狗 (这种病不传染) , 人们要找出病狗。每个人可以观察其他49条狗, 以判断它们是否生病, 但只有自己的狗不能看, 观察后得到的结果不能交流, 也不能通知病狗的主人。主人一旦推算出自己的狗有病时, 就必须在一天内将其枪毙, 而且只有权力枪毙自己的狗, 没有权力打死其他人的狗。第一天大家全看完了, 但枪没响, 第二天枪也没响, 第三天才传来枪响。问:村里共有几条病狗?如何推算出来的?
4.在太平洋的一个小岛上生活着土著人, 他们不愿意被外人打扰。一天, 一位探险家到了岛上, 被土著人捉住, 土著人的首领告诉他:“你临死前可以有个机会留下一句话, 如果这句话是真的, 你将被烧死;如果是假的, 你将被五马分尸。”可怜的探险家说什么才能活下来?
5.一个老师为了测试一下A、B两个学生哪一个反应速度更快, 就把他们带到一个伸手不见五指的黑房子里。老师打开灯说:“这张桌子上有五顶帽子, 两顶是红色的, 三顶是黑色的。现在, 我把灯关掉, 并把帽子的顺序搞乱, 然后, 我们三人每人摸一顶戴在头上。当我把灯打开时, 请你们尽快说出, 自己头上戴的是什么颜色的帽子。”然后老师把灯关掉了, 三个人都摸了一顶帽子戴在头上, 同时, 老师把另外两顶藏起来了。电灯打开后, 那两个同学看到老师头上戴着的是顶红色的帽子, 过了一会儿, A喊道:“我戴的是黑帽子。”请问A是如何推理的?
答案 (仅供参考) :
1.先打开两个开关, 等一段时间再关上其中一个, 马上进里观察。打开的灯对应打开的开关, 用手摸到热的关闭的灯对应刚刚关闭的开关, 凉的灯对应始终没打开的开关。
2.点燃其中一根, 并把另一根两头点燃。第二根烧完恰好过去30分钟, 第一根剩下部分应该能支撑30分钟的燃烧。然后把第一根剩下的部分两头点燃, 15分钟即可燃尽。此过程一共耗时45分钟。
3.若只有一条病狗, 病狗的主人看到其他的狗都没有病, 那么就知道自己的狗有病, 所以第一天晚上就会枪响。因为没有枪响, 就说明病狗数量大于1。若有两条病狗, 病狗的主人会看到有一条病狗, 而第一天没听到枪响, 说明病狗数大于1, 所以病的主人也会知道自己的狗有病, 因而第二天会听枪响, 既然第二天枪也没响, 说明病狗数大于2。依此类推, 如果第三天听到枪响。说明有三条病狗。
4.这是一个悖论问题, 探险家只能描述一种非真非假的状况, 比如:我将被五马分尸。如果土著判定这话是真的, 那么他将被烧死———这样“五马分尸”就成假的了。如果土著判定这话是假的, 那他将被五马分尸的话就变成了真的。
篇4:“天才”面试题
1房里有三盏灯,房外有三个开关,在房外看不见房内的情况。但可以任意扳动开关。你只能进门观察一次,你用什么方法来区分哪个开关控制哪一盏灯?
2有两根粗细不均匀的香,燃烧时快时慢,但每根香烧完的时间确定是一小时。你能用什么方法来确定45分钟的时间?
3村子里有50个人,每个人都有一条狗,在这50条狗中有病狗(这种病不传染),人们要找出病狗。每个人可以观察其他49条狗,以判断它们是否生病,但只有自己的狗不能看,观察后得到的结果不能交流,也不能通知病狗的主人。主人一旦推算出自己的狗有病时,就必须在一天内将其枪毙,而且只有权力枪毙自己的狗,没有权力打死其他人的狗。第一天大家全看完了,但枪没响,第二天枪也没响,第三天才传来枪响。问:村里共有几条病狗?如何推算出来的?
4在太平洋的一个小岛上生活着土著人,他们不愿意被外人打扰。一天,一位探险家到了岛上,被土著人捉住,土著人的首领告诉他:“你临死前可以有个机会留下一句话,如果这句话是真的,你将被烧死;如果是假的。你将被五马分尸。”可怜的探险家说什么才能活下来?
5一个老师为了测试一下A、B两个学生哪一个反应速度更快,就把他们带到一个伸手不见五指的黑房子里。老师打开灯说:“这张桌子上有五顶帽子,两顶是红色的,三顶是黑色的。现在,我把灯关掉,并把帽子的顺序搞乱,然后,我们三人每人摸一顶戴在头上。当我把灯打开时,请你们尽快说出,自己头上戴的是什么颜色的帽子。”然后老师把灯关掉了,三个人都摸了一顶帽子戴在头上,同时,老师把另外两顶藏起来了。电灯打开后,那两个同学看到老师头上戴着的是顶红色的帽子,过了一会儿,A喊道:“我戴的是黑帽子。”请问A是如何推理的?
答案(仅供参考):
1先打开两个开关,等一段时间再关上其中一个,马上进里观察。打开的灯对应打开的开关,因此用手摸到热的灯对应刚刚关闭的开关,凉的对应始终投打开的开关。
2点燃其中一根。并把另一根两头点燃。第二根烧完恰好过去30分钟,第一根剩下部分应该能支撑30分钟的燃烧。然后把第一根剩下的部分两头点燃,15分钟即可燃尽,此过程一共耗时45分钟。
3若只有一条病狗,病狗的主人看到其他的狗都沒有病,那么就知道自己的狗有病,所以第一天晚上就会枪响。因为没有枪响,就说明病狗数量大于1。若有两条病狗,病狗的主人会看到有一条病狗,而第一天没听到枪响,说明病狗数大于1,所以病狗主人也会知道自己的狗有病,因而第二天会听枪响,既然第二天枪也没响,说明病狗数大于2。依此类推,如果第三天听到枪响。说明有三条病狗。
4这是一个悖论问题,探险家只能描述一种非真非假的状况,比如:我将被五马分尸。如果土著判定这话是真的,那么他将被烧死——这样“五马分尸”就成假的了。如果土著判定这话是假的,那他将被五马分尸的话就变成了真的。
5如果A戴的是红帽子,那么B马上就可以猜出自己戴的是黑帽子(因为红帽子只有两顶);而B并没有立刻猜到,所以A马上推断出自己戴的是黑帽子!
汪新才摘自《狗眼看世界》
篇5: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()释放内存
篇6: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);
篇7: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.广播接收器有几种注册方式,分别是什么?
篇8:2010年安徽公务员面试题解析
综合分析题
第一题:一项调查表明, 在我国近30年的1000多位“高考状元”中, 没有发现一位是经商、从政、做学问等方面的顶尖人才。请谈谈你的看法?
这是一道综合分析题, 也是一道时事政治类型的题目。对于考生来说, 应当属于比较容易回答的题目。因为, 今年以来, 国家对人才的重视和对教育的重视, 出台了许多鼓励政策, 同时, 媒体也就人才与教育的相关问题作了许多报道, 其中就有这一项调查。只要考生稍加注意, 就可以完整地回答这一问题。
从命题思路来说, 是考察考生的综合分析能力, 能够深入剖析人才与教育的现状, 从教育体制、教育方式、选拔机制、学生的理解与创新、综合素质培养以及到适应社会经济能力, 提出自己的看法和想法。这一命题, 涉及了政府、社会、家庭、自身、学校等方方面面, 也是近年来, 我们各方面都在关注和探讨的素质教育、高考改革、高校创新性人才培养等热门话题, 无论考生从哪个方面切入, 都能谈出一二三来。
从当天本组27名考生的回答来看, 绝大多数考生回答较好。有的从应试教育与素质教育切入主题, 有的从知识与能力问题切入主题, 有的从“高考状元”的成长环境切入主题, 有的从创新性人才培养切入主题, 有的从高校教育切入主题等。有的还想到了钱学森教授临终时与温家宝总理的谈话, 阐述我国基础教育、高中教育、大学教育对创新型人才培养的影响。有的谈到媒体过多地宣传“高考状元”, 对这些“高考状元”成长环境的影响, 都表现出了考生应有的素质。从考官给出的小分来看, 也都在中上。
人际沟通与协调题
第二道题:请举例说明, 你和他人合作中遇到挫折后, 是怎么解决的?
这是一道人际沟通与协调类型的题目, 也是一道矛盾类型的题目, 在面试中是常见的。对于这样的题目, 考生回答起来应当说是得心应手的。因为无论是过去的面试, 还是现在的各类培训, 都会有这样的题目类型。但是, 在这一题目中, 考生必须要把握住题意中的三个关键词:一是举例, 二是挫折, 三是他人合作。不然, 就回归到了过去一些类似题目回答的老路子上了。
从出题的思路来看, 就是要看考生能否把握住关键, 能否区别于过去或一些培训机构对这一类型题目的回答套路, 做出比较好的回答。
然而, 令人遗憾的是, 几乎所有考生对这个问题的回答, 不仅没有摆脱过去和培训机构的老路子, 而且, 绝大多数考生在题意的把握上, 也没有把握住关键的三个词。既没有举例, 也没有把握住“挫折”的真正意思。而是把意外、争执、矛盾、误解, 当成挫折。就字典上对“挫折”的解释来说, 应当是事情进行不顺利, 失败。这一道题目的关键是要首先列举自己生活或工作中的一个事例, 而这一事例与他人合作相关, 最后是失败了, 自己如何去解决。
从当天本组27名考生的回答来看, 仅有一人回答的较为贴切, 绝大多数考生仅把意外、争执、矛盾、误解, 当作题意给回答了。从考官给出的小分来看, 基本上都在中下, 出乎了考官的预料。
情境模拟题
第三道题:有少数公务员在执行公务时存在“不作为、乱作为”的现象, 请你从提高“执行力”的角度, 谈谈如何避免上述现象发生?
这是一道情境模拟试题, 也是一道依法行政与公共服务类型的题目。旨在考察考生能否认识到依法行政对于一个公务员和国家机关形象的影响, 也体现了和谐社会更应当要法治。
从出题者的思路来看, 一是要看考生对依法行政的态度和个人要表现的素质。二是要看考生能否认识到依法行政对于整个社会的重要性。三是要看考生依法行政关键要从哪些环节做起。有了这三个方面的回答, 就是一个完整的回答。
从当天本组27名考生的回答来看, 应当说, 绝大多数考生在题意的把握上, 把握得较好。不仅回答少数公务员不代表所有公务员, 这些“少数”在执行公务时存在“不作为、乱作为”现象, 反映了个人素质问题、工作透明度问题、法律上规定的自由裁量权过大问题、约束机制问题、社会监督问题、执法环境问题等多个方面。而且, 能够提出提高“执行力”, 避免上述现象发生的关键应当从个人素质、工作透明度、法律上规定的自由裁量权过大、约束机制、社会监督、执法环境等问题抓起, 回答得都较为完美。从考官给出的小分来看, 基本上都在中上, 让考官十分满意。
发散性思维题
第四道题:是一幅图, 一只企鹅和一个人站在地球上, 企鹅脚下是一块即将融化的冰, 其他全是海水;而这个人的脚下是一块很小的绿地, 其他全是沙漠。题目要求, 请你观察已给的图, 构思一段人物与企鹅的对话。
这是一道发散性思维类型的题目, 也是一道规定体裁类型的题目, 类似这样的题目, 这几年面试中常常出现。既要看考生的思维反应能力, 又要看考生的应变与创新能力。
从出题者的思路来看, 这幅图画反映的是三个问题:一是人与动物生存的问题。二是经济发展与环境保护的问题。三是资源过度开发与地球气候变化无常问题。所以, 考生要能够从企鹅脚下是一块即将融化的冰, 其他全是海水;而人的脚下是一块很小的绿地, 其他全是沙漠, 想到“冰山在融化”、“陆地在沙漠化”背后的原因, 实质上就是上述三个问题。只要考生能够紧紧抓住上述三个问题, 在对话中体现, 并能够结合科学发展观, 阐述当前要发展循环经济、低碳经济等, 从而实现人与自然的和谐。
从当天本组27名考生的回答来看, 绝大多数考生都能够紧扣主题回答, 回答得较好。但是, 唯一不足的是对话较少, 旁白过多。没有能够把“冰山在融化”、“陆地在沙漠化”这一现象, 以及产生的原因、危害和对策, 通过对话的方式表达出来。多数考生只用三两句对话, 然后就是个人认为。有的还想到了哥本哈根世界气候大会, 有的想到图画反映的是几十年后, 有的还用童话的方式表述等。从考官给出的小分来看, 基本上都在中上, 让考官十分满意。
然而, 这一题, 正确的回答应当是, 紧扣主题———围绕地球人与动物这个共同的家园———剖析现在的生存环境———寻找恶化的原因和后果———提出合理的对策与思路———最终实现人与动物与自然的和谐。
篇9:微软的面试题
一个求职者应聘微软的部门经理,面试官抛出一道考题:一天晚上,结伴同行的4个人要由一座小桥的一边到达另一边,过桥时必须用到手电筒,但手电筒只有一支,而小桥每次最多只可以通过两人。4个人的过桥时间分别为1分钟、2分钟、5分钟、10分钟。要让所有人安全通过小桥。最少需要多长时间?
听完,求职者立即埋头计算。来微软之前,他曾经在别的公司做过项目经理,他想,这完全是一个考查优化的问题。
聪明的人马上就能想到这样的方法:先让1、2过去,1回来,5、10再过去,2回来,1、2再过去,总共17分钟。
可是,求职者算来算去,总比标准答案的时间多。看他左右为难的样子,面试官问要不要提示,他立马说不,又埋头做了5分钟,结果还是没做出来。
面试官点评说:“其实你解题的思路很好,可惜你没有理解清楚我的问题,最关键的是,你没有问我手电筒能照多远?如果将手电筒放在桥中间,朝左朝右各能照到桥的一半,那就不需要来回在桥上走了。
最后,面试官重申:出这样一道面试题,当然不是为了考求职者的数学水平,而是有没有理清问题细节的能力。这对一个项目经理来说,是非常重要的素质。
相关文章:
android简历一01-06
Android技术16:编写Android中直接可运行的二进制文件01-06
拆迁农户安置小区绿地规划与设计的探讨01-06
移民安置区规划设计01-06
水库移民安置规划大纲编制要求01-06
android学习路线01-06
Android课程01-06
Android监控01-06
甲醛甲酚01-06
Android编程01-06