春招收获阿里腾讯实习offer,学习、面试经验分享
组件运行在哪个进程中,是在 AndroidManifest 文件中进行设置的,activity、service、 receiver 和 provider 均支持 android:process 属性,此属性可以指定该组件应在哪个进程运行。我们可以设置此属性,使每个组件均在各自的进程中运行。 进程的优先级 Android 系统将尽量长时间地保持应用进程,但为了新建进程或运行更重要的进程,最终需要移除旧进程来回收内存。为了确定保留或终止哪些进程,系统会根据进程中正在运行的组件以 及这些组件的状态,将每个进程放入 “重要性层次结构” 中。必要时,系统会首先消除重要性最低的进程,然后是重要性相对较高的进程,以此类推,以回收进程。 重要性层次结构一共有 5 级 1、前台进程 — Foreground process 2、可见进程 — Visible process 3、服务进程 — Service process 4、后台进程 — Background process 5、空进程 — Empty process 线程 线程在 Android 中是一个很重要的概念,从用途上来说,线程分为主线程和子线程,主线程的 作用是「运行四大组件以及处理它们和用户的交互」,而子线程的作用则是「执行耗时任务, 比如网络请求、I/O 操作等」,由于 Android 的特性,如果在主线程中执行耗时操作那么就会 导致程序无法及时地响应。因此耗时操作必须放在子线程中执行。 Android 中的线程形态 除了 Thread 本身以外,在 Android 中可以扮演线程角色的还有很多,比如 AsyncTask 和 IntentService,同时 HandlerThread 也是一种特殊的线程。 尽管 AsyncTask、IntentService 以及 HandlerThread 的「表现形式」都有别于传统的线程,但是它们的本质仍然是传统的线程。 我相信,如果你能像我上面的逐字稿这样,结合 Android 里面的知识点清晰地表达出你对进程和线程的理解的话,面试官肯定会很满意的。 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |