From:http://blog.csdn.net/yddido/article/details/6607485
- 什么是Activity?
- Activity是Android程序的4大组件之一。
- Activity是Android程序的表示层。程序的每一个显示屏幕就是一个Activity。
- 学过WEB开发的同学,可以把Activity理解成网页中的一个JSP文件;或者你可以把它理解成一个Windows的窗口。
- 下面看一下Activity类的继承关系:
- 从这里可以看到Activity是Context类的子类
- 请描述一下Activity生命周期。
- 手机最重要也是最基础的功能是打电话,也就意味着电话来的时候可能随时要把现在的程序暂停,如果电量不足的时候也可能随时要把现有程序关闭;因此Android程序和电脑上的程序有所不同,具体到Activity,Activity的生命周期不是自身控制的,而是由Android系统控制的。
- 在android中Activity有四种基本状态:
- 1、Running
- 位于屏幕最前端时,此时处于可见状态,和用户可交互的状态。
- 2、Paused
- 当Acitivy被另一个透明的或者非全屏的Activity覆盖时的状态叫Paused状态,虽然可见但不可交互。
- 3、Stop
- 当Activity被另外一个Activity覆盖、界面不可见时处于Stop状态。
- 4、Killed
- Activity被系统杀死或者跟本没启动时就是Killed状态。
- 我们下面看一下Activity的生命周期:
- Activity栈:
- Android通过Activity栈的方式来管理Activity。
- 正在运行的Activity 处在在栈的最顶端,它是运行状态的;
- 当有新Activity进入屏幕最上端时,原来的Activity就会被压入第二层,如果他的屏幕没有被完全遮盖,那么他处于Pause状态,如果他被遮盖那么他处于Stop状态。
- 当然不管你出于任何一层,都可能在系统觉得资源不足时被强行关闭,当然关闭时在栈底的程序最先被关闭。
- 譬如:当你在程序中调用 Activity.finish()方法时,结果和用户按下 BACK 键一样:他告诉 Activity Manager该Activity实例可以被“回收”。随后 Activity Manager 激活处于栈第二层的 Activity 并重新入栈,把原 Activity 压入到栈的第二层,从 Running 状态转到 Paused 状态。
- 两个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);
- 横竖屏切换时候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的哪个版本是一次重大的升级?