Android DL 插件化开发步骤与核心注意事项
DL(Dynamic Load)框架是 Android 插件化技术的一种实现方案,旨在通过动态加载 APK 来实现功能扩展和热更新。本文将详细介绍利用 DL 框架进行开发的完整流程、框架优势以及在实际开发中必须注意的关键问题。
一、利用 DL 框架进行开发的步骤
1. 获取项目代码
首先从官方仓库获取 DL 框架源码。解压后,主要目录结构如下:
lib目录:包含 DL 的插件库文件。sample目录:包含对应的 Demo 示例工程。
2. 引入 DL 库
宿主工程配置
在宿主工程中,只需将 dl-lib.jar 加入 libs 目录,并在 build.gradle 中引用:
compile fileTree(dir: 'libs', include: ['*.jar'])
插件工程配置
插件工程需要用到 DL 库的类,因此也需要引入 dl-lib.jar。但由于插件最终会加载到宿主程序中,而宿主程序已经引入了该库,如果常规方式导入会导致重复拷贝。解决方案是让插件中的 DL 库仅参与编译,但不打包进 APK。
在 Android Studio 的插件工程中创建一个目录(如 external-jars),将 dl-lib.jar 放入其中,并在 build.gradle 中添加以下配置:
provided files('external-jars/dl-lib.jar')
同理,如果宿主程序使用了 support-v4.jar,插件中原有的 support-v4.jar 也不能被打包进去。需将其放入 external-jars 并追加配置:
provided files('external-jars/android-support-v4.jar')
3. 插件 Java 代码修改
插件中的所有 Activity 必须继承自 DLBasePluginActivity 或 DLBasePluginFragmentActivity。
- 若原有 Activity 为普通 Activity,改为继承
DLBasePluginActivity。 - 若原有 Activity 为 FragmentActivity,则继承
DLBasePluginFragmentActivity。
继承示例:
public class MainActivity extends DLBasePluginActivity
public class TestFragmentActivity extends DLBasePluginFragmentActivity
此外,原有 Activity 中所有代表 Context 引用的 this 都必须改写为 。如果要调用另一个 Activity,不能使用标准的 ,而是使用 ,并且 Intent 也要变为 :


