android面试题整理

来源:互联网 发布:艾默生环境优化怎么样 编辑:程序博客网 时间:2024/04/27 20:07

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

  1. 什么是Activity?
    Activity是Android程序的4大组件之一。Activity是Android程序的表示层。程序的每一个显示屏幕就是一个Activity。学过WEB开发的同学,可以把Activity理解成网页中的一个JSP文件;或者你可以把它理解成一个Windows的窗口。下面看一下Activity类的继承关系:
    从这里可以看到Activity是Context类的子类
  2. 请描述一下Activity生命周期。
    手机最重要也是最基础的功能是打电话,也就意味着电话来的时候可能随时要把现在的程序暂停,如果电量不足的时候也可能随时要把现有程序关闭;因此Android程序和电脑上的程序有所不同,具体到Activity,Activity的生命周期不是自身控制的,而是由Android系统控制的。在android中Activity有四种基本状态:1、Running位于屏幕最前端时,此时处于可见状态,和用户可交互的状态。2、Paused当Acitivy被另一个透明的或者非全屏的Activity覆盖时的状态叫Paused状态,虽然可见但不可交互。3、Stop当Activity被另外一个Activity覆盖、界面不可见时处于Stop状态。4、KilledActivity被系统杀死或者跟本没启动时就是Killed状态。我们下面看一下Activity的生命周期:
    Activity栈:Android通过Activity栈的方式来管理Activity。
    正在运行的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/
  3. 两个Activity之间跳转时必然会执行的是哪几个方法。
    startActivity(Intent intent) ;  startActivityForResult (Intent intent, int requestCode) ;onActivityResult (int requestCode, int resultCode, Intent data); setResult(int resultCode);
    我在工作中使用的方式:
    Intent intent = new Intent();intent.setClass(this.xxActivity,xxxActivity.class);this.startActivity(intent);
  4. 横竖屏切换时候Activity的生命周期。
  5. 如何将一个Activity设置成窗口的样式。
  6. 你后台的Activity被系统 回收怎么办?
  7. 如何退出Activity?如何安全退出已调用多个Activity的Application?
  8. 如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?
  9. 两个Activity之间怎么传递数据?
  10. 怎么让在启动一个Activity是就启动一个service?
  11. 同一个程序,但不同的Activity是否可以放在不同的Task任务栈中?
  12. Activity怎么和service绑定,怎么在activity中启动自己对应的service?
  13. 什么是Service以及描述下它的生命周期。
  14. Service有哪些启动方法,有什么区别,怎样停用Service?
  15. 不用service,B页面为音乐播放,从A跳转到B,再返回,如何使音乐继续播放?
  16. 什么是IntentService?有何优点?
  17. 什么时候使用Service?
  18. 请描述一下Intent 和 Intent Filter。
  19. Intent传递数据时,可以传递哪些类型数据?
  20. 说说Activity,Intent,Service是什么关系 。
  21. 请描述一下Broadcast Receiver。
  22. 在manifest和代码中如何注册和使 用 broadcast receiver 。
  23. 请介绍下ContentProvider是如何实现数据共享的。
  24. 请介绍下Android的数据存储方式。
  25. 为什么要用ContentProvider?它和sql的实现上有什么差别?
  26. 请介绍下Android中常用的五种布局。
  27. 谈谈UI中, Padding和Margin有什么区别?
  28. widget相对位置的完成在antivity的哪个生命周期阶段实现。
  29. 请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。
  30. AIDL的全称是什么?如何工作?能处理哪些类型的数据?
  31. 请解释下Android程序运行时权限与文件系统权限的区别。
  32. 系统上安装了多种浏览器,能否指定某浏览器访问指定页面?
  33. 对多线程的运用和理解,及多线程之间handle的传值。
  34. 对android虚拟机的理解,包括内存管理机制垃圾回收机制。
  35. Framework工作方式及原理,Activity是如何生成一个view的,机制是什么。
  36.  android本身的一些限制,比如apk包大小限制,读取大文件时的时间限。
  37. 如何加载的音乐信息,如何改善其效率。
  38. ListView如何提高其效率?
  39. 启动应用后,改变系统语言,应用的语言会改变么?
  40. 启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别?
  41. Android程序与Java程序的区别?
  42. Android中Task任务栈的分配。
  43. 在Android中,怎么节省内存的使用,怎么主动回收内存?
  44. 不同工程中的方法是否可以相互调用?
  45. 在Android中是如何实现判断区分通话记录中的电话状态,去电,来电、未接来电?
  46. dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念
  47. sim卡的EF 文件有何作用
  48. 如何判断是否有SD卡?
  49. 嵌入式操作系统内存管理有哪几种, 各有何特性。
  50. 什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?
  51. 一条最长的短信息约占多少byte? 
  52. Linux中跨进程通信的几种方式 。
  53. 谈谈对Android NDK的理解。
  54. 谈谈Android的优点和不足之处。
  55. Android系统中GC什么情况下会出现内存泄露呢?
  56. Android UI中的View如何刷新。
  57. 简单描述下Android 数字签名。
  58. 什么是ANR 如何避免它?
  59. android中的动画有哪几类,它们的特点和区别是什么?
  60. handler机制的原理。
  61. android中线程与线程,进程与进程之间如何通信。
  62. 说说mvc模式的原理,它在android中的运用。
  63. android中有哪几种解析xml的类,官方推荐哪种?以及它们的原理和区别。
  64. DDMS与TraceView的区别? 
  65. res目录有默认几项resource。
  66. android的哪个版本是一次重大的升级?

原创粉丝点击