### Android面试题集知识点解析 #### 1. Android DVM 的进程与 Linux 进程的关系 - **DVM (Dalvik Virtual Machine)**: 每个Android应用都在自己的进程中运行,并且每个应用都有一个独立的Dalvik虚拟机实例。这意味着不同应用之间不会互相干扰,保证了应用程序的安全性和稳定性。 - **Linux 进程**: 在底层,每个DVM实际上是作为Linux中的一个进程存在的。因此,可以说DVM进程与Linux进程在概念上是相同的,即每个Android应用的运行环境实际上就是一个Linux进程。 #### 2. SIM 卡的 EF 文件的作用 - **EF (Elementary File)**: SIM卡具有专门的文件系统,用于存储各种信息。EF文件主要用于存储SIM卡中的数据,比如联系人、短信等,并与手机进行通信。这些文件对于实现SIM卡与手机之间的数据交互至关重要。 #### 3. 嵌入式操作系统的内存管理方式及其特性 - **页式管理**: 将物理内存分割成固定大小的页面,程序也被分割成相同大小的页。这种方式可以提高内存利用率,减少内存碎片。 - **段式管理**: 按照逻辑关系将程序划分成不同的段,每段可以有不同的大小。这种方式便于管理和保护数据,但可能导致内存碎片。 - **段页式管理**: 结合了页式和段式的优点,先按逻辑段划分程序,再将每个段分割成页。既提高了内存利用率,也便于管理。 #### 4. 嵌入式实时操作系统及其类型 - **嵌入式实时操作系统**: 当外部事件发生时能迅速响应并处理,确保所有实时任务都能在规定时间内完成。广泛应用于对响应时间有严格要求的领域,如工业控制、军事设备等。 - **类型**: - **软实时**: 对响应时间有一定的要求,但允许偶尔的超时。 - **硬实时**: 必须在规定时间内完成任务,否则可能引发严重后果。 - **Android操作系统**: 基于Linux内核,属于软实时操作系统,不适用于对实时性有极高要求的应用场景。 #### 5. 最长短信的字节数 - **中文短信**: 最长约为70字符(包括标点),约等于160字节。 - **英文短信**: 最长为160字符,即160字节。 #### 6. Android 动画分类及特点 - **Tween动画**: 不涉及图像的更换,而是通过对视图组件的平移、缩放、旋转、透明度变化等方式实现动画效果。 - **Frame动画**: 通过连续播放一系列图片帧来实现动画效果,类似于电影播放的原理。 - **特点**: - **Tween动画**易于实现,资源占用较少。 - **Frame动画**更复杂,需要准备多张图片,资源占用较大,但表现力更强。 #### 7. Handler 机制的原理 - **Looper**: 负责管理线程中的消息队列。 - **Handler**: 用于向消息队列发送消息或接收消息。 - **MessageQueue**: 存放线程中的消息。 - **线程**: UI线程通常是主线程,Android会在主线程中创建一个消息队列。 - **工作流程**: - Looper循环从消息队列中取出消息,并分发给相应的Handler处理。 - Handler可以通过sendMessage方法将消息发送到消息队列。 - 消息按照先进先出的原则处理。 #### 8. MVC 模式在 Android 中的应用 - **MVC (Model-View-Controller)**: 是一种设计模式,将应用程序分为三个核心部分。 - **Model**: 数据模型,负责处理数据和业务逻辑。 - **View**: 用户界面,显示数据。 - **Controller**: 控制器,处理用户输入,协调Model和View。 - **Android中的应用**: - **Event**: 用户操作触发事件,控制器根据事件更新模型或视图。 - **Model更新**: 视图会自动更新以反映模型的变化。 - **View更新**: 控制器可以直接改变视图,视图会从模型中获取最新数据来刷新显示。 #### 9. View 重绘与内存泄漏 - **View重绘**: - 通过Handler发送消息,在Handler的消息处理函数中调用invalidate或postInvalidate来触发View的重绘。 - **内存泄漏**: - **常见原因**: - 数据库Cursor未关闭。 - Adapter构造时未使用缓存的ContentView。 - Bitmap对象未及时调用recycle()释放内存。 - Activity内部对象的生命周期比Activity长。 - **调试工具**: - 使用DDMS中的HEAPSIZE查看内存使用情况,通过Data Object定位内存泄漏源头。 #### 10. Activity 的生命周期管理 - **Activity 生命周期**: - Activity的状态转换是由系统控制的,开发人员无法干预。 - 系统可能会因为资源紧张或其他原因回收Activity,此时需要保存状态(onSaveInstanceState)以备恢复。 - 使用Intent进行Activity之间的通信,实现调用与被调用的功能。 - **关键生命周期方法**: - onCreate: 创建Activity时调用。 - onStart: Activity变为可见时调用。 - onResume: Activity获得焦点并可与用户交互时调用。 - onPause: Activity失去焦点但仍可见时调用。 - onStop: Activity完全不可见时调用。 - onDestroy: Activity被销毁前调用。 - onSaveInstanceState: 在系统销毁Activity前保存状态信息。 - **注意事项**: - 在onCreate中进行初始化操作。 - 在onPause和onStop中释放资源,防止内存泄漏。 - 在onResume中恢复界面状态。 - 在onSaveInstanceState中保存重要的状态信息。
剩余7页未读,继续阅读
- 粉丝: 48
- 资源: 47
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助