约定,本文中WebView所在的Activity为WebViewActivity
问题分析
采用独立进程后,发现首次启动时,WebView所在的Activity启动速度比较慢,如果每次退出这个Activity的时候都杀掉其所在的独立进程,则每次进入WebView所在的Activity速度都比较慢。因此可以看到导致启动速度慢的根本原因就是fork进程所花费的额外时间。
解决方案:
WebViewActivity
所属的独立进程启动后,在退出Activity时不杀掉其所属进程。- 在AndroidManifest.xml文件中声名一个Service,该Service运行在独立进程中,需要启动WebView是,发送消息给该Service,让该Service来启动
WebViewActivity
。 - 由于Web View运行于独立进程,那么自然而然的就会涉及到进程间的通信问题,Android进程间的通信,最常见的就是通过AIDL来实现。