一、Android进程的5个等级
1.Foreground Process 前台进程
Activity Resume()状态
Activity绑定Service,正在交互
Service生命周期正在被执行
BroadcastReceiver正在执行onReceive()
2.Visible Process 可见进程
Activity不在前端显示,但没有完全隐藏
3.Service Process 服务进程
正在运行,不在上述两种状态的Service
4.Background Process 后台进程
不可见状态
5.Empty Process 空进程
二、何为ANR,何时会产生ANR
1. 界面操作(按钮的点击)相应时间超过5秒
2.BroadcastReceiver执行超过10秒
三、如何防止ANR
将耗时操作在子线程中执行
四、Manifest文件的是什么时候加载的?
系统启动的时候 PackageManageService(系统级服务)读取Manifest信息,在系统级的共享内存中建立一信息库,可看作一张可供查询的数据库表
启动应用程序的时候,Launcher进行系统级判断,从信息库中查询Activity并进行实例化.并判断sdk版本
五、Manifest中定义的Activity,Service是什么时候实例化的?
startActivity() / 意图过滤
startService() bindService()
六、
Activity切换的时候如何保存状态?
正在短信的时候突然间来电话了需要保存
正在输入的时候切换屏幕需要保存
两个方法:
第一种方法:
系统在回收当前Activity之前会调用onSaveInstanceState()
按back不会调用此方法,按home键调用此方法
比如电话来了 一个操作打断了当前操作 当前操作由foreground变为background
重写
保存
onSaveInstanceState(Bundle outState){
if(outState!=null){
outState.putString(this.SAVE_INSTANCE_TAG,"hello");
}
super.
}
恢复:
onCreate(Bundle onSaveInstanceState){
onSaveInstanceState.getString(this.SAVE_INSTANCE_TAG);
}
方法二、
在onPause()和onResume()中使用Perference保存
七、Android五种数据存储方式
SharedPreferences
文件
数据库
ContentProvider
网络存储数据
八、Service的生命周期?启动Service的方式有几种?
startService():
onCreate()
onStart()
onDestroy()
退出Activity服务仍在运行
bindService():
onCreate()
onBind()
onUnbind()
onDestroy()
Activity与Service绑定,共存亡。
九、Receiver的生命周期?广播注册的两种方法和区别?
生命周期:在onReceive()执行的时候期间。
两种方式:
一、代码动态注册
不是常驻型广播,广播跟随程序的生命周期
二、在AndroidManifest.xml中配置
常驻型,当应用关闭后,如果有广播,系统也会调用广播接受者
十、Activity的启动模式 <activity>中的launchMode属性
standard 调用一次startActivity()就产生一个新的实例
singleTop如果在栈顶,不产生新的实例,如果不在栈顶就产生新的实例
“standard”和”singleTop”可以被实例化多次,并且是可以存在于不同的task中;这种实例化时一个task可以包括一个activity的多个实例
singleTask在一个新的task中产生这个实例,不再产生新的实例
singleInstanceActivity实例所处的task中,只能有这个实例,不能有其他的实例
“singleTask”和”singleInstance”则限制只生成一个实例,并且是task的根元素。
十一、通过Intent传递二进制数据
1.实现Serializable接口
2.实现Parcelable接口
十二、Android程序的入口是application的main方法,从项目清单可以大概猜出
十三、
GC内存泄露
出现情况:
1.数据库的cursor没有关闭
2.构造adapter时,没有使用缓存contentview
衍生listview的优化问题-----减少创建view的对象,充分使用contentview,可以使用一静态类来优化处理getview的过程/
3.Bitmap对象不使用时采用recycle()释放内存
4.activity中的对象的生命周期大于activity
Activity 与 Task的启动模式有哪些,它们含义具体是什么 ...
在一个Activity中,多次调用startActivity()来启动另一个Activity,要想只生成一个Activity实例,方法有两种。
方法一:设置 起动模式
一个Activity有四种启动模式:standard, singleTop, singleTask, singleInstance。
standard: 标准模式,一调用startActivity()方法就会产生一个新的实例。
singleTop: 如果已经有一个实例位于Activity栈的顶部时,就不产生新的实例,而只是调用Activity中的newInstance()方法。如果不位于栈顶,会产生一个新的实例。
singleTask: 会在一个新的task 中产生这个实例,以后每次调用都会使用这个,不会去产生新的实例了。
singleInstance: 这个跟singleTask基本上是一样,只有一个区别:在这个模式下的Activity实例所处的task 中,只能有这个activity实例,不能有其他的实例。
这些启动模式可以在功能 清单文件 中进行设置,<activity>中的launchMode属性。
"singleTask" and "singleInstance", should be used only when the activity has a MAIN and LAUNCHER filter.
分享到:
相关推荐
### Android基础面试知识点详解 #### 一、内存泄露的原因及避免方法 **内存泄露定义**: 内存泄露是指在程序运行过程中,已经不再使用的对象没有被及时地回收,从而占用内存资源,导致可用内存逐渐减少。 **内存...
《Android基础面试题(附赠答案赠送版).md》是一份为准备面试的Android开发者准备的重要参考资料。该文档收录了一系列涵盖Android基础知识的面试题目,并附带了详细的答案和解析,旨在帮助面试者更好地准备面试,...
### Android基础面试知识点详解 #### 一、Activity的生命周期与Activity间跳转 **知识点概述:** - **Activity生命周期:** Activity是Android四大组件之一,主要用于显示用户界面。它的生命周期涉及多个回调方法...
### Android基础面试题详解 #### 一、Activity概念与生命周期 **知识点1:Activity定义** - **定义**:Activity在Android开发中是最基本的应用组件之一,可以简单理解为应用程序的一个界面,用户可以在界面上进行...
根据提供的文件内容,以下是详细的知识点总结: 1. 内存回收说明: - 在Android中,程序员不能直接控制内存的释放,内存回收是由垃圾回收器...在实际应用和面试准备中,还需针对完整的问题和知识点进行复习和理解。
android基础知识,android期末考试试题,android面试.
总结而言,掌握Android基础面试题不仅是面试准备的关键,也是深入理解Android开发的重要途径。以上内容涵盖了ANR、异常处理、组件通信、签名机制以及生命周期管理等核心概念,对于提升Android开发者的技能和经验具有...
例如,在Android基础面试核心内容中,作者对Activity的生命周期、启动模式、与Task和Process的关系等进行了深入讲解,并且提供了具体的面试题来帮助读者检验掌握程度。 接着,书中深入探讨了Android的高级面试内容...
### 百度Android开发面试题解析 #### 1. Android DVM、Linux 进程与应用程序进程的关系 在Android环境中,DVM(Dalvik虚拟机)是为Android平台设计的虚拟机,每个Android应用都在其自己的进程中运行,并拥有独立的...
**第一节 Android基础面试题** - Activity生命周期:各状态转换及保存/恢复状态。 - Intent的作用:组件间通信、启动服务等。 - Android四大组件:Activity、Service、BroadcastReceiver、ContentProvider的理解。 ...
想起疫情之前在给公司招聘3年以下经验的android开发人员,趁这个空闲的机会整理下一些基本的面试题,不是很多,我个人觉得比较典型的,时间长了一些不常用的细节问题都快忘记了,也许是轮子用多了吧,如果能在赶项目...
1. **基础知识**:面试通常会从Android体系结构、生命周期、组件(Activity、Service、BroadcastReceiver、ContentProvider)开始。理解这些概念及其交互是基础。 2. **Android SDK**:了解Android SDK的各个版本...
总的来说,这份“Java和Android基础知识面试宝典”将覆盖这两个领域的核心概念、常用技术和面试技巧,帮助求职者全面准备面试,提升他们的竞争力。通过深入学习和实践这些内容,不仅能在面试中脱颖而出,也能为实际...
在Android开发领域,掌握基础知识是至关重要的,尤其是在面试过程中。...通过阅读提供的"Android基础概念面试题1.0.doc"和"Android基础概念面试题1.0(答案).doc"文件,可以更深入地理解和复习这些知识点。
- Android基础面试题包括Android应用生命周期、四大组件(Activity、Service、BroadcastReceiver、ContentProvider)等。 - 高级面试题则深入探讨Android系统架构、性能优化、安全机制等。 5. 其他扩展面试题:...
1. **Android基础面试题.docx**:这个文档可能包含了Android开发的基础知识问答,包括但不限于Android应用程序的基本结构、四大组件(Activity、Service、BroadcastReceiver、ContentProvider)、生命周期、布局管理...
2017-2020 字节跳动 Android 面试真题...第一节 Android 基础面试题 (⭐⭐⭐) 第二节 Android 高级面试题 (⭐⭐⭐) 第五章 其他扩展面试题 一、Kotlin (⭐⭐) 二、大前端 (⭐⭐) 三、脚本语言 (⭐⭐) 第六
15.Android面试常问基础知识点 16.java;深入源码级的面试题 17.中高级专题(View+Handler+Binder) 18.Android常见原理性面试专题 19.面试必备之乐观锁与悲观锁 20.常见面试必问23题 21.Java;基础知识点面试专题 ...
Android面试宝典,包括Java基础和高级面试,Android基础和高级面试,面试技巧,面试分享,BAT大咖助力,全面升级Android面试,Android高级面试,10大开源框架源码解析...等内容
1. Android基础:Activity、Service、BroadcastReceiver、ContentProvider和Fragment的全方位解析。 2. Android消息机制:包括Handler、Looper、MessageQueue和Message的概念及其在Android中的消息处理机制。 3. ...