Android面试精华:启动方式、模式与数据传输详解

需积分: 3 1 下载量 64 浏览量 更新于2024-09-14 收藏 37KB DOC 举报
在Android面试过程中,面试官经常提问一些基础且关键的问题,以评估候选人的技术理解和实践经验。以下是几个常见的面试话题: 1. Intent的启动方式及含义: Intent是Android中用于启动Activity的重要组件,面试者需要掌握多种启动模式,如: - `FLAG_ACTIVITY_BROUGHT_TO_FRONT`: 使Activity在前台显示,即使它之前被其他任务覆盖。 - `FLAG_ACTIVITY_CLEAR_TOP`: 清除任务栈顶部的Activity,但保留历史记录。 - `FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET`: 当任务被重置(如回退键操作)时,清除整个任务栈。 - `FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS`: 不将Activity添加到最近任务列表。 - `FLAG_ACTIVITY_MULTIPLE_TASK`: 启动新任务并允许多个实例。 - `FLAG_ACTIVITY_NEW_TASK`: 创建新的Activity实例,替换当前的任务。 2. Activity和Task的启动模式与affinity: - `standard`:默认行为,一个Activity在一个Task中单独存在。 - `singleTop`:多个实例共享一个Activity,新请求只会替换最顶层。 - `singleTask`:每个实例有自己的Task,但可以有多个实例。 - `singleInstance`:所有实例都在同一个Task,且只有一个实例。 对于`taskAffinity`属性,它定义了任务的关联性,有助于管理任务间的切换逻辑。 3. 通过Intent传递二进制数据的方法: - 使用`Serializable`接口:Java的标准序列化方法,适用于简单的数据结构。 - 实现`Parcelable`接口:Android推荐的高效方法,适用于大型对象或性能敏感场景,如Bitmap。 4. Android应用的入口点: Android应用的真正入口点是`Application`的`onCreate()`方法,而不是Activity。虽然Activity是用户界面的核心,但应用程序必须至少有一个`Application`来管理全局生命周期。即使没有Activity,`Application`仍然是启动的第一步。 5. XML解析器的掌握: Android支持多种XML解析器: - `XmlPullParser` (也称为SAX解析器):基于事件驱动的解析器,适合处理大文件。 - `SAX`:简单API for XML,与`XmlPullParser`类似,适合迭代式解析。 - `DOM`:文档对象模型,将整个XML文档加载到内存中,适合交互式查询。 6. SQLite的事务与性能优化: SQLite支持事务,通过`BEGIN`, `COMMIT`, 和 `ROLLBACK`语句控制数据操作的原子性。为了提高性能,可以考虑以下策略: - 尽量减少数据库连接的开闭,使用`Connection Pooling`。 - 使用`CREATE INDEX`创建索引以加速查询。 - 避免不必要的全表扫描,针对频繁的查询字段进行优化。 - 适当设计数据表结构,避免冗余数据。 掌握这些知识点不仅可以帮助你顺利通过Android面试,还能提升实际开发中的效率和代码质量。建议在学习过程中多动手实践,结合官方文档和实际项目经验加深理解。