Android基础篇
-
- 前言
- 1、Android点击应用图标如何启动APP?
- 2、Activity四种启动模式
- 3、Android横竖屏切换activity生命周期?
- 4、PathClassLoader和DexClassLoader的区别?
- 5、Android中Intent传递数据的大小限制?如何解决该问题?
- 6、Android有哪些Context的相关类?
- 7、IntentService和Service有什么区别?
- 8、Service启动方式和对应的生命周期以及区别?
- 9、BroadcastReceiver有哪几种类型?
- 10、Android有哪些进程?
- 11、Android进程和线程的区别
- 12、Android线程间通信有哪些方式?
- 13、Android进程间通信有哪些方式?
- 14、如何进行进程保活
- 15、什么 是序列号和反序列化?
- 16、Serializable和Parcelable的区别
- 17、64k问题的产生原因和如何解决?
- 18、Android 中的动画有哪些?
- 附:Android基础思维导图
- 更多精彩文章,请关注:
前言
“有人觉得自己不找工作,不需要看面试题,真的是这样吗?试想?如果你一直待在一家公司,都不知道外面的情况如何的话,那是很可怕的,至少我这么认为。看面试题的目的不一定要跳槽,而是知道自己的优缺点是什么,知道市场需要什么样的人,只有这样才能和社会接上轨迹!”
1、Android点击应用图标如何启动APP?
-
1.点击应用图标后会去启动应用的LauncherActivity。
-
2.如果LauncherActivity所在进程没有创建,就会创建新进程(以Socket形式通知Zygote进程去fork新进程)。
-
3.整体的流程就是Activity的启动流程。
2、Activity四种启动模式
-
1.standard 默认模式,可以不用写配置。在这个模式下,都会默认创建一个新的实例。因此,在这种模式下,可以有多个相同的实例,也允许多个相同Activity叠加。
-
2.singleTop 可以有多个实例,但是不允许多个相同Activity叠加。即,如果Activity在栈顶的时候,启动相同的Activity,不会创建新的实例,而会调用其onNewIntent方法。
-
3.singleTask 只有一个实例。在同一个应用程序中启动他的时候,若Activity不存在,则会在当前task创建一个新的实例,若存在,则会把task中在其之上的其它Activity destory掉并调用它的onNewIntent方法。
-
4.singleInstance 只有一个实例,并且这个实例独立运行在一个task中,这个task只有这个实例,不允许有别的Activity存在。
3、Android横竖屏切换activity生命周期?
横竖屏切换根据Android系统版本会有差异,具体细节请参考:Activity横竖屏切换生命周期详解
- 1.AndroidManifest.xml不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,
切横屏时会执行一次,切竖屏时会执行两次。生命周期如下:
onSaveInstanceState-onPause-onStop-onDestory-onCreate-onStart-onRestoreInstanceState-onResume - 2.设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次。生命周期如下:onSaveInstanceState-onPause-onStop-onDestory-onCreate-onStart-onRestoreInstanceState-onResume
- 3.设置Activity的android:configChanges="orientation|keyboardHidden