Giter Club home page Giter Club logo

Comments (6)

leonard-hw avatar leonard-hw commented on May 24, 2024

我觉得只能在宿主中使用固定资源id的方法(aaptOption --stable-ids)来规避此问题了,保证宿主中已有的资源id不在变化,这样,插件依赖的时候,就可以保持兼容性

from qigsaw.

mdoufei avatar mdoufei commented on May 24, 2024

CI 上保存上次构建的产物文件,比如 mapping ,res id 等,本次构建时 apply ,理论上可以
不过没实践过 :)

from qigsaw.

leonard-hw avatar leonard-hw commented on May 24, 2024

这样的话,插件会对宿主有个隐含的依赖,从设计上,插件和宿主分离的就不是那么彻底了

from qigsaw.

kissonchan avatar kissonchan commented on May 24, 2024

问题的具体场景如下:
1、dynamic-feature包依赖了宿主中的一个资源,例如一个layout或者string等(原理类似)

2、宿主因为增加功能,例如新增了布局资源,导致这个被依赖的layout的资源id发生了变化

3、那么同一个hynamic-feature包如何同时支持现网老版本的宿主app,以及增加新功能的新版本的宿主app?
因为dynamic-feature包中引用的宿主的那个layout的资源id是跟随宿主编译时,对应的宿主版本layout的id,这个和现网老版本的layout的id是不同的

我们业务使用插件化的一个很重要的目的是:通过插件方式为老版本的宿主APP增加功能。
如果这种方式不支持,业务使用插件化的价值就有所降低了。目前看宿主资源id变化的可能性还是很大的,而且不只是自定义资源,android x的资源id,有可能因为宿主修改,也会导致id的变化。

dynamic-feature 是和版本绑定的,如果宿主变了,插件是会重新打包的

from qigsaw.

JackyAnn avatar JackyAnn commented on May 24, 2024

宿主提供获取资源ID方法, dynamic-feature通过宿主提供的方法获取资源,
或者dynamic-feature通过资源名字获取资源id,然后根据资源id获取资源

from qigsaw.

wys619 avatar wys619 commented on May 24, 2024

宿主包变化了,插件包就需要重新构建了吧?插件包和宿主包本来就是有一个依赖关系的呢

from qigsaw.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.