linux系统怎么安装爱奇艺_爱奇艺插件化之Neptune
爱奇艺APP从2013年就开始了插件化技术的研究和改造,截止目前一共有20多个独立业务模块以插件化的方式运行和并行迭代,其中包括APP首页的奇秀、文学、电影票、漫画等业务。开发插件化框架的Demo并不是很难,但是要开发一款完善的插件化框架,兼容适配国产各种碎片化的ROM,同时满足业务需求,却不是那么容易。插件框架的稳定性和兼容性,从原有代码模块解耦到插件化的迁移成本、后期维护成本等方面都需要考虑到。本文将介绍插件化实现的技术原理,分享爱奇艺APP在插件化实践过程的解决方案。
Neptune是爱奇艺移动端研发的一套灵活,稳定,轻量级的插件化解决方案。经过不断的研发,迭代和线上验证,目前已经完全适配了Android P,能够在数亿的设备上动态加载和运行插件APK,为爱奇艺众多的垂直业务团队提供了稳定的服务。
在Neptune框架之上,爱奇艺APP针对插件业务,实现了一套完备的插件管理方案,负责插件的下载,安装,升级,版本管理,插件启动控制,插件与宿主之间的通信。由于这部分涉及具体APP业务的交互形态,且与后端数据结构关联,因此没有开源。
这里简单介绍下设计思路。对于每一个插件版本数据,在APP层是一个OnLineInstance实例,里面字段与后端数据结构保持一致,包含基本的插件包名,插件版本,插件依赖,还包含一些下载控制策略,patch升级策略等。APP层的OnLineInstance,对应于Neptune框架的PluginLiteInfo。由于一些插件可能会来自不同的地方或者配置不同的版本,如内置插件,本地缓存的旧版本插件,线上最新插件。因此在APP层一个插件业务会关联多个OnLineInstance,我们会选择最高版本的兼容插件进行升级,安装。
插件包体积越大,下载成功率和转化率越低,为了提高插件升级的覆盖率和成功率,我们采用了增量更新的机制。插件后台更新插件时,后台会基于历史版本插件生成增量的diff包。APP端在请求插件数据时,后端接口额外返回增量patch的url及生成patch所有的base插件版本。前端根据本地已安装插件的版本,选择使用patch增量合成新版本插件apk还是走全量下载新插件,优化网络下载流量。
linux系统怎么安装爱奇艺_爱奇艺插件化之Neptune相关推荐
- 在 RHEL 8.6 linux系统里安装达芬奇18.1软件缺少的依赖软件,需要下载安装。 20221111.
在 RHEL 8.6 linux系统里安装达芬奇18.1软件缺少的依赖软件,需要下载安装. 20221111. RPM包下载安装:http://www.rpmfind.net/linux/rpm2ht ...
- windows配置gitlab秘钥并测试_你了解多少Linux系统GitLab安装与环境配置?
Linux系统GitLab安装与环境配置 注意:虚拟机的内存至少2G以上 一. 从GitLab官网获取安装方法和步骤: https://about.gitlab.com/installation/#c ...
- jemter在linux上怎么安装_【JMeter之一】在linux系统下安装jmeter
Apache JMeter是Apache组织开发的基于Java的压力测试工具,因此首先需要安装的是JDK 目前JMeter3.0需要的在JDK1.7及以上版本运行这是需要注意的一点 一.下载JDK 下 ...
- centos 卸载软件_一篇看懂!详解-Linux系统中安装软件的三种方法
Linux系统中安装软件的三种方法 注:本文主要以CentOS为例介绍常用的安装方式,其他版本linux在文章底部 Linux系统中怎么安装软件,首先说一下应用程序与系统命令的区别: 1.文件位置 系 ...
- 爱奇艺开源轻量级插件化方案 Neptune
爱奇艺近日开源了其轻量级插件化方案 Neptune,项目地址:https://github.com/iqiyi/Neptune 插件化框架可以在主程序不重新安装的情况下,针对单个业务模块进行动态加载达 ...
- linux重装eclipse_如何在Linux系统上安装Eclipse
如何在Linux系统上安装Eclipse 作为Java程序员,需要在Linux系统上安装Eclipse,很多人不知要如何安装,在安装Eclipse前,还需安装JDK,下面小编就给大家介绍下Linux如 ...
- Linux系统下安装rz/sz命令及使用说明(详解)
Linux系统下安装rz/sz命令及使用说明(详解) 对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / sz命令很方便的帮我们实现了这个功能, ...
- 关于内网linux系统如果安装nodejs,npm,express,mongodb,forever等
内网的linux系统要安装nodejs以及express等系列的框架,因为系统是局域网和互联网是物理隔离的,所以,没法像官网的安装教程那样直接install了,只能手动安装,这里已经我们自己的linu ...
- linux源码安装浏览器,Linux系统手动安装Firefox浏览器
大多数Linux发行版都以Firefox作为默认的浏览器,并可以轻松地从软件库中安装.例如: Debian/Ubuntu: sudo apt-get install firefox Fedora: s ...
- vm虚拟机下linux安装python_VM中安装linux系统,安装VS Code,搭建Python环境
VM中安装linux系统 在linux系统中安装VSCode(Visual Studio Code) 1.从官网下载安装包 2.在下载目录打开终端安装 sudo dpkg -i code_1.32.3 ...
最新文章
- 一步一步搭建ELK日志处理集群(自己做过测试)
- SAP HANA数据库的搜索执行原理
- Asterisk 学习进阶 2
- 《C++Primer》复习——with C++11 [1]
- 什么是全场景AI计算框架MindSpore?
- 戴尔商台试机选购指南
- linux环境下配置虚拟主机域名
- 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(远程升级WIFI内部程序)
- 在SqlServer2000的视图中小心使用*符号
- Robocode:下载安装及迁移至IntelliJ
- 小熊派开发板STM32L431_BearPi_LiteOS_E53_ST1调测GPS+2G心得(附代码修正版)
- [论文阅读] SASA: Semantics-Augmented Set Abstraction for Point-based 3D Object Detection
- SSL证书常见错误和解决办法
- 厦门市委书记走访图扑等多家软件企业调研元宇宙产业发展情况
- 这100 个网络基础知识,看完成半个网络高手
- 计算机学术论文shortessay,英语学术论文与研究方法-北京林业大学外语学院.doc
- 关于企业能源管控平台在轧钢行业能源管理中的应用
- 100个人检测一个,最少需要多少试管
- python openCv 入门学习-RGB转HSV、掩膜的简单理解(二)
- alpine linux apk删除,把玩Alpine linux(二):APK包管理器