2011年Android面试必备知识点详解
需积分: 3 162 浏览量
更新于2024-07-24
收藏 154KB DOC 举报
"这是一份关于2011年Android技术面试的综合整理,包含了百度、新浪、中科软等知名公司的面试题目及详细答案,旨在帮助求职者准备Android开发者职位的面试。"
这篇摘要中涵盖了多个Android开发的重要知识点,以下是详细说明:
1. **Android四大组件**:Activity(活动)、Service(服务)、BroadcastReceiver(广播接收器)和ContentProvider(内容提供者)。Activity是用户界面,Service在后台执行任务,BroadcastReceiver用于接收系统或应用广播事件,ContentProvider负责数据共享。
2. **布局管理器**:LinearLayout(线性布局)、RelativeLayout(相对布局)、FrameLayout(帧布局)、TableLayout(表格布局)和GridLayout(网格布局)。它们分别用于线性排列、基于相对位置定位、单个元素显示、表格结构和网格化展示组件。
3. **动画类型**:Tween动画(平滑变化)和帧动画(连续播放多张图片形成动画)。Tween动画包括平移、旋转、缩放和透明度变化,帧动画则适合做连续动作效果。
4. **XML解析**:DOM解析器、SAX解析器和Pull解析器。DOM一次性加载整个XML文档,占用内存大;SAX是事件驱动,按需解析,内存占用小;Pull解析器类似SAX,但更简单且性能更好,官方推荐使用Pull解析器。
5. **ListView优化**:使用ViewHolder设计模式减少视图查找,复用convertView,使用异步加载和缓存策略,避免过多的对象创建,以及使用SparseArray替代HashMap来存储视图状态。
6. **数据存储方式**:Shared Preferences(键值对存储)、SQLite数据库、内部/外部存储、ContentProvider和文件系统。
7. **Activity启动模式**:标准模式(SingleTop)、栈顶复用模式(SingleTask)、单实例模式(Singleton)和前台服务模式(SingleInstance)。它们决定了新Activity如何创建和管理。
8. **Intent启动方式**:显式Intent指定具体组件,隐式Intent通过Intent Filter匹配组件。涉及FLAG_ACTIVITY_NEW_TASK和FLAG_ACTIVITY_CLEAR_TOP等标志。
9. **Activity生命周期**:包括onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()等关键方法,以及配置变更(如屏幕旋转)时的生命周期调整。
10. **屏幕旋转生命周期**:屏幕旋转会导致Activity重建,onSaveInstanceState()用于保存状态,onRestoreInstanceState()恢复状态。
11. **Service操作**:通过startService()启动,stopService()或stopSelf()停止。Service在后台持续运行,即使用户离开应用。
12. **广播注册**:静态注册(在AndroidManifest.xml中)和动态注册(在代码中)。静态注册不受Activity影响,动态注册需在合适的时机注册和取消注册,系统设计广播机制是为了组件间通信和事件分发。
13. **Message组件**:Message对象携带数据,Handler处理消息,Message Queue存放消息,Looper循环读取消息队列并分发给Handler。
14. **Android组件关系**:Activity作为用户交互入口,Intent用于启动组件或传递数据,Intent Filter定义接收何种Intent,Service处理长时间后台任务,BroadcastReceiver响应广播事件。
15. **MVC模式**:Model(模型)存储数据,View(视图)显示数据,Controller(控制器)处理用户交互。Android官方推荐使用MVVM(Model-View-ViewModel)模式。
16. **ANR**:Application Not Responding,当主线程阻塞超过5秒时出现。避免办法是确保UI线程不执行耗时操作,使用AsyncTask或其他异步机制。
17. **Force Close**:程序异常终止,通常由未捕获的异常引起。通过良好的错误处理和测试可以避免。
18. **Android系统架构**:Linux内核、硬件抽象层、系统库、运行时库、应用程序框架和应用程序。每个层次都提供了不同功能和服务。
19. **ContentProvider**:作为数据共享接口,允许应用间数据交换,通过Uri访问数据。
20. **未声明异常**:虽然API没有声明,但在运行时仍可能抛出异常,例如空指针异常。应进行充分的异常处理,避免程序崩溃。
21. **IntentService优点**:在单独的工作线程中执行任务,自动停止服务,防止内存泄漏。
22. **保存Activity状态**:onSaveInstanceState()和onRestoreInstanceState(),或使用Bundle在配置变更时保存和恢复状态。
23. **Activity窗口样式**:通过改变主题Theme或修改Window属性实现。
24. **退出Activity**:调用finish(),安全退出应用需要管理Activity堆栈,确保正确关闭所有Activity。
25. **AIDL**:Android Interface Definition Language,用于进程间通信(IPC),处理基本数据类型和Parcelable对象。
26. **运行时权限**:用户在运行时授予,文件系统权限在安装时设定。运行时权限更注重用户隐私,文件系统权限控制对文件的操作。
以上内容详尽解析了Android开发的关键知识点,对于面试准备非常有帮助。
2024-01-25 上传
2022-08-03 上传
2018-04-14 上传
2014-07-05 上传
2015-07-31 上传
2015-07-15 上传
2024-11-26 上传
2024-11-26 上传
2024-11-26 上传
cesc_v_diyth
- 粉丝: 0
- 资源: 2
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录