android面试题

时间:2021-04-27 11:45:18 试题 我要投稿

android面试题

  现如今,我们或多或少都会接触到试题,借助试题可以检验考试者是否已经具备获得某种资格的基本能力。一份好的试题都是什么样子的呢?下面是小编精心整理的android面试题,仅供参考,大家一起来看看吧。

  1、跨进程通信的几种方式

  (1)Intent,比如拨打电话

  (2)ContentProvider数据库存储数据

  (3)Broadcast广播通信

  (4)AIDL通信,通过接口共享数据

  2、wait和 sleep 的区别

  wait是Object的方法,wait是对象锁,锁定方法不让继续执行,当执行notify方法后就会继续执行,sleep 是Thread的方法,sleep 是使线程睡眠,让出cpu,结束后自动继续执行

  3、String,StringBuffer,StringBuilder的区别

  String不可改变对象,一旦创建就不能修改,Stringstr="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,绘制。

  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()设置线程优先级

  10、内存泄露如何查看和解决

  概念:有些对象只有有限的生命周期,当他们的任务完成之后,它们将被垃圾回收,如果在对象的生命周期本该结束的时候,这个对象还被一系列的引用,着就会导致内存泄露。

  解决方法:使用开源框架LeakCanary检测针对性解决。

  常见的内存泄露有:

  1、单例造成的内存泄露,例如单例中的Context生命周期大于本身Context生命周期。

  2、线程使用Hander造成的内存卸扣,当activity已经结束,线程依然在运行更新UI。

  3、非静态类使用静态变量导致无法回收释放造成泄露。

  4、WebView网页过多造成内存泄露。

  5、资源未关闭造成泄露,例如数据库使用完之后关闭连接。

【android面试题】相关文章:

1..net面试题

2.php面试题

3.Java面试题

4.javascript面试题

5.软件测试面试题

6.最新c#面试题

7.最新软件测试面试题