ARTICLE DETAIL

资讯详情

深耕网站SEO优化与搜索引擎排名提升的一线实战洞察。

WXDynamicPlugin插件化框架快速开始指南:从空壳宿主到秒开首页,14个插件文件与10套皮肤包全解

WXDynamicPlugin插件化框架快速开始指南:从空壳宿主到秒开首页,14个插件文件与10套皮肤包全解 WXDynamicPlugin插件化框架快速开始指南从空壳宿主到秒开首页14个插件文件与10套皮肤包全解【免费下载链接】WXDynamicPlugin自研零反射零HooK,全动态化插件化框架全网唯一结合启动优化的插件化架构适合小中大型项目均可的插件化架构项目地址: https://gitcode.com/gh_mirrors/wx/WXDynamicPluginWXDynamicPlugin是一款自研的Android 插件化框架主打零反射、零Hook、全动态化并且是全网唯一结合启动优化的插件化架构——宿主可以瘦身为一个空壳子首次启动即可秒开首页。本指南带你从拉取代码、运行空壳宿主到打包部署 14 个插件文件、切换 10 套皮肤包一步一步走完全流程。一、为什么选择 WXDynamicPlugin 插件化框架相比传统插件方案它的核心卖点非常直接对比维度传统插件框架WXDynamicPlugin插件打包体积3M 以上500k 左右✅宿主接入代码量较多核心仅 4K 多含下载版本控制约 60k ✅首次下载到展示首页3~5s 以上1s 内✅插件已本地后加载1500ms 以上500ms 内✅下载/版本控制逻辑动态化不支持支持✅插件 Debug 调试不支持支持✅Compose 支持不支持支持✅一句话总结插件越小 → 下载越快 → 首开越快这就是它结合启动优化的秘密。支持的插件能力包括四大组件Activity / Service / ContentProvider / BroadcastReceiver、Fragment、assets、跨进程插件 Service、通知栏、So 加载、分段加载插件、一个 Activity 加载多个插件的 View 等。二、第一步拉取项目代码git clone https://gitcode.com/gh_mirrors/wx/WXDynamicPlugin用 Android Studio 打开项目后默认settings.gradle中只开启了Maven 依赖接入方式即WX/WX-Maven下的宿主空壳工程开箱即可运行插件会从官方示例服务器自动下载。 想研究插件源码级接入把 settings.gradle 中第 35~131 行WX-Code相关 include注释放开即可两种方式的代码内容一致仅接入形式不同。三、第二步认识空壳宿主的工程结构宿主侧一共就5 个工程1 个宿主主工程 4 个 lib 模块结构如下模块作用WX-Host/sample宿主真实主工程空壳 Appmaven-wgllss-business-re-library公共业务带 res 资源的 libmaven-wgllss-common-re-library公共代码带 res 资源的 libmaven-wgllss-dynamic-host-library宿主 Manifest 中注册四大组件占位的 libmaven-wgllss-dynamic-host-skin-resource-lib宿主必备的主题、图标等资源 lib宿主的灵魂只有 3 个 Kotlin 文件都在WX/WX-Maven/WX-Host/sample/src/main/java/com/wgllss/dynamic/host/下SampleApplication.kt在attachBaseContext中一行代码安装插件——WXDynamicLoader.instance.installPlugin(base, FaceImpl(), VersionImpl())FaceImpl.kt配置插件下载地址getHostL()/getBaseL()和 14 个文件的 URL 映射VersionImpl.kt配置每个插件文件的版本号驱动有新版本才下载更多宿主与插件设计细节见 WX-Plugin 接入指南。四、第三步配置环境并运行JDK 配置AS 内 JDK 选17电脑需安装JDK 1.8多版本共存可参考 README 中master-d8分支方案。SDK 路径在项目local.properties中添加workingDirPath你的SDK路径\build-tools\32.0.0\直接运行sample模块源码方式则运行app模块。首次启动后宿主会自动从服务器下载插件并秒开首页效果如下⚠️ 官方提示运行示例时请勿抓包、设置代理否则插件下载会失败。五、第四步14 个插件文件全解WXDynamicPlugin 把一个完整 App 拆成14 个独立分片单独打包、单独下载、单独加载全部体积加起来不到 500k序号文件名来源插件工程说明1classes_version_dexmaven-wgllss-sample-loader-version插件版本控制可动态更新2vc同上配套配置文件版本配置文件约 380B3classes_common_lib_dexMaven-Wgllss-Dynamic-Plugin-Common-Library插件公共代码库4classes_business_lib_dexmaven-wgllss-sample-business-library公共业务代码库5classes_business_web_resmaven-wgllss-sample-assets-source-apkAssets 资源H5 页面等6classes_home_dexmaven-wgllss-sample-ui-home首页插件7classes_common_skin_resmaven-wgllss-sample-skin-resource-apk皮肤资源插件8classes_loading_dexmaven-wgllss-sample-ui-loading启动 Loading 页插件9classes_wgllss_dynamic_plugin_runtimeMaven-Wgllss-Dynamic-Plugin-RunTime-Apk插件框架 Runtime SDK10classes_manager_dexMaven-Wgllss-Dynamic-Plugin-Manager插件管理器跳转/Service/皮肤11classes_other_dexmaven-wgllss-sample-ui-other-lib首页外 Fragment 插件按需下载12classes_other_resmaven-wgllss-sample-ui-other对应布局资源13classes_other2_dexmaven-wgllss-sample-ui-other2-lib2首页外 Activity 插件按需下载14classes_other2_resmaven-wgllss-sample-ui-other2对应布局资源 仓库里已预打包好一套位于 WX-Resource 下10000即宿主版本号目录。六、第五步部署到自己的服务器默认示例使用的是官方服务器。想换成自己的服务器只需改 FaceImpl.kt 中的两处getHostL()改成你的服务器根地址getBaseL()拼接规则为服务器地址/设备ID/宿主版本号/确保最终 URL 可访问然后把 14 个插件文件放入该目录同时把 so 目录 与 skins 目录 一并拷过去演示工程会用到。七、一键打包 14 个插件文件想自己打包在maven-wgllss-sample-create-all-app工程中执行 Gradle 任务assembleCreateAllFileRelease 技巧如果一次没生成再执行一次仍不行就先执行maven-wgllss-sample-create-version-config-app工程的assembleCreateVersion2FileRelease生成 2 个版本文件再回来执行assembleCreateAllFileRelease。八、10 套皮肤包换肤不重启插件侧内置了10 套可下载的皮肤包运行时动态切换清单见 skins.txt皮肤文件色值皮肤文件色值深绿skin_dark_green.apk#158bb8橙orange.apk#F57F17绿skin_green.apk#007A00暗红dark_red.apk#55000A红red_green.apk#FF0000浅绿light_green.apk#3AAF00蓝blue.apk#4A148C深蓝dark_blue.apk#330066粉pink.apk#D0006A棕brown.apk#827717皮肤源码在 Wgllss-Dynamic-Plugin_SkinMaven 方式对应 Maven-Wgllss-Dynamic-Plugin_Skin下每个颜色一个独立工程可自行打包替换。实际运行中切换皮肤、加载 WebView、视频音频、So 库等功能演示如下常见问题 FAQ ❓Q1宿主里为什么有 HomeActivity首页不是插件吗首页com.wgllss.dynamic.ui.HomeActivity真实注册在宿主 AndroidManifest.xml 中作为占坑入口但首页 UI 内容实际来自classes_home_dex插件——这就是宿主空壳与秒开兼得的关键。Q2升级插件要改宿主吗不用。升级插件只需修改maven-wgllss-sample-loader-version工程里的LoaderVersionImpl替换宿主的 VersionImpl.kt 职责并重新打包上传宿主代码纹丝不动——这正是全动态化的含义。Q3插件调试方便吗方便。框架原生支持插件 Debug且下载逻辑、版本管理、服务器地址全部动态化连下载逻辑本身都可以插件热更。Q4适合什么规模的项目小、中、大型项目均适用小型项目可用最小插件集去掉 other/other2 按需模块大型项目可充分使用多模块单独插件、单独下载、单独加载的分布式能力。 到这里你已经掌握了WXDynamicPlugin 插件化框架的完整快速上手路径空壳宿主运行 → 看懂 14 个插件文件 → 部署自己服务器 → 一键打包 → 10 套皮肤随意换。快去动手体验1 秒内从启动到首页的极致流畅吧【免费下载链接】WXDynamicPlugin自研零反射零HooK,全动态化插件化框架全网唯一结合启动优化的插件化架构适合小中大型项目均可的插件化架构项目地址: https://gitcode.com/gh_mirrors/wx/WXDynamicPlugin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表