Android进阶之路Android开发Android开发经验谈

Android最全面试大纲(一)

2019-05-09  本文已影响3人  Android架构木木

文章目录:

一、Activity面试题

1、Activity是什么

Activity是四大组件之一,它提供一个界面让用户点击和各种滑动操作,这就是Activity

2、Activity四种状态

3、Activity生命周期

4、进程的优先级

5、Activity任务栈

6、Activity启动模式

7、scheme跳转协议

Android中的scheme是一种页面内跳转协议,通过定义自己的scheme协议,可以跳转到app中的各个页面

二、Fragment面试题

1、Fragment为什么被称为第五大组件

Fragment比Activity更节省内存,其切换模式也更加舒适,使用频率不低于四大组件,且有自己的生命周期,而且必须依附于Activity

2、Activity创建Fragment的方式

3、FragmentPageAdapter和FragmentPageStateAdapter的区别

4、Fragment生命周期

5、Fragment的通信

6、Fragment的replace、add、remove方法

三、Service面试题

1、Service是什么

Service是四大组件之一,它可以在后台执行长时间运行操作而没有用户界面的应用组件

2、Service和Thread的区别

3、Service启动方式

4、Service生命周期

四、Broadcast Receiver面试题

1、Broadcast Receiver是什么

Broadcast是四大组件之一,是一种广泛运用在应用程序之间传输信息的机制,通过发送Intent来传送我们的数据

2、Broadcast Receiver的使用场景

3、Broadcast Receiver的种类

4、Broadcast Receiver的实现

5、Broadcast Receiver实现机制

6、LocalBroadcastManager特点

五、WebView面试题

1、WebView安全漏洞

API16之前存在远程代码执行安全漏洞,该漏洞源于程序没有正确限制使用WebView.addJavascriptInterface方法,远程攻击者可通过使用Java反射机制利用该漏洞执行任意Java对象的方法

2、WebView销毁步骤

WebView在其他容器上时(如:LinearLayout),当销毁Activity时,需要在onDestroy()中先移除容器上的WebView,然后再将WebView.destroy(),这样就不会导致内存泄漏

3、WebView的jsbridge

客户端和服务端之间可以通过Javascript来互相调用各自的方法

4、WebViewClient的onPageFinished

WebViewClient的onPageFinished在每次完成页面的时候调用,但是遇到未加载完成的页面跳转其他页面时,就会一直调用,使用WebChromeClient.onProgressChanged可以替代

5、WebView后台耗电

在WebView加载页面的时候,会自动开启线程去加载,如果不很好的关闭这些线程,就会导致电量消耗加大,可以采用暴力的方法,直接在onDestroy方法中System.exit(0)结束当前正在运行中的java虚拟机

6、WebView硬件加速

Android3.0引入硬件加速,默认会开启,WebView在硬件加速的情况下滑动更加平滑,性能更加好,但是会出现白块或者页面闪烁的副作用,建议WebView暂时关闭硬件加速

7、WebView内存泄漏

由于WebView是依附于Activity的,Activity的生命周期和WebView启动的线程的生命周期是不一致的,这会导致WebView一直持有对这个Activity的引用而无法释放,解决方案如下

六、Binder面试题

1、Linux内核的基本知识

2、为什么使用Binder

3、Binder通信模型


Service服务端通过Binder驱动在ServiceManager的查找表中注册Object对象的add方法

4、AIDL

上一篇下一篇

猜你喜欢

热点阅读