您的位置:首页 > 职场人生

android面试题整理 .

2012-08-26 17:02 423 查看
非个人原因,想换工作了,所以想弄点关于android面试题,网上有很多都是转载的,只有题没有答案的也有很多,所以想从网上找找整理一下,并且把答案整理一下(答案自己找的):

什么是Activity?

[plain]
view plaincopyprint?

Activity是Android程序的4大组件之一。 Activity是Android程序的表示层。程序的每一个显示屏幕就是一个Activity。 学过WEB开发的同学,可以把Activity理解成网页中的一个JSP文件;或者你可以把它理解成一个Windows的窗口。 下面看一下Activity类的继承关系:

Activity是Android程序的4大组件之一。
Activity是Android程序的表示层。程序的每一个显示屏幕就是一个Activity。
学过WEB开发的同学,可以把Activity理解成网页中的一个JSP文件;或者你可以把它理解成一个Windows的窗口。

下面看一下Activity类的继承关系:



[plain]
view plaincopyprint?

从这里可以看到Activity是Context类的子类

从这里可以看到Activity是Context类的子类


请描述一下Activity生命周期。

[plain]
view plaincopyprint?

手机最重要也是最基础的功能是打电话,也就意味着电话来的时候可能随时要把现在的程序暂停,如果电量不足的时候也可能随时要把现有程序关闭;因此Android程序和电脑上的程序有所不同,具体到Activity,Activity的生命周期不是自身控制的,而是由Android系统控制的。 在android中Activity有四种基本状态: 1、Running 位于屏幕最前端时,此时处于可见状态,和用户可交互的状态。 2、Paused 当Acitivy被另一个透明的或者非全屏的Activity覆盖时的状态叫Paused状态,虽然可见但不可交互。 3、Stop 当Activity被另外一个Activity覆盖、界面不可见时处于Stop状态。 4、Killed Activity被系统杀死或者跟本没启动时就是Killed状态。 我们下面看一下Activity的生命周期:

手机最重要也是最基础的功能是打电话,也就意味着电话来的时候可能随时要把现在的程序暂停,如果电量不足的时候也可能随时要把现有程序关闭;因此Android程序和电脑上的程序有所不同,具体到Activity,Activity的生命周期不是自身控制的,而是由Android系统控制的。

在android中Activity有四种基本状态:
1、Running
位于屏幕最前端时,此时处于可见状态,和用户可交互的状态。
2、Paused
当Acitivy被另一个透明的或者非全屏的Activity覆盖时的状态叫Paused状态,虽然可见但不可交互。
3、Stop
当Activity被另外一个Activity覆盖、界面不可见时处于Stop状态。
4、Killed
Activity被系统杀死或者跟本没启动时就是Killed状态。

我们下面看一下Activity的生命周期:



[plain]
view plaincopyprint?

Activity栈: Android通过Activity栈的方式来管理Activity。

Activity栈:
Android通过Activity栈的方式来管理Activity。



[plain]
view plaincopyprint?

正在运行的Activity 处在在栈的最顶端,它是运行状态的; 当有新Activity进入屏幕最上端时,原来的Activity就会被压入第二层,如果他的屏幕没有被完全遮盖,那么他处于Pause状态,如果他被遮盖那么他处于Stop状态。 当然不管你出于任何一层,都可能在系统觉得资源不足时被强行关闭,当然关闭时在栈底的程序最先被关闭。 譬如:当你在程序中调用 Activity.finish()方法时,结果和用户按下 BACK 键一样:他告诉 Activity Manager该Activity实例可以被“回收”。随后 Activity Manager 激活处于栈第二层的 Activity 并重新入栈,把原 Activity 压入到栈的第二层,从 Running 状态转到 Paused 状态。

正在运行的Activity 处在在栈的最顶端,它是运行状态的;

当有新Activity进入屏幕最上端时,原来的Activity就会被压入第二层,如果他的屏幕没有被完全遮盖,那么他处于Pause状态,如果他被遮盖那么他处于Stop状态。

