fat-aar-plugin, gradle插件,可以帮助你从android库输出 fat aar

分享于 

5分钟阅读

GitHub

  繁體 雙語
A gradle plugin that helps to output fat aar from android library
  • 源代码名称:fat-aar-plugin
  • 源代码网址:http://www.github.com/Vigi0303/fat-aar-plugin
  • fat-aar-plugin源代码文档
  • fat-aar-plugin源代码下载
  • Git URL:
    git://www.github.com/Vigi0303/fat-aar-plugin.git
    Git Clone代码到本地:
    git clone http://www.github.com/Vigi0303/fat-aar-plugin
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/Vigi0303/fat-aar-plugin
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    fat-aar-plugin

    Download

    这是一个gradle插件,帮助输出来自android库的fat aar。 我受到 android-fat-aar的启发。 目的是使更灵活和功能更强大。 sdk开发人员 (。提供单一aar库的开发人员) 方便。

    软件与 android gradle插件插件( android版本的插件) 一起工作,其他版本的版本没有被测试。 在遇到兼容性问题时提交问题。

    更新:Android插件版本 2.3.0和更高版本,不支持。禁用生成缓存插件可能会执行这里操作。 所以推荐版本是 2.2.3和之前的版本。 看这个问题更多。

    基本上,fat-aar-plugin 制作了一种 hack 方式,以收集资源。jar 文件以及它的他嵌入式依赖项中的某些。 单击这里 了解有关 AAR的更多信息。

    [Features]

    • 支持嵌入 android library projectjava projectandroid library and java library from maven repositories 使用 embed 时,本地 jar 文件不需要,compile 是足够的。
    • 使用 android plugin 提供的原始功能工作良好。 例如多生成类型,产品味道,Manifest 占位符,混淆器。 如果发现错误,提交问题。
    • 当混杂关闭时,嵌入依赖项中的jar 文件将被绑定到 libs 中的中。 否则,它们将被绑定到 classes.jar 中的,这意味着依赖中的类也将被混淆。

    启动

    步骤 1: 应用插件

    将Fragment添加到 root 构建脚本 file:

    buildscript {
     repositories {
     maven {
     url "http://dl.bintray.com/vigidroid/maven" }
     }
     dependencies {
     classpath 'com.android.tools.build:gradle:xxx' classpath 'me.vigi:fat-aar-plugin:0.2.8' }
    }

    将代码段添加到你的android库的build.gradle 中:

    apply plugin: 'me.vigi.fat-aar'
    步骤 2: 嵌入依赖项

    当你想将依赖项嵌入库中时,将 compile 更改为 embed。 就像这个:

    dependencies {
     // aar project embed project(':aar-lib')
     // java project embed project(':java-lib')
     // java dependency embed 'com.google.guava:guava:20.0'// aar dependency embed 'com.android.volley:volley:1.0.0'// other dependencies you don't want to embed in compile 'com.squareup.okhttp3:okhttp:3.6.0'}

    用法见示例

    文件关于AAR文件

    AAR是android库的文件格式。 文件本身是一个zip文件,包含了android中有用的东西。 请参见这里的文件的剖析。

    目前有支持列表:

    • 清单合并
    • 类 jar 和外部 jars 合并
    • res合并
    • R.txt 合并
    • assets 合并
    • jni库合并
    • proguard.txt 合并
    • lint.jar 合并
    • aidl合并?
    • public.txt 合并?

    已知缺陷或者问题

    • Proguard Proguard note Produce产生大量的( 也许)Note: duplicate definition of library class 当混淆器打开时。 解决方法是在 proguard-rules.pro 中添加 -dontnote
    • 将合并的覆盖顺序按收费: 嵌入依赖项的优先级高于其他依赖项。
    • 如果库文件夹和嵌入依赖项具有相同的Res Id值,则为 merge合并冲突。 将引发重复的资源生成异常。 为避免发生缺省冲突,请考虑在可以能的情况下对每个 cmp,使用前缀,如果可以能的话。
    • 更多问题或者缺陷欢迎。

    谢谢

    android-fat-aar


    相关文章