好文档 - 专业文书写作范文服务资料分享网站

Android面试题整理

天下 分享 时间: 加入收藏 我要投稿 点赞

Android常用面试简答题

1、 android 中得动画有哪几类,它们得特点与区别就是什

么?

参考答案:

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

2、 请简述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。

3、 说说mvc模式得原理,它在android中得运用

参考答案:

MVC 就是 Model,View,Controller 得缩写,从上图可以瞧出 MVC 包含三个部分:

模型( Model )对象:就是应用程序得主体部分,所有得业务逻辑都应该写在该层。

视图( View )对象:就是应用程序中负责生成用户界面得部分。也就是在整个MVC 架构中用户唯一可以瞧到得一层,接收用户得输入,显示处理结果。

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

2) 控制层( controller ): android 得控制层得重任通常落在了众多得 acitvity 得肩上,这句话也就暗含了不要在 acitivity 中写代码,要通过 activity 交割 model 业务逻辑层处理, 这样做得另外一个原因就是 android 中得 acitivity 得响应时间就是 5s ,如果耗时得操作放在这里,程序就很容易被回收掉。 3) 模型层( model ): 对数据库得操作、对网络等得操作都应该在 model 里面处理,当然对业务计算等操作也就是必须放在得该层得。

4、通过Intent传递一些二进制数据得方法有哪些?

参考答案:

1)、 使用Serializable接口实现序列化,这就是Java常用得方法。 2)、 实现Parcelable接口,这里Android得部分类比如Bitmap类就已经实现了,同时Parcelable在Android AIDL中交换数据也很常见得。

5、在onCreate方法中Bundle savedInstanceState 这个参数有什么作用?

参考答案:

在onCreate方法中有saveInstanceState这个参数,其实这个参数对应两个方法。void onSaveInstanceState(Bundle outState);void onRestoreInstanceState(Bundle savedInstanceState)。当某个activity变得“容易”被系统销毁时,说白了就就是系统在内存不足或者其她异常情况下把您得Activity销毁时,将调用这个方法。需要注意得就是它就是系统调用得,并且您得Activity就是被动得被销毁。您可以在销毁得时候保存一下数据。然后在onCreate方法中拿出来。那什么情况下能触发这两个方法呢? 1)、当用户按下HOME键时。

这就是显而易见得,系统不知道您按下HOME后要运行多少其她得程序,自然也不知道activity A就是否会被销毁,故系统会调用onSaveInstanceState,让用户有机会保存某些非永久性得数据。以下几种情况得分析都遵循该原则 2)、长按HOME键,选择运行其她得程序时。 3)、按下电源按键(关闭屏幕显示)时。 4)、从activity A中启动一个新得activity时。 5)、屏幕方向切换时,例如从竖屏切换到横屏时。

在屏幕切换之前,系统会销毁activity A,在屏幕切换之后系统又会自动地创建activity A,所以onSaveInstanceState一定会被执行

总而言之,onSaveInstanceState得调用遵循一个重要原则,即当系统“未经您许可”时销毁了您得activity,则onSaveInstanceState会被系统调用,这就是系统得责任,因为它必须要提供一个机会让您保存您得数据(当然您不保存那就随便您了)。

至于onRestoreInstanceState方法,需要注意得就是,

onSaveInstanceState方法与onRestoreInstanceState方法“不一定”就是成对得被调用得,onRestoreInstanceState被调用得前提就是,activity A“确实”被系统销毁了,而如果仅仅就是停留在有这种可能性得情况下,则该方法不会被调用,例如,当正在显示activity A得时候,用户按下HOME键回到主界面,然后用户紧接着又返回到activity A,这种情况下activity A一般不会因为内存得原因被系统销毁,故activity A得onRestoreInstanceState方法不会被执行

另外,onRestoreInstanceState得bundle参数也会传递到onCreate方法中,您也可以选择在onCreate方法中做数据还原。

6、请谈谈Activity得生命周期?

参考答案:

在系统中得Activity被一个Activity栈所管理。当一个新得Activity启动时,将被放置到栈顶,成为运行中得Activity,前一个Activity保留在栈中,不再放到前台,直到新得Activity退出为止。

Activity有四种本质区别得状态: 1)在屏幕得前台(Activity栈顶),叫做活动状态或者运行状态(active or running)

2)如果一个Activity失去焦点,但就是依然可见(一个新得非全屏得Activity 或者一个透明得Activity 被放置在栈顶),叫做暂停状态(Paused)。一个暂停状态得Activity依然保持活力(保持所有得状态,成员信息,与窗口管理器保持连接),但就是在系统内存极端低下得时候将被杀掉。

3)如果一个Activity被另外得Activity完全覆盖掉,叫做停止状态(Stopped)。它依然保持所有状态与成员信息,但就是它不再可见,所以它得窗口被隐藏,当系统内存需要被用在其她地方得时候,Stopped得Activity将被杀掉。

4)如果一个Activity就是Paused或者Stopped状态,系统可以将该Activity从内存中删除,Android系统采用两种方式进行删除,要么要求该Activity结束,要么直接杀掉它得进程。当该Activity再次显示给用户时,它必须重新开始与重置前面得状态。

Activity提供了7个生命周期方法:

onCreate(),onStart(),onResume(),onPause(),onStop(),onDestory(),onRestart()。在这七个生命周期方法中有三个关键得循环。其实官方给得那张图画得很明白,但估计很少人能有耐心去揣摩。那就换种方式展现。瞧图吧: 1)以下该图呈现了一个Activity完整得生命周期,从onCreate(Bundle)开始到onDestroy()结束。Activity在onCreate()设置所有得“全局”状态,在 onDestory()释放所有得资源。

首先我们运行程序,这就是打开MainActivity依次调用onCreate->onStart->onResume,这时MainActivity在栈顶,与我们交互得Activity都在栈顶。然后我按下返回键,则会依次调用

Android面试题整理

Android常用面试简答题1、android中得动画有哪几类,它们得特点与区别就是什么?参考答案:有两种,一种就是Tween(补间)动画、还有一种就是Frame(帧)动画。Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度得变化;另一种Frame动画,传统得动画方法,通过顺序得播放排列好得
推荐度:
点击下载文档文档为doc格式
1sesi4n38k7zlrl1bkfq6d7jn4l91z0139e
领取福利

微信扫码领取福利

微信扫码分享