1、用 Electron 怎么处理 crash?
Electron 也有非常多问题,它也会崩溃,并且有崩溃报告的收集方式,收集这些报告之后还要进行分析,但是分析出来的崩溃报告实并不能很明确地反映到底是哪一行代码、哪一段业务出了问题。很多时候崩溃报告中可能更多的是说明一个指针指向的内存出现了问题,这时一种方法是尽量联系用户复现问题;第二种方式是做大量的自动化测试,收窄问题的范围,将其局限在一定的范围内再做精细化处理;第三种方式就是做 AB 测试。 2、Electron 开发的应用安装包太大这个问题有没有好的解决办法。另外,开发者该如何开发 Electron 应用的守护进程。
这是两个问题。第一个问题就是包太大的问题,这个其实是挺难解决的,在立项之前就应该跟团队负责人沟通好需求,是要快速的业务开发,还是更高的性能,更小的体积?如果要更小的体积,那么就放弃业务开发效率。可以使用 C++ 做一些工作,只是会消耗更长的时间和更多的资源。在打包的时候,要先确认是否用的是 LZMA 压缩格式,这种格式可以压缩得更小一点,但是小不了多少,最低可能还是 60 多兆。
至于怎么做守护进程,这个问题现在有两种办法,一种是写一个独立的应用,在 Electron 启动的时候应用就可以随之启动,然后它守护 Electron 进程。如果 Electron 进程崩溃的时候,就由它来启动 Electron 进程。
另一种方法是分析应用为什么崩溃,是主进程崩溃了,还是渲染的时候崩溃了,你如果主进程崩溃了,尽量还是要找到其崩溃的原因,因为一旦主进程崩溃,那么所有渲染都会失败;如果是渲染进程崩溃了,那么可以在主进程中打开一个其他的进程,来保证将渲染崩溃的通知发送给用户,由用户重启渲染进程,或者自动重启。