2011年Android面试必备知识点详解
需积分: 3 91 浏览量
更新于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开发的关键知识点,对于面试准备非常有帮助。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2014-07-05 上传
2012-06-03 上传
点击了解资源详情
点击了解资源详情
cesc_v_diyth
- 粉丝: 0
- 资源: 2
最新资源
- PyTorch中的YOLOv3> ONNX> CoreML> iOS-Python开发
- Molten:用于zipkin和opentracing的php探针
- pandas_genomics-0.11.2.tar.gz
- W7D1-项目:CSS选择器,大O,字谜,两次和,加窗最大范围
- PyFJCore:具有NumPy支持的FastJet Core功能的Python包装器
- dotfiles:我的项目点文件
- pandas_geojson-1.0.0.tar.gz
- Python备忘单-Python开发
- 【IT十八掌徐培成】Java基础第02天-04.运算符-移位运算-逻辑运算.zip
- 装饰:PocketMine插件可为玩家购买的世界添加超棒的自定义几何!
- 层流:一种适用于多人游戏的简单,半可靠的UDP协议
- image uploader-crx插件
- Math
- Ola-Mundo:第一个Git和GitHub课程存储库
- pandas_genomics-0.12.1.tar.gz
- DGL是易于使用,高性能和可扩展的Python软件包,用于图的深度学习-Python开发