• 插件化一(android)


    插件化设计概述(android)

    一、             模块划分

    1. Basic模块包括:初始化接口、插件加载接口、插件更新接口和埋点接口。

    a)         初始化接口:完成一些必要的初始化工作。

    b)         插件加载接口:包括验证插件和加载插件的工作。

    c)         插件更新接口:与服务端通信更新指定插件。

    1. Marketing模块:依赖Basic模块,实现具体的业务逻辑。

                           

    接口组件 图1

     

    插件活动 图2

     

    Sdk加载序列 图3

    二、             具体设计

    1. 插件信息规划

    重点考虑插件加载机制,更新、安全防护和后续版本兼容等事项,需要考虑的点有,插件信息写入的位置,插件信息字段规划,字段名称与信息加密方式。

    1)插件信息写入位置

      在jar中添加一个文件包括插件信息

      将插件信息写入zip文件格式内

    2)插件信息防止篡改

      以非对称加密的方式,服务端以私钥加密插件信息,客户端以公钥解密

    字段名称

    字段意义

    是否可选

    PluginName

    插件名称

    PluginVer

    插件版本

    TargetLibVer

    对应的lib版本

    主要为了插件与lib的兼容性

    MinLibVer

    所需的lib最低版本

    Entry

    插件的入口点

    后续如果实现自启动所需要的入口点配置

    DexMD5

    插件对应dex的md5

    防止dex被篡改

    Extra

    额外信息键值对

    1. 插件校验流程

     

    插件校验流程 图4

    1. 插件加载流程

    见图3

      2. 插件更新流程

    在sdk调起的时,尽快发起插件更新请求(建议在另外的进程进行更新防止正在运行逻辑出问题,造成更新无进行)。请求插件时应用的基本信息,插件信息,使服务端能按照一定条件,下发插件(后期可以加入灰度更新).

  • 相关阅读:
    Win10 Tensorflow 配置Mask_RCNN
    Tensorflow学习(练习)—使用inception做图像识别
    Tensorflow学习(练习)—下载骨骼图像识别网络inception数据集
    Tensorflow递归神经网络学习练习
    Tensorflow学习练习-卷积神经网络应用于手写数字数据集训练
    Tensorflow 优化学习
    Tensorflow学习—— AdamOptimizer
    Tensorflow练习
    Tensorflow手写数字识别(交叉熵)练习
    Tensorflow手写数字识别训练(梯度下降法)
  • 原文地址:https://www.cnblogs.com/anye6488/p/3878723.html
Copyright © 2020-2023  润新知