Android studio插件,检查依赖的so是否支持64位(或者其他的abi)

介绍

Android studio插件,检查依赖的so是否支持64位(或者其他的abi)

源码链接

软件架构

apk构建的过程中,会执行{merge[BuildVariants]NativeLibs}这个task去合并所有的依赖,包括lib下的依赖以及远程依赖,通过遍历这个task的输入文件,读取对应文件夹下的so文件并比较;

并且,通过dependencyInsight,我们可以查找到这个so文件最顶层的依赖。

安装教程

  1. 在根目录下的build.gradle中添加
    repositories {
          
          
        maven {
          
          url 'https://gitee.com/kuangxuefeng/MeavenPrivate/raw/dev20200727/CheckApkSoPlugin/'}
    }
    
    dependencies {
          
          
        classpath "com.kxf.checkapksoplugin:CheckApkSoPlugin:0.0.1.alpha"
    }
    
    allprojects {
          
          
        repositories {
          
          
            maven {
          
          url 'https://gitee.com/kuangxuefeng/MeavenPrivate/raw/dev20200727/CheckApkSoPlugin/'}
        }
    }
    
  2. 在moudle的build.gradle中添加
    apply plugin: 'com.kxf.checkapksoplugin.CheckApkSoPlugin'
    
  3. 在moudle的build.gradle中添加配置参数(可选)
    //可配置的
    kxf_CheckApkSoPlugin{
          
          
        //检查的abi类型,默认为全部
        ABI_TYPES = ["armeabi-v7a", "arm64-v8a"]
    }
    

使用说明

  1. 在task列表中找到CheckApkSoPlugin,属于分组kxf,找到后执行
    在这里插入图片描述

  2. 看见success后表示执行成功

    > Task :testcheckso:CheckApkSoPlugin
    kxf => CheckApkSoPlugin start.
    
    ==============success==============
    so file in armeabi-v7a but not in arm64-v8a:
    (pomName=jetified-soaartest-1.0.0.1, soName=libsoaartest.so, soPath=/Users/xuefeng.kuang/.gradle/caches/transforms-3/075e2ee49f1b20eba629c06676b97cd4/transformed/jetified-soaartest-1.0.0.1/jni/armeabi-v7a/libsoaartest.so, dependencyInfo=null)
    (pomName=jetified-solibtest-1.0.0.1, soName=libsolibtest.so, soPath=/Users/xuefeng.kuang/.gradle/caches/transforms-3/f68aa37fa76b1b94707c44c2209eab12/transformed/jetified-solibtest-1.0.0.1/jni/armeabi-v7a/libsolibtest.so, dependencyInfo=com.kxf.aarssotest:aarssotest:1.0.0.1)
    
    so file in arm64-v8a but not in armeabi-v7a:
    
    
    Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
    Use '--warning-mode all' to show the individual deprecation warnings.
    See https://docs.gradle.org/6.8/userguide/command_line_interface.html#sec:command_line_warnings
    
    BUILD SUCCESSFUL in 32s
    5 actionable tasks: 2 executed, 3 up-to-date
    10:35:14: Task execution finished 'CheckApkSoPlugin'.
    
    
  3. 执行log中会输出缺少的so文件,dependencyInfo为依赖关系

特技

qq联系:1024883177

猜你喜欢

转载自blog.csdn.net/qq_15345551/article/details/121518218

相关文章