美文网首页
「AndroidStudio」编译 Jar 与 aar 包

「AndroidStudio」编译 Jar 与 aar 包

作者: dongbingliu | 来源:发表于2019-04-09 18:37 被阅读0次

    求职的职位中有涉及 SDK 开发,其原理是封装 API 给第三方使用,Jar 包与 aar 包「包含资源文件」

    Jar 包资源打包

    简单记录打包流程:
    NewModuleAndroid LibraryPackageNameFinish

    AS 3.0 + 版本,build.gradle 文件中添加如下代码:

        task clearJar(type: Delete) {
            delete 'build/libs/mySdk.jar'////这行表示如果你已经打过一次包了,再进行打包则把原来的包删掉
        }
    
        task makeJar(type: Copy) {
            from('build/intermediates/packaged-classes/release/') //这行表示要打包的文件的路径,根据下面的内容,其实是该路径下的classes.jar
            into('build/libs1/')  //这行表示打包完毕后包的生成路径,也就是生成的包存在哪
            include('classes.jar')  //看到这行,如果你对分包有了解的话,你就可以看出来这行它只是将一些类打包了
            rename ('classes.jar', 'mySdk.jar')
        }
    
        makeJar.dependsOn(clearJar, build)
    

    AS IDE 右侧 Gradle 工具控制中选择对应 Liabrary Model 中 makeJar

    aar 资源打包

    image.png

    aar 打包重命名

        android.libraryVariants.all { variant ->
            if (variant.buildType.name == 'release') {
                variant.outputs.all {
                    outputFileName = "faceai_${defaultConfig.versionName}_${getTime()}_release.aar"
                }
            }else{
                variant.outputs.all {
                    outputFileName = "faceai_${defaultConfig.versionName}_${getTime()}_debug.aar"
                }
            }
        }
    
    def getTime() {
        return new Date().format("yyyyMMdd", TimeZone.getDefault());
    }
    

    相关文章

      网友评论

          本文标题:「AndroidStudio」编译 Jar 与 aar 包

          本文链接:https://www.haomeiwen.com/subject/hgabiqtx.html