当然不管你出于任何一层,都可能在系统觉得资源不足时被强行关闭,当然关闭时在栈底的程序最先被关闭。

譬如:当你在程序中调用 Activity.finish()方法时,结果和用户按下 BACK 键一样:他告诉 Activity Manager该Activity实例可以被“回收”。随后 Activity Manager 激活处于栈第二层的 Activity 并重新入栈,把原 Activity 压入到栈的第二层,从 Running 状态转到 Paused 状态。
另外,还有一个比较网址,对activity的生命周期讲述的不错的:http://www.ibm.com/developerworks/cn/opensource/os-cn-android-actvt/

两个Activity之间跳转时必然会执行的是哪几个方法。

[java]
view plaincopyprint?

startActivity(Intent intent) ; startActivityForResult (Intent intent, int requestCode) ; onActivityResult (int requestCode, int resultCode, Intent data); setResult(int resultCode);

startActivity(Intent intent) ;
startActivityForResult (Intent intent, int requestCode) ;
onActivityResult (int requestCode, int resultCode, Intent data);
setResult(int resultCode);
我在工作中使用的方式:

[html]
view plaincopyprint?

Intent intent = new Intent(); intent.setClass(this.xxActivity,xxxActivity.class); this.startActivity(intent);

Intent intent = new Intent();
intent.setClass(this.xxActivity,xxxActivity.class);
this.startActivity(intent);


横竖屏切换时候Activity的生命周期。

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

你后台的Activity被系统 回收怎么办?

如何退出Activity?如何安全退出已调用多个Activity的Application?

如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?

两个Activity之间怎么传递数据?

怎么让在启动一个Activity是就启动一个service?

同一个程序,但不同的Activity是否可以放在不同的Task任务栈中?

Activity怎么和service绑定,怎么在activity中启动自己对应的service?

什么是Service以及描述下它的生命周期。

Service有哪些启动方法,有什么区别,怎样停用Service?

不用service,B页面为音乐播放,从A跳转到B,再返回,如何使音乐继续播放?

什么是IntentService?有何优点?

什么时候使用Service?

请描述一下Intent 和 Intent Filter。

Intent传递数据时,可以传递哪些类型数据?

说说Activity,Intent,Service是什么关系 。

请描述一下Broadcast Receiver。

在manifest和代码中如何注册和使 用 broadcast receiver 。

请介绍下ContentProvider是如何实现数据共享的。

请介绍下Android的数据存储方式。

为什么要用ContentProvider?它和sql的实现上有什么差别?

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

谈谈UI中, Padding和Margin有什么区别?

widget相对位置的完成在antivity的哪个生命周期阶段实现。

请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。

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

请解释下Android程序运行时权限与文件系统权限的区别。

系统上安装了多种浏览器,能否指定某浏览器访问指定页面?

对多线程的运用和理解,及多线程之间handle的传值。

对android虚拟机的理解,包括内存管理机制垃圾回收机制。

Framework工作方式及原理,Activity是如何生成一个view的,机制是什么。

android本身的一些限制,比如apk包大小限制,读取大文件时的时间限。

如何加载的音乐信息,如何改善其效率。

ListView如何提高其效率?

启动应用后,改变系统语言,应用的语言会改变么?

启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别?

Android程序与Java程序的区别?

Android中Task任务栈的分配。

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

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

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

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

sim卡的EF 文件有何作用

如何判断是否有SD卡?

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

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

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

Linux中跨进程通信的几种方式 。

谈谈对Android NDK的理解。

谈谈Android的优点和不足之处。

Android系统中GC什么情况下会出现内存泄露呢?

Android UI中的View如何刷新。

简单描述下Android 数字签名。

什么是ANR 如何避免它?

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

handler机制的原理。

android中线程与线程,进程与进程之间如何通信。

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

android中有哪几种解析xml的类,官方推荐哪种?以及它们的原理和区别。

DDMS与TraceView的区别?

res目录有默认几项resource。

android的哪个版本是一次重大的升级?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: