Giter Site home page Giter Site logo

androidpluginframework's Introduction

AndroidPluginFramework

##Android插件化框架系列文章以及DEMO

androidpluginframework's People

Contributors

nuptboyzhb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

androidpluginframework's Issues

文章里第二课貌似并不能解决第一课的问题,是否只是第一课的方法扩展?

谢谢博主的文章,学到很多。
看到第二课的时候遇到一个问题,文章里说
“需要注意的是,apk中的类是加载到当前的PathClassLoader当中的,如果apk文件过多,可能会出现ANR的情况。那么,我们能不能使用DexClassLoader加载apk呢?当然是可以的!”

据我所知DexClassLoader和PathClassLoader区别仅仅在于一个可以加载外部路径的apk,一个只能加载/data/data/包名路径下的apk。对于内存和性能上的区别几乎是相同的

所以当PathClassLoader会ANR的时候DexClassLoader同样会ANR呀
而且理论上使用PathClassLoader是共用的一个ClassLoader,DexClassLoader反倒要遍历查找类,所以PathClassLoader应该效率更高才对。

希望博主能够解答我的疑惑,谢谢!

DynamicAPK_Project_Analysis 1.aapt的改造。说到所有的资源文件id会进行合并。但是通过解demo-release-final.apk发现,资源id并没有合并。

1.aapt的改造

分别对不同的插件项目分配不同的packageId,然后对各个插件的资源进行编译,生成R文件,然后与宿主项目的R文件进行id的合并。

要求:由于最终会将所有的资源文件id进行合并,因此,所有的资源名称均不能相同。

通过解demo-release-final.apk发现,资源id并没有合并。所以上面这句是不是说错了?

资源合并的说明有错吧

“团队在开发时,对资源的命名进行约定,比如各业务线按照一定的规则命名,大家准守规则,避免重复。 然后在打包时,我们对各个插件的资源进行合并,统一生成R文件,所有插件和宿主的R文件内容都是完全一样的,资源都保存在宿主项目的资源中。”

插件之间无需互相访问资源,host不需要访问plugin的资源,只需要plugin能访问host的资源即可。所以应该是将host的R合并倒插件的R中。

课程四有误

文章说“其中,R.layout.main_fragment我们可以通过上述方法获取其ID,那么关键的一步就是如何生成一个context?直接传入当前的context是不行的。”

测试证明直接传入当前的context是可以的

另外有个问题,文中常常用到十六进制的id如“ 0x7f050001”,注释说“id参照Bundle apk中的R文件”。这个id是从插件apk的R文件中查询到的吗?感觉这种方式不靠谱啊,万一什么原因导致这个id变了怎么办,为啥不直接用resources.getIdentifier()的方法?这样更靠谱一些呀?请赐教谢谢

获取资源方法不能使用

在第三课中,获取资源的时候会找不到相应的资源,总是返回0值,不知道这个是否成功的测试过?

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.