温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android面试常问七道题是什么

发布时间:2022-01-12 14:43:12 来源:亿速云 阅读:157 作者:iii 栏目:大数据

这篇文章主要介绍了Android面试常问七道题是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android面试常问七道题是什么文章都会有所收获,下面我们一起来看看吧。

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、注册广播有几种方式,有何优缺点?

第一种:在清单文件中声明,添加

<receive android:name=".IncomingSMSReceiver " >
<intent-filter>
   <action android:name="android.provider.Telephony.SMS_RECEIVED")
<intent-filter>
<receiver>

第二种使用代码进行注册:

IntentFilter filter =  new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
IncomingSMSReceiver receiver = new IncomgSMSReceiver();
registerReceiver(receiver.filter);

两种注册类型的区别是:

1)第一种不是常驻型广播,也就是说广播跟随程序的生命周期。

2)第二种是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行。

关于“Android面试常问七道题是什么”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Android面试常问七道题是什么”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI