滴滴插件VirtualApk学习一 编译

一 代码

代码下载

git clone  https://github.com/didi/VirtualAPK

代码结构:

  • VirtualAPk
    • AndroidStub 插桩文件,配合编译
    • app  示例demo主工程
    • CoreLibrary 核心库
    • PluginDemo 示例demo插件
    • virtualapk-gradle-plugin gradle插件

二 编译

  1. 目前版本的代码只支持2.14.1版本的gradle,并且插件工程PluginDemo无法通过as来编译,因此选择使用gradlew命令来编译最方便。
  2. clone代码以后,有两个分支:master和dev。最好切换到dev分支,亲测master分支在编译过程中会有一些莫名其妙的问题,官方qq讨论群目前也说明使用dev分支来调试。

下面通过gradlew命令来编译插件工程吧:

cd VirtualApk

./gradlew clean

./gradlew build

如果结果返回BUILD SUCCESSFUL则说明宿主工程构建成功,此时app AndroidStub CoreLibrary三个目录下的build子目录会生成对应的apk或者aar文件

接着编译插件工程:

cd PluginDemo

./make.sh

如果结果返回BUILD SUCCESSFUL则说明插件工程构建成功

//make.sh脚本
./gradlew clean assemblePlugin
adb push app/build/outputs/apk/app-beijing-release-unsigned.apk /sdcard/Test.apk
adb shell am force-stop com.didi.virtualapk
adb shell am start -n com.didi.virtualapk/com.didi.virtualapk.MainActivity

make.sh文件包括gradlew编译命令,将插件工程重新命名然后推送到设备sdcard目录下,然后重新启动宿主工程。

三 问题记录

  1. clone代码后checkout到dev分支
  2. 插件工程无法通过as编译。目前VirtualApk只支持2.14.1,所以使用gradle命令也会存在版本冲突问题。因此通过graldew命令可以解决这两个问题。
  3. 其他问题可以看官网issue讨论

猜你喜欢

转载自blog.csdn.net/rambomatrix/article/details/78502206