联想Android面试重点:生命周期、动画、通信与数据存储

需积分: 10 11 下载量 110 浏览量 更新于2024-09-20 收藏 120KB PDF 举报
"本文是关于联想Android面试题的整理,涵盖了Android开发中的核心知识点,包括Activity生命周期、动画类型、Handler机制、组件间通信、数据存储方式、XML解析、ListView优化、多线程、Service生命周期以及Android应用框架的理解等。" 1. Activity的生命周期:Activity的生命周期包括onCreate(), onStart(), onResume(), onPause(), onStop(), onRestart(), 和 onDestroy()。onCreate()在Activity创建时调用,是设置初始状态的地方。onStart()和onResume()使得Activity变得对用户可见并可交互。onPause()在Activity失去焦点时调用,常用于保存状态。onStop()当Activity完全不可见时调用。onRestart()发生在Activity重新启动时,而onDestroy()是Activity被彻底销毁时调用。 2. 横竖屏切换时Activity的生命周期:当设备方向改变时,系统会默认销毁并重建Activity,因此会依次调用onDestroy(),onCreate()等方法,以适应新方向的布局。 3. Android动画:Android支持两种类型的动画,属性动画(Property Animation)和视图动画(View Animation)。属性动画能改变对象的属性并实时更新视图,具有更强的灵活性;视图动画仅改变视觉效果,不改变对象的实际状态。 4. Handler机制:Handler、Message和Looper协同工作,用于在Android主线程中处理来自其他线程的消息,实现线程间的通信。Handler发送Message到Looper,Looper则负责分发消息并调用Handler的回调方法。 5. Activity、Intent和Service的关系:Activity是用户界面,Intent用于启动Activity或Service,传递数据;Service是在后台运行的组件,无用户界面,可以由Intent启动。 6. 线程间通信:Android提供了多种通信方式,如Binder(实现IPC)、Handler/Looper、BroadcastReceiver、ContentProvider以及线程间的共享变量和wait/notify等。 7. Widget相对位置:通常在Activity的onLayout()或onMeasure()方法中实现,这两个方法在视图树的测量和布局阶段调用。 8. MVC模式:Model-View-Controller模式,Model存储数据,View负责显示,Controller处理用户输入并更新Model。在Android中,Activity可以视为Controller,View是UI,Model通常是数据存储或业务逻辑。 9. 数据存储方式:Android支持SQLite数据库、SharedPreferences、文件存储、ContentProvider和网络存储等多种方式。 10. XML解析:Android提供了SAX、DOM和Pull解析器。官方推荐使用Pull解析器,因为它更高效,适用于处理大量数据。SAX是事件驱动,DOM一次性加载整个文档,而Pull解析器按需读取。 11. ListView优化:常用优化策略包括使用ViewHolder减少查找视图的成本,复用convertView,异步加载数据,以及使用Adapter的notifyDataSetChanged()通知数据变化。 12. Android多线程:Android提供了AsyncTask、HandlerThread、IntentService、Thread和Executor等工具来处理多线程任务。 13. 服务(Service)的生命周期:Service的onCreate()在Service创建时调用,onStartCommand()处理启动请求,onBind()提供 Binder 对象供客户端绑定。onDestroy()表示Service被停止。 14. Android四大组件:Activity、Service、BroadcastReceiver和ContentProvider,它们构成了Android应用的基本架构。设计这些组件主要是为了实现MVC模式,提高代码复用和模块化。 15. Android应用框架理解:Android框架层包括系统服务、UI框架、硬件抽象层等,开发者可以通过这些接口实现各种功能,如电话、联系人管理等。深入理解框架层有助于提升应用开发的效率和质量。在面试中,展示你解决实际问题的能力和项目经验也很重要。