file-type

Android 开发面试题精讲:跨进程通信、UI 绘制、JNI 及音视频处理

DOCX文件

下载需积分: 0 | 76KB | 更新于2024-06-23 | 145 浏览量 | 0 下载量 举报 收藏
download 立即下载
Android 面试题知识点总结 Android 作为移动操作系统,拥有广泛的应用场景和技术领域。以下是 Android 相关知识点总结: **跨进程通信** 跨进程通信是 Android 中的一种重要机制,用于在不同的进程之间进行数据交换。常见的跨进程通信方式有四种: 1. Intent:通过 Intent 可以实现跨进程通信,例如拨打电话。 2. ContentProvider:ContentProvider 是 Android 中的一种存储机制,用于存储数据,可以在不同的进程之间共享数据。 3. Broadcast:Broadcast 是一种广播机制,用于在不同的进程之间进行数据传输。 4. AIDL:AIDL 是 Android 中的一种接口定义语言,用于实现跨进程通信,可以通过接口共享数据。 **wait 和 sleep 的区别** wait 和 sleep 是两个常用的线程控制方法,但它们有着不同的作用: 1. wait:wait 是 Object 的方法,用于使当前线程等待,直到被 notify。wait 是对象锁,锁定方法不让继续执行,直到执行 notify 方法后继续执行。 2. sleep:sleep 是 Thread 的方法,用于使当前线程睡眠,释放 CPU,结束后自动继续执行。 **String、StringBuffer 和 StringBuilder 的区别** String、StringBuffer 和 StringBuilder 是三种不同的字符串操作类,它们之间有着不同的特点: 1. String:String 是不可改变的对象,一旦创建就不能修改。 2. StringBuffer:StringBuffer 是可修改的对象,可以在原有基础上进行修改,常用于多线程环境下。 3. StringBuilder:StringBuilder 是可修改的对象,执行效率高于 StringBuffer,但不安全,常用于单线程环境下。 **View 和 SurfaceView 的区别** View 和 SurfaceView 是 Android 中的两种视图控件,它们之间有着不同的特点: 1. View:View 是基于主线程刷新 UI 的控件,用于显示静态内容。 2. SurfaceView:SurfaceView 是基于子线程刷新 UI 的控件,用于显示动态内容,例如视频播放。 **View 的绘制原理** View 的绘制原理可以分为三步: 1. measure:计算视图的大小。 2. layout:提供视图要显示的位置。 3. draw:绘制视图。 **JNI 简介** JNI(Java Native Interface)是 Java 和 C 语言之间的桥梁,用于实现 Java 和 C 语言之间的交互。JNI 的主要应用场景包括: 1. 安全性:由于 Java 是一种半解释语言,可以被反编译出来,因此重要涉及安全的代码就使用了 C 语言。 2. 底层功能调用:许多底层功能调用 C 语言都实现了 Java 没必要重复造轮子。 **TCP、UDP 和 Socket** TCP、UDP 和 Socket 是三种不同的网络通信协议: 1. TCP:TCP 是一种连接式协议,需要三次握手和四次挥手完成数据传输。 2. UDP:UDP 是一种无连接式协议,仅需要知道 IP 地址和端口号,即可发送数据,不关心数据是否发送成功。 3. Socket:Socket 是一种不同计算机之间的实时连接,例如传送文件、即时通讯。 **音视频相关类** 音视频相关类可以分为三个方面: 1. 视频录制方面:Camera 摄像头录制视频类,MediaProjection 屏幕录制视频类。 2. 编码方面:MediaCodec,MediaRecorder。 3. 预览方面:SurfaceView,GLSurfaceView,TextureView,VideoView。 **进程和线程的区别** 进程和线程是两个不同的概念: 1. 进程:进程是一个程序的实例,包括多个线程。 2. 线程:线程是进程中的一个执行单元,可以提高执行效率。

相关推荐