笔者因为在找工作,所以近期最主要的任务就是准备面试,不打无准备之仗。只有你准备充分了,那么你想要的机会才有机会入你怀中。
笔者会将准备面试的学习过程记录下来,方便自己复盘的同时也希望能给一道找工作的小伙伴们少量帮助。笔者准备的内容大纲如下
那么先上个正菜预热一下QAQ
参考:Android开发艺术探究 P496
延伸:
ANR的两种机制
精确的说是ANR机制,它可以分为两部分:
ANR的一般类型
1. KeyDispatchTimeout(常见): input事件在5S内没有解决完成发生了ANR。
2. BroadcastTimeout : 前端Broadcast:onReceiver在10S内没有解决完成发生ANR。
后端Broadcast:onReceiver在60s内没有解决完成发生ANR。
3. ServiceTimeout : 前端Service:onCreate,onStart,onBind等生命周期在20s内没有解决完成发生ANR。
后端Service:onCreate,onStart,onBind等生命周期在200s内没有解决完成发生ANR
4. ContentProviderTimeout : ContentProvider 在10S内没有解决完成发生ANR
可参考此文章
onStart和onStop、onPause和onResume这两对看起来差不多,有什么区别呢?
最显著的区别在于onStart和onStop这一对是从Activity能否可见这个角度来回调的,onResume和onPause是从Activity能否位于前端这个角度来回调的。
onPause能不能执行耗时的操作?
不可以,耗时的操作应该尽量放在onStop中去做,这样可以让新的Activity尽快显示出来并切换到前端。
注意:栈顶的Activity需要先onPause后(消失于前端),新的Activity才能启动。
系统配置发生改变后,比方横竖屏切换,它的onPause、onStop、onDestroy都会被调用,同时Activity是在异常情况下终止的,系统就会在onStop方法之前调用onSaveInstanceState来保存当前Activity的状态。
在屏幕方向切换回来的时候,会依次调用onCreate、onStart、onResume方法,并可以在onRestoreInstanceState和onCrate中取出之前保存的数据并恢复。
注意: onSaveInstanceState只会在Activity被异常终止的情况下调用。
这个我知道的不是很全,Android5.0有了MaterialDesign的设计风格。Android6.0的动态权限管理。Android7.0的分屏多任务,Android8.0的画中画。
Android5.0新特性
Android6.0新特性
Android7.0新特性
Android8.0新特性