Android面试必备:BroadcastReceiver、DVM与Service解析

需积分: 0 5 下载量 15 浏览量 更新于2024-09-10 收藏 32KB DOC 举报
"一套android面试题,涉及上层和底层驱动,比较基础,适合初学者和面试者" 在Android面试中,通常会涵盖多个关键领域的知识,包括但不限于组件交互、内存管理、性能优化、UI设计原则以及系统服务等。以下是根据题目内容解析的一些核心知识点: 1. **BroadcastReceiver**: 广播接收器是Android系统中用于接收系统或应用广播事件的组件。BroadcastReceiver有两种注册方式:静态注册(在AndroidManifest.xml中声明)和动态注册(在代码中实现)。静态注册的BroadcastReceiver在应用启动时就会创建,即使应用不在后台也能接收到广播;动态注册的BroadcastReceiver则需要在运行时注册,一旦应用关闭,接收器就不再生效。BroadcastReceiver没有提供可视化界面来显示广播信息,它主要用于接收并响应广播消息。有序广播(Ordered Broadcast)可以被拦截并停止,而普通广播(Normal Broadcast)则不能。 2. **Android 进程与 DVM** (Dalvik Virtual Machine): 每个Android应用程序都在自己的进程中运行,并且拥有一个独立的Dalvik虚拟机实例。Dalvik虚拟机是Android早期版本使用的运行时环境,每个DVM实例都是Linux系统中的一个进程。因此,DVM与Linux进程可以看作是同一个概念。在Android 5.0之后,Dalvik被ART (Android Runtime)所取代,但基本原理保持不变。 3. **Intent**: Intent是Android中非常重要的一个概念,它用于表示应用中的一个意图,即想要执行的动作。Intent可以实现界面间的切换,也可以用来启动服务或者传递数据。它可以包含动作(action)、数据(data)以及其他元数据,从而连接四大组件(Activity、Service、BroadcastReceiver、ContentProvider)。 4. **Service 生命周期**: Service是Android的一种后台运行组件,没有用户界面。它的生命周期主要由onCreate()、onStartCommand()和onDestroy()等方法控制。当服务首次启动时,会先调用onCreate(),然后调用onStartCommand()。如果服务已经启动,onCreate()不会再调用,只会再次执行onStartCommand()。服务的停止通常通过stopSelf()或stopService()方法实现。 5. **四大组件**:Activity、Service、BroadcastReceiver和ContentProvider是Android应用的基本构建块。Activity代表用户界面,Service负责后台任务,BroadcastReceiver用于接收广播事件,ContentProvider则用于管理应用间的数据共享。 6. **Android 底层驱动**:除了上层应用开发,面试也可能涉及Android的底层驱动知识,如Linux内核、硬件抽象层(HAL)、系统服务等。这些内容涉及到如何与硬件交互、系统级的性能优化和系统稳定性等方面。 这些知识点只是Android面试中的一部分,实际面试可能还会涉及其他主题,例如内存管理、性能优化(如内存泄漏检测、ANR问题、电量优化)、网络编程、安全性、线程同步、设计模式等。对于初学者和面试者来说,全面理解和熟练掌握这些基础概念至关重要。