1.跨进程通信的几种方式
- Intent,比如拨打电话
- ContentProvider数据库存储数据
- Broadcast广播通信
- AIDL通信,通过接口共享数据
跨进程通信的具体方法
2.wait和 sleep 的区别
- wait是Object的方法,wait是对象锁,锁定方法不让继续执行,当执行notify方法后就会继续执行,
- sleep是Thread的方法,sleep 是使线程睡眠,让出cpu,结束后自动继续执行
.wait和 sleep 的区别具体使用
3.String,StringBuffer,StringBuilder的区别
- String不可改变对象,一旦创建就不能修改
- String str=“aaa”;
str=“bbb”; - 以上代码虽然改变了str,但是执行过程是回收str,把值赋给一个新的str
- StringBuffer创建之后,可以去修改
- StringBuilder也可修改,执行效率高于StringBuffer,不安全
- 当字符赋值少使用String
- 字符赋值频繁使用StringBuilder
- 当多个线程同步操作数据,使用StringBuffer
4.View和SurfaceView的区别
View基于主线程刷新UI,SurfaceView子线程又可以刷新UI
5.View的绘制原理
- View为所有图形控件的基类,View的绘制由3个函数完成
- measure,计算视图的大小
- layout,提供视图要显示的位置
- draw,绘制
View的绘制原理+demo的具体使用
6.简述JNI
是java和c语言之间的桥梁,由于java是一种半解释语言,可以被反编译出来,一种重要涉及安全的代码就使用了C编程,再者很多底层功能调用C语言都实现了Java没必要重复造轮子,所以定义了JNI接口的实现
7.简述TCP,UDP,Socket
- TCP是经过3次握手,4次挥手完成一串数据的传送
- UDP是无连接的,知道IP地址和端口号,向其发送数据即可,不管数据是否发送成功
- Socket是一种不同计算机,实时连接,比如说传送文件,即时通讯
8.音视频相关类
总体来说,分为几个类
- 视频录制方面,Camear摄像头录制视频类,MediaProjection屏幕录制视频类
- 编码方面,MediaCodec,MediaRecorder
- 预览方面,SurfaceView,GLSurfaceView,TextureView,VideoView
9.进程和线程的区别
概念:进程包括多个线程,一个程序一个进程,多线程的优点可以提高执行效率,提高资源利用率
创建:Thread类和Runnable接口,
常用方法有:
- start()用于启动线程
- run()调用线程对象中的run方法
- join()合并插队到当前线程
- sellp()睡眠释放cpu资源
- setPriority()设置线程优先级