技术查缺Android篇 Sevice和IPC机制(面试题)

2019-08-23  本文已影响0人  时间领主timeloader

这一篇主要用来补缺Service部分和IPC。

Service

1 Service的生命周期.

2 Service的启动方式

Service有两种启动方式:本地启动(Local)和远程启动(Remote),

这里需要注意的是,本地启动的方式试运行activity的主线程上的,但是远程启动方式,启动的是在独立的进程主线程上这个要注意,他是可以独立于app进程,即使app关闭,这个线程也可以独立维护,比如微信的聊天监控服务和jpush等推送服务都是属于远程服务。

3 ActivityManagerService的作用

ActivityManagerServiceAndroid中最核心的服务 , 主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调度等工作,其职责与操作系统中的进程管理和调度模块类似,详见ActivityManagerService分析

4 如何保证Service不被杀死

根据收集到的效果比较好的有下面几个方法:

5 IPC是什么以及存在的价值

IPC,InterProcess Communication,指的是多进程通信,由于Android是从linux核,它的设计也类似由于每个app的进程之间是被隔离的,所以我们无法直接访问以及进行通信,我们这个时候就需要依靠其他办法来通信,具体的通信方式有:

另外多进程会导致以下几个问题

6 谈谈Binder

Binder,中文翻译粘合剂,它从应用层来说就是 ,服务端中的Service给与其绑定的客户端提供Binder对象,客户端通过AIDL接口中的asInterface()将这个Binder对象转换为代理Proxy,并通过它发起RPC请求。客户端发起请求时会挂起当前线程,并将参数写入data然后调用transact(),RPC请求会通过系统底层封装后由服务端的onTransact()处理,并将结果写入reply,最后返回调用结果并唤醒客户端线程。


网络图片(来自厘米姑娘博客)
上一篇下一篇

猜你喜欢

热点阅读