十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍了Android面试常问七道题是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android面试常问七道题是什么文章都会有所收获,下面我们一起来看看吧。
成都创新互联是一家专业提供延长企业网站建设,专注与成都网站建设、成都网站设计、H5技术、小程序制作等业务。10年已为延长众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
1、Android的四大组件以及作用
Activity:Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它需要为保持各界面的状态,做很多持久化的事情,妥善管理生命周期以及一些跳转逻辑。
service:后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的动作,定义好需要接受的Intent提供同步和异步的接口。
Content Provider:是Android提供的第三方应用数据的访问方案,对外提供数据,屏蔽内部数据的存储细节,向外提供统一的借口模型,大大简化上层应用对数据的整合提供了更方便的途径。
BroadCast Receiver:接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型。
2、描述下Activity的生命周期?
Activity的生命周期方法有:onCreate()、onStart()、onReStart()、onResume()、onPause()、onStop()、onDestory();
可见生命周期:从onStart()直到系统调用onStop()
前台生命周期:从onResume()直到系统调用onPause()
屏幕旋转时的Activity生命周期:
不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次;
设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次;
设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法。
3、ListView优化有哪几种方式?
1)ListView中item的布局至关重要,必须尽可能的减少使用的控件,布局。
2)RelativeLayout是绝对的利器,通过它可以减少布局的层次。
3)同时要尽可能的复用控件,这样可以减少ListView的内存使用,减少滑动时GC次数。
4)ListView的背景色与cacheColorHint设置相同颜色,可以提高滑动时的渲染性能。
5)getView方法中不能做复杂的逻辑计算,特别是数据库操作,否则会严重影响滑动时的性能。
4、解释下Handler的运行机制?
Message,理解为线程间交流的信息
Handler,是Message的主要处理者,负责Message的发送和执行处理
Message Queue,用来存放通过Handler发布的消息,按照先进先出执行
Looper ,是每条线程里的Message Queue的管家
Handler一般在主线程中创建,子线程通过处理器对象的sendMessage发消息到
MessageQueue(消息队列)里,主线程中已经包含了一个Looper(轮循器),Looper是死循环的,会一直轮询消息队列,看是否有Message(消息) ,如果有,轮询器会把消息对象传给Handler(消息处理器),然后调用handlerMessage处理该消息,进而更新UI。
5、什么是ANR?如何避免ANR异常?
ANR:Application Not Responding。在Android中,活动管理器和窗口管理器这两个系统服务负责监视应用程序的响应,当用户操作的在5s内应用程序没能做出反应,BroadcastReceiver在10秒内没有执行完毕,就会出现应用程序无响应对话框,就是ANR。
避免方法:Activity应该在它的关键生命周期方法(如onCreate()和onResume())里尽可能少的去做创建操作。潜在的耗时操作,例如网络或数据库操作,或者高耗时的计算如改变位图尺寸,应该在子线程里(或者异步方式)来完成。主线程应该为子线程提供一个Handler,以便完成时能够提交给主线程。
6、Android中三种动画,特点和区别是什么?
Android 中的动画有帧动画,补间动画,属性动画。
帧动画:一张张图片不断的切换,形成动画效果,类似小时候的电影。很多应用的loading是采用这种方式。
补间动画:是对某个View进行一系列的动画的操作,包括淡入淡出(Alpha),缩放(Scale),平移(Translate),旋转(Rotate)四种模式。
属性动画:属性动画不再仅仅是一种视觉效果了,而是一种不断地对值进行操作的机制,并将值赋到指定对象的指定属性上,可以是任意对象的任意属性。
7、注册广播有几种方式,有何优缺点?
第一种:在清单文件中声明,添加
第二种使用代码进行注册:
IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED"); IncomingSMSReceiver receiver = new IncomgSMSReceiver(); registerReceiver(receiver.filter);
两种注册类型的区别是:
1)第一种不是常驻型广播,也就是说广播跟随程序的生命周期。
2)第二种是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行。
关于“Android面试常问七道题是什么”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Android面试常问七道题是什么”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注创新互联行业资讯频道。