Android在apk文件dex文件是java编译出来.class次打包,当然在打包之前会利用自己的协议做一些数据处理,比如优化函数表和变量表。在java程序中是使用classloader来载入这些编译生成的.class文件,然而在android程序中是通过DexClassLoader来装载这些文件的.这里我们就能够通过DexClassLoader在程序A里面动态装载程序B中的类,而且来调用B程序中的方法.


     1.首先先建立一个普通的Androidproject,在这个project中定义一个叫做plugin的类,类中实现一个简单的方法,例如以下所看到的:

      2.将这个Androidproject执行到安卓设备其中去

      3.再又一次建立一个Androidproject,当中定义一个叫做host的类,在这个类中实现DexClassLoader动态载入第一个project中的plugin类,例如以下所看到的:

    4.执行第二个project之后查看log就会发现host通过DexClassLoader载入了pluginclass类,并成功调用了plugin中的方法


版权声明:本文博客原创文章。博客,未经同意,不得转载。

相关文章:

  • 2023-02-07
  • 2021-12-09
  • 2021-08-23
  • 2022-12-23
  • 2022-12-23
  • 2021-04-20
  • 2022-03-07
  • 2021-10-04
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-05-22
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-11
相关资源
相似解决方案