注意事项
关于插件化的三个根本问题和解决方案就已经全部介绍完毕了,前一篇文章也通过一个入门级的工程来完整地演示了。但是其实目前热门的插件化框架也远不止这些内容,我们在实际开发中也远不止这么简单。前面介绍的所有知识点只是一个入门而已,插件化虽然带来了很多便利,但是在开发过程中也增添了不少麻烦和额外工作量,它堪比一把双刃刀。这里顺便总结一下笔者在实际插件化项目开发中增经遇到的一些坑:
- 修改aapt支持自定义包资源id后, 0x11最好不要使用,因为会在小米系统有出现冲突情况;
- 插件不支持直接弹出通知栏,因为这跟RemoteViews的特性有关。建议在开发过程中提前在宿主中定义好通知栏模版和接口供插件中调用;
- 由宿主的Activity跳转至插件的Activity最好不要使用过渡动画效果,或许会出现动画异常;
- 宿主和插件的通信实质上是用到了反射,所以在处理混淆上要特别注意;
- 插件不支持加固
- 宿主和插件若处于同一个工程中,Android Studio是支持跨包调试的;
- 在实际下拉插件时,一定要进行包的校验,以免被恶意注入;
- 多进程项目中要处理好加载插件后多进程该如何同步问题;
- 版本代码兼容问题,一般情况是功能只增不删;
- 版本发布兼容问题,例如要做好验证该版本宿主版本号、渠道号是否支持某个版本的插件;
- 插件化对四大组件支持并不完美,避免还处于频繁修改组件的工程进行插件化工作;
- 等,有待补充!