首页 > 阿里Android社招面试经历
头像
rapraprap
编辑于 2020-08-21 09:24
+ 关注

阿里Android社招面试经历

1、Activity的启动模式。

1)启动模式主要包括: standard, singleTop, singleTask, singleInstance.

2)标准模式在每次启动时, 都会创建实例; 三种单例模式, 会根据情况选择创建还是复用实例。在Activity启动中, 创建实例的生命周期: onCreate -> onStart -> onResume;重用实例的生命周期: onNewIntent -> onResume

3)在AndroidManifestActivity中,使用launchMode属性,可以设置启动模式,默认是standard模式;


2、Activity是如何缓存的?

3、AndroidService的生命周期有两种启动方法,有什么区别?

4、怎么保证service不被杀死/进程保活?

1Service设置成START_STICKYonStartCommand方法中),kill 后会被重启(等待5秒左右),重传Intent,保持与重启前一样

2)通过 startForeground将进程设置为前台进程,做前台服务,优先级和前台应用一个级别,除非在系统内存非常缺,否则此进程不会被 kill.具体实现方式为在service中创建一个notification,再调用void android.app.Service.startForeground(int id,Notificationnotification)方法运行在前台即可。

3)双进程Service:让2个进程互相保护,其中一个Service被清理后,另外没被清理的进程可以立即重启进程。

4AlarmManager不断启动service。该方式原理是通过定时警报来不断启动service,这样就算service被杀死,也能再启动。同时也可以监听网络切换、开锁屏等广播来启动service


5、动画有哪几类,各有什么特点,请简单分析下属性动画的实现原理。

6、请简述Handlerlooper机制。

7、请介绍下activty的加载过程。

8、请分析下Android的事件分发机制,请详细说下整个流程。

11Activity是事件的起点,事件分被封装成MotionEvent对象发给ActivitydispatchTouchEvent方法。

2dispatchTouchEvent内部会把事件传给setContentView指定的布局,即根布局ViewGroup

3)根布局的dispatchTouchEvent在接收到事件后调用onInterceptTouchEvent方法。

4onInterceptTouchEvent方***判断是否拦截该事件,如果拦截就将事件传给onTouchEvent方法处理。不拦截就直接把事件传给子控件。

5onTouchEvent方法负责处理事件,返回值决定是否要消费掉该事件,返回true表示以后由此控件来处理该事件,返回false表示以后也不再接收该事件。

6)当所有控件的onTouchEvent都返回false时事件由ActivityonTouchEvent来处理。


9、请分析下View的绘制流程。

10、请简述Android IPC机制及Binder原理。

11、请简要阐述下你对ClassLoader的理解/双亲委托机制。

12、请介绍下你知道的插件化框架,原理和框架。

13、请介绍下你知道的热修复框架。

AndFix、Dexposed、微信的Tinker、手机QQQFixRocooFix


14、如何加快冷启动速度?

15、Android开源框架用过多少?知道他们的具体实现吗?

更多模拟面试

全部评论

(3) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