android开发面试题

找了将近两个星期的工作,面试了5家公司,罗列一下笔试或者面试时的问题,祝大家好运

1,handler机制

   答:handler执行机制:1)。在主线程中创建handler

                                        2)。子线程中借助主线程的handler传递一条message

                                        3),将message放入messagequeue即消息队列中

                                        4)。主线程的looper检測到消息队列中有消息时进行更新UI

            一个线程有唯一一个looper,唯一一个消息队列messagequeue,能够有多个handler。

主线程有默认的looper,其它线程没有。须要创建


2,开启广播方式,各自优缺点,以及android中广播存在的机制原理

    答:xml中注冊:常驻型广播,在activity创建之前就已经注冊,在activity结束之后依然存在

           代码中注冊:很驻型广播。与activity的声明周期相关。便于控制何时開始何时结束

3,怎样屏蔽掉force close弹窗

    答:參考博客:

关于程序forceclose时优雅退出解决方式

4,contentProvider使用方法


5,mvc模式

 答:mvc框架是一种框架而不是设计模式,非常多人会混淆。框架是指代码能够重用,能够用代码表示出来,而设计模式是说设计能够重用,比較抽象的概念。

          m(model)业务模型-v(view)视图-c(controller)控制器:该设计模式将业务逻辑和实现view分离开来。model管理数据。view显示视图。controller就负责当model数据发生变化时同步到view视图。


6,文件系统权限和执行时权限差别

  答:apk执行在虚拟机上时有执行时权限。仅仅有体如今文件系统上时才有Linux的权限设置


7,怎样避免recycleview载入图片乱序以及oom问题

8。三级缓存

9,动画所存在的bug

10,怎样在退出时保存activity状态

答:例如以下:

@Override
	protected void onSaveInstanceState(Bundle outState) {
		// TODO Auto-generated method stub
		
		
		String name = mNameEt.getText().toString().trim();
		String age = mAgeEt.getText().toString().trim();
		outState.putString("name",name);
		outState.putString("age", age);
         super.onSaveInstanceState(outState);
 }




11。socket通信

12,解释一下android的单线程模型

   答:android单线程模型是说android中ui的相关操作仅仅能在主线程即ui线程中进行。假设再非ui线程中更新则会报异常。


13,请说一下图片载入框架的原理

14,说一下网络协议


15,android系统的体系结构

     答:android系统分用户空间user space和内核空间kernel space两层。之所以分两层是为了更好的支持硬件。

        user space又包含:applications应用程序层,application framework应用程序框架层。external library&android runtime外部库以及执行时库层,HAL(hardware abstract layer)硬件抽象层

        kernel space包含:linux device drivers linux设备驱动层。process management进程管理。memory management内存管理。


这是工作四个月后的面试题,由于没有培训过,全然是自学,所以有的简单。有的偏

祝正在找工作的好运。!

原文地址:https://www.cnblogs.com/cynchanpin/p/7079440.html