Android面试必备:核心知识点详解

需积分: 10 1 下载量 194 浏览量 更新于2024-07-22 收藏 158KB DOC 举报
"Android技术面试整理" 这篇资料涵盖了Android技术面试中常见的问题,旨在帮助面试者准备并顺利通过面试。以下是对这些问题的详细解释: 1. Android的四大组件包括Activity(活动)、Service(服务)、BroadcastReceiver(广播接收器)和ContentProvider(内容提供者)。它们分别是应用程序与用户交互的主要接口、在后台执行长时间任务、接收全局广播事件以及与其他应用分享数据的机制。 2. Android常用的五种布局有LinearLayout(线性布局)、RelativeLayout(相对布局)、FrameLayout(帧布局)、GridLayout(网格布局)和ConstraintLayout(约束布局),它们分别用于不同类型的布局需求。 3. Android中的动画分为属性动画(Property Animation)和视图动画(View Animation)。属性动画可以改变对象的属性,支持3D效果,而视图动画仅改变视觉效果,不改变对象实际状态。 4. 解析XML的类主要有DOM解析、SAX解析和Pull解析。DOM解析将整个XML文档加载到内存,适合小文件;SAX解析是事件驱动,逐行读取,节省内存;Pull解析类似SAX,但更简洁,官方推荐使用。 5. ListView的优化方案包括使用ViewHolder模式减少视图查找、复用convertView、异步加载数据、避免过多的嵌套滚动和适配器的正确使用。 6. Android的数据存储方式包括 SharedPreferences(首选项)、SQLite(数据库)、文件存储、内部存储和外部存储、ContentProvider等。 7. Activity的启动模式有标准模式(SingleTop)、栈顶复用模式(SingleTask)、单实例模式(SingleInstance)和单任务模式(SingleActivity)。它们决定了Activity如何在任务栈中创建和管理。 8. 与Activity和Task相关的Intent启动方式有显式Intent和隐式Intent。显式Intent指定具体目标,隐式Intent根据Intent Filter匹配目标。 9. Activity的生命周期包括onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy(),以及在配置变更时的onSaveInstanceState()和onRestoreInstanceState()。 10. 屏幕旋转时,Activity默认会重建,生命周期表现为onSaveInstanceState() -> onDestroy() -> onCreate() -> onStart() -> onResume()。 11. Service可以通过startService()启动,stopService()停止。Service不会随Activity销毁而销毁,即使Activity被关闭,Service依然运行。 12. 注册广播有两种方式:静态注册(在AndroidManifest.xml中)和动态注册(在代码中)。静态注册无需关心生命周期,但可能导致内存泄漏;动态注册在不需要时可手动解除,但必须在运行时注册。 13. Message、Handler、Message Queue和Looper构成消息循环机制,它们协同工作,使UI线程和工作线程能异步通信。 14. Activity、Intent、Intent Filter、Service、Broadcast和BroadcastReceiver是Android中的核心组件,分别负责界面展示、数据传递、过滤、后台服务、全局事件分发和事件接收。 15. MVC模式将应用划分为Model(模型)、View(视图)和Controller(控制器)。在Android中,通常使用MVP或MVVM模式,因为原生Android架构并不完全符合MVC。 16. ANR(Application Not Responding)表示应用无响应,通常是主线程阻塞导致。避免ANR的关键是确保主线程的流畅运行。 17. ForceClose是应用崩溃的用户反馈,通常由未捕获的异常引起。应通过try-catch语句捕获异常并处理,或者使用Log记录异常信息。 18. Android系统架构包括Linux内核、硬件抽象层(HAL)、系统库和服务、应用程序框架和应用程序。 19. ContentProvider通过实现特定接口,让应用能够公开自己的数据供其他应用访问。 20. 即使Android API没有声明抛出异常,也可能在运行时抛出RuntimeException。遇到这种情况,需要进行异常处理,避免程序崩溃。 21. IntentService的优点是自动在单独的工作线程中运行,服务执行完毕后自动停止,避免资源浪费。 22. 保存Activity状态,可以使用onSaveInstanceState()保存临时数据,onCreate()或onRestoreInstanceState()恢复。对于防止后台Activity被回收,可以考虑使用Task Affinity或后台Service。 23. 将Activity设置为窗口样式,可以修改主题样式,例如设置透明背景或无边框。 24. 退出Activity使用finish()方法,安全退出多Activity应用,需要按逆序依次finish()所有Activity,或使用FLAG_ACTIVITY_CLEAR_TOP。 25. AIDL(Android Interface Definition Language)用于跨进程通信,定义接口,系统自动生成相应的Java代码。它能处理基本数据类型和Parcelable对象。 26. Android程序运行时权限针对用户在安装或运行时授予,文件系统权限则涉及文件的读写操作,两者独立管理,运行时权限更关注用户隐私和安全。 这些知识点覆盖了Android开发的基础和进阶部分,是面试中常见的问题,掌握它们有助于提高面试成功率。