滴滴的VirtualApk插件化Android项目使用步骤记录

1、VirtualApk介绍:

virtualApk是滴滴出行自主研发的一款优秀的插件化框架,拥有入侵性底、兼容性优秀和功能完备的优点。也正因为是这些优点让我在接触插件化形式开发选中了VirtualApk为切入点。VirtualApk在解耦方面,VirtualAPK是开源方案的首选,推荐大家使用。

VirtualApk项目地址:https://github.com/didi/VirtualAPK

2、为什么写这篇文章:

首先,这篇文章只是作为我的使用记录,这一次使用完后不知道什么时候会再次使用,所以为了避免自己对VirtualApk的遗忘,写了这一边“备忘录”。这篇文章没有源码介绍;没有架构分析;也没有实现方式,只是罗列步骤介绍如何使用VirtualApk框架。如果想要知道这些知识的大神们,后面的就不用看了,没什么技术含量,关于这方面的内容找度娘直接搜索有很多。

3、名词介绍:

宿主项目:要接入插件的承载项目

插件项目:作为插件被宿主项目所使用的项目。

4、开始

首先,创建项目。项目中包含默认的Module-->app。

暂时把它作为宿主项目。

然后,配置宿主项目:

在工程根目录下build.gradle中添加节点,我这里使用的是0.9.4版本。使用时通过文章头的链接进入VirtualApk的github地址使用最新版本。

滴滴的VirtualApk插件化Android项目使用步骤记录_第1张图片
工程Gradle

在项目(宿主项目)的build.gradle中顶部添加:


滴滴的VirtualApk插件化Android项目使用步骤记录_第2张图片
项目Gradle

在App的build.gradle中 compile 添加:


滴滴的VirtualApk插件化Android项目使用步骤记录_第3张图片
添加依赖

5、宿主项目配置:

创建class文件,集成Application类:

滴滴的VirtualApk插件化Android项目使用步骤记录_第4张图片
创建Application类

重写TestApplication类的attachBaseContent方法:


滴滴的VirtualApk插件化Android项目使用步骤记录_第5张图片
重写

编写Activity内容:为界面创建一个按钮,为按钮添加onClick事件,触发启动插件Activity操作。

注意:在触发启动插件之前,需要提前加载插件。

滴滴的VirtualApk插件化Android项目使用步骤记录_第6张图片
加载plugin

Button点击触发事件内容:


滴滴的VirtualApk插件化Android项目使用步骤记录_第7张图片
触发启动plugin

6、插件项目配置:

为当前Project添加plugin Module:

滴滴的VirtualApk插件化Android项目使用步骤记录_第8张图片
add Module...

在插件项目根目录下build.gradle中顶部添加依赖以及插件配置信息。

滴滴的VirtualApk插件化Android项目使用步骤记录_第9张图片
引用virtualApk
滴滴的VirtualApk插件化Android项目使用步骤记录_第10张图片
配置信息

界面编写:

用于区分宿主界面启动插件界面成功,在插件界面添加了一个TextView,text内容写上当前界面是插件Activity的界面。

至此,插件配置完成。

7、构建插件

使用git构建:

进入项目插件项目根目录,点击右键Git Bash Here  输入:

./gradlew clean assemblePlugin   或者   gradle clean assemblePlugin

我就呵呵了,没成功,查找资料,结果gradle可以全自动构建一键搞定:

滴滴的VirtualApk插件化Android项目使用步骤记录_第11张图片
自动构建

双击assemblePlugin直接构建完成,完成后插件目录地址:..(插件项目根目录)\build\outputs\plugin\release

滴滴的VirtualApk插件化Android项目使用步骤记录_第12张图片
生成的插件位置

这里有个坑:

在进行插件构建时,如果宿主项目没有被运行过或者说被构建过,进行插件构建才能成功。

还有一个坑:

资源共享问题,插件项目资源和宿主项目资源的id不能相同,直白一点就是名字不能项目。宿主项目的MainActivity启动插件项目的MainActivity。由于两个Activity所引用的布局资源文件的名字都是layout_main.xml,导致虽然插件Activity被启动成功,但是所引用的布局文件却是宿主项目的layout_main.xml。

将这个插件放置到android手机固定的位置,这个位置在宿主项目中按钮点击事件启动插件时会用到。 插件放到固定目录 运行宿主程序,点击按钮,启动插件Activity。

你可能感兴趣的:(滴滴的VirtualApk插件化Android项目使用步骤记录)