Android面试必备知识点详解

需积分: 5 0 下载量 88 浏览量 更新于2024-11-23 收藏 4KB ZIP 举报
资源摘要信息:"javalruleetcode-Android-interview-knowledge:Android-面试知识" 1. Touch 事件传递:Android中触摸事件的传递遵循特定的流程。首先,触摸事件从Window传递到顶层View,然后逐层向下传递,直至被某个View消费。事件传递包括三个阶段:拦截(onInterceptTouchEvent),分发(dispatchTouchEvent),和消费(onTouchEvent)。开发者可以通过重写ViewGroup的onInterceptTouchEvent方法来拦截事件,或者重写View的onTouchEvent方法来消费事件。 2. ListView 的优化:ListView是Android中常用的组件,用于展示滚动列表。其优化涉及多个方面,如使用ViewHolder模式来重用视图,使用setFastScrollEnabled来启用快速滚动,以及使用异步加载和缓存图片等策略来减少界面卡顿。 3. Android内序列化的方式:Android支持多种序列化方式,包括Parcelable和Serializable。Parcelable通常用于Android内部通信,因为它更快且资源占用更少。Serializable则用于Java的序列化机制,它简单但效率较低。 4. 广播的几种方式:Android中的广播分为有序广播和无序广播。有序广播按照优先级顺序依次传递,可以被后续的接收者截断或者修改;无序广播则一次性发送给所有的接收者,接收者之间不会相互影响。 5. service生命周期,启动方式,优点,用途:Service是Android中用于执行后台任务的组件。它有两种启动方式:startService() 和 bindService()。Service的生命周期包括onCreate(), onStartCommand(), onDestroy()等回调。Service的优点在于能够在后台长时间执行任务而不影响用户界面。用途包括音乐播放、数据处理、后台任务等。 6. 进程的优先级:Android通过进程优先级来管理系统资源。优先级从高到低分别为前台进程(FG)、可见进程(VG)、服务进程(S)、后台进程(B)和空进程(E)。系统会根据资源情况和进程状态来调整进程优先级,以保证前台应用的流畅运行。 7. View的绘制过程:View的绘制过程包括三个主要步骤:测量(onMeasure),布局(onLayout),和绘制(onDraw)。onMeasure负责计算View的大小,onLayout确定View在父容器中的位置,onDraw负责在Canvas上绘制View的内容。 8. Android实现异步调用的几种方式:Android提供了多种方式实现异步任务,包括使用AsyncTask、HandlerThread、IntentService、以及最新的Jetpack中的WorkManager等。这些方式可以帮助开发者避免在主线程中执行耗时操作,防止界面卡顿。 9. handler实现:Handler是Android中处理线程间通信的主要机制。通过它可以发送消息(Message)或运行时对象(Runnable)到消息队列中,并在目标线程上进行处理。它依赖于Looper对象,后者用于循环消息队列。 10. MAT的使用:MAT(Memory Analyzer Tool)是一个用来分析Java堆内存使用的工具,它可以帮助开发者识别内存泄漏和优化内存使用。MAT通过解析heap dump文件,提供了一系列的分析功能,如直方图、支配树等。 11. traceView的使用:traceView是Android SDK中提供的一个性能分析工具。它可以用来跟踪应用程序的执行,查看方法调用的耗时和调用关系,帮助开发者识别性能瓶颈。 12. fragment的作用:Fragment是Android 3.0引入的一个组件,用于构建动态灵活的用户界面。Fragment可以包含自己的布局,有自己的生命周期,并且可以在运行时添加、移除或替换。它通常用于复杂界面的重用和适配不同屏幕尺寸。 13. 应用间调用的几种方式:在Android中,应用间的调用可以通过多种方式实现,包括使用Intent进行组件间通信(如Activity、Service、BroadcastReceiver),ContentProvider用于跨应用共享数据,以及使用AIDL进行跨进程通信等。 14. launchMode模式和区别,flag有哪些:Activity的launchMode定义了Activity的启动模式,有standard、singleTop、singleTask和singleInstance四种。它们决定了Activity在任务栈中的行为。同时,可以通过Intent flags设置Activity启动时的各种属性,如FLAG_ACTIVITY_NEW_TASK、FLAG_ACTIVITY_CLEAR_TOP等。 15. synchronized作用,修饰不同的时候的作用:synchronized是Java中的关键字,用于控制多线程对共享资源的访问。它可以用来修饰方法或代码块,确保在任何时刻只有一个线程可以执行被synchronized修饰的代码。 16. GC算法:Java虚拟机(JVM)使用多种垃圾收集(GC)算法来管理内存。常见的算法包括标记-清除(Mark-Sweep)、复制(Copying)、标记-整理(Mark-Compact)和分代收集(Generational Collection)。Android的ART或Dalvik虚拟机也有自己的GC实现,用于回收不再使用的对象,释放内存。 17. Android应用开发之所有动画使用详解:Android提供了丰富的动画支持,包括补间动画(Tween Animation)、帧动画(Frame Animation)和属性动画(Property Animation)。开发者可以利用这些动画效果来增强用户体验,如平移动画、缩放动画、淡入淡出等。 18. 图解Android - Android GUI系统(1)- 概论:图解Android系列是一本专注于Android GUI系统设计和实现的书籍。该书第一章概论部分介绍了Android GUI系统的架构和关键组件,帮助开发者理解整个系统的运作方式。 19. Android性能优化:性能优化是Android应用开发中的一个重要方面。包括内存优化、CPU优化、电池优化等。开发者可以通过减少内存泄漏、优化线程使用、合理布局、减少不必要的广播接收器等方式来提升应用性能。 20. Android Material Design:Material Design是Google提出的一套设计语言,旨在通过一致的界面元素和动效提供良好的用户体验。它强调直观、生动和灵活的界面设计,以及与不同平台和设备的兼容性。Material Design在Android开发中表现为使用特定的设计元素,如_cards_、_snackbars_、_fab_等。 21. GCRoot都有哪些:在Java中,GCRoot是指那些不能被垃圾收集器回收的引用,即垃圾收集的根节点。GCRoot包括:虚拟机栈中引用的对象、方法区中静态属性引用的对象、方法区中常量引用的对象、本地方法栈中JNI(Java Native Interface)引用的对象等。了解GCRoot对于理解垃圾收集的工作原理以及排查内存泄漏问题至关重要。