【拼多多校园招聘】内推链接:https://careers.pinduoduo.com/campus/grad/detail?t=sLVSuAmjie,内推码:sLVSuAmjie。客户端研发工程师 期待你的加入!我们一起,无拼不青春!(通过此链接投递计入内推,内推简历优先筛选~)1、Activity的启动模式。(1)启动模式主要包括: standard, singleTop, singleTask, singleInstance.(2)标准模式在每次启动时, 都会创建实例; 三种单例模式, 会根据情况选择创建还是复用实例。在Activity启动中, 创建实例的生命周期: onCreate -> onStart -> onResume;重用实例的生命周期: onNewIntent -> onResume。(3)在AndroidManifest的Activity中,使用launchMode属性,可以设置启动模式,默认是standard模式;2、Activity是如何缓存的?3、Android的Service的生命周期有两种启动方法,有什么区别?4、怎么保证service不被杀死/进程保活?(1)Service设置成START_STICKY(onStartCommand方法中),kill 后会被重启(等待5秒左右),重传Intent,保持与重启前一样(2)通过 startForeground将进程设置为前台进程,做前台服务,优先级和前台应用一个级别,除非在系统内存非常缺,否则此进程不会被 kill.具体实现方式为在service中创建一个notification,再调用void android.app.Service.startForeground(int id,Notificationnotification)方法运行在前台即可。(3)双进程Service:让2个进程互相保护,其中一个Service被清理后,另外没被清理的进程可以立即重启进程。(4)AlarmManager不断启动service。该方式原理是通过定时警报来不断启动service,这样就算service被杀死,也能再启动。同时也可以监听网络切换、开锁屏等广播来启动service。5、动画有哪几类,各有什么特点,请简单分析下属性动画的实现原理。6、请简述Handler/looper机制。7、请介绍下activty的加载过程。8、请分析下Android的事件分发机制,请详细说下整个流程。(11)Activity是事件的起点,事件分被封装成MotionEvent对象发给Activity的dispatchTouchEvent方法。(2)dispatchTouchEvent内部会把事件传给setContentView指定的布局,即根布局ViewGroup。(3)根布局的dispatchTouchEvent在接收到事件后调用onInterceptTouchEvent方法。(4)onInterceptTouchEvent方***判断是否拦截该事件,如果拦截就将事件传给onTouchEvent方法处理。不拦截就直接把事件传给子控件。(5)onTouchEvent方法负责处理事件,返回值决定是否要消费掉该事件,返回true表示以后由此控件来处理该事件,返回false表示以后也不再接收该事件。(6)当所有控件的onTouchEvent都返回false时事件由Activity的onTouchEvent来处理。9、请分析下View的绘制流程。10、请简述Android IPC机制及Binder原理。11、请简要阐述下你对ClassLoader的理解/双亲委托机制。12、请介绍下你知道的插件化框架,原理和框架。13、请介绍下你知道的热修复框架。AndFix、Dexposed、微信的Tinker、手机QQ的QFix和RocooFix。14、如何加快冷启动速度?15、Android开源框架用过多少?知道他们的具体实现吗?