Android面试必备:知识点总结与内存管理

4星 · 超过85%的资源 需积分: 3 3 下载量 137 浏览量 更新于2024-07-23 收藏 556KB DOC 举报
"Android面试大总结" 在Android面试中,开发者需要掌握的关键知识点涵盖了多个领域,包括UI刷新机制、内存管理、性能优化以及Activity生命周期。以下是对这些知识点的详细阐述: 1. **View的刷新** 当需要更新View时,通常会使用Handler(处理者)配合Message(消息)进行异步通信。在需要刷新的地方,可以调用`handler.sendMessage()`发送一个消息,然后在Handler的`handleMessage()`方法中处理消息,通过调用`invalidate()`或`postInvalidate()`方法来通知View需要重新绘制。这两个方法的区别在于`invalidate()`会在当前线程中立即触发重绘,而`postInvalidate()`则会在UI线程的下一次遍历中进行。 2. **GC内存泄露** 内存泄露是Android开发中常见的问题,可能导致应用性能下降甚至崩溃。以下是几种常见的内存泄露场景: - **未关闭Cursor**:当使用SQLite数据库查询后,忘记关闭Cursor,会导致其占用的资源无法被释放。 - **Adapter使用不当**:创建自定义Adapter时,如果直接在getView()中创建新的View,可能会导致内存泄露。最佳实践是复用convertView,减少不必要的对象创建。 - **Bitmap管理**:Bitmap对象如果不使用,应调用`recycle()`方法手动释放内存,尤其是在低内存设备上。 - **Activity生命周期问题**:若Activity中的对象生命周期长于Activity本身,可能导致内存泄露,例如静态变量引用的Activity实例。 3. **Listview优化** 为了提高ListView的性能,应减少视图对象的创建,充分利用convertView。可以通过创建一个静态内部类来缓存和重用视图,从而在`getView()`方法中更高效地处理视图的复用。 4. **Activity的理解** Activity是Android应用的主要组件,它是用户与应用交互的界面。每个Activity都对应一个布局文件,负责展示各种控件。Activity是Context的子类,提供了与系统服务交互的能力。 Activity的生命周期分为几个关键状态: - `onCreate()`:在这里初始化界面和数据,创建布局。 - `onStart()`:Activity变得可见但不可交互。 - `onResume()`:Activity变得可见且可交互,用户可以直接与之交互。 - `onPause()`:当Activity被遮挡或者用户离开时调用,停止执行,但仍然可见。 - `onStop()`:当Activity完全不可见时调用,停止所有前台操作。 - `onDestroy()`:Activity即将被销毁。 面对不同情况,如来电中断,Activity的生命周期会有不同的流转。如果来电创建的Activity是全屏的,那么原Activity会经历`onPause` -> `onStop`;如果是透明或对话框主题的Activity,只会调用`onPause`,恢复时则调用`onResume`。 以上是Android面试中常见的问题和答案,理解并掌握这些知识对于成为一名优秀的Android开发者至关重要。在实际开发中,还应关注性能监控、安全性和最新技术趋势,如Jetpack库的使用、Kotlin语言的应用以及响应式编程等。