浏览器各模块的编译依赖关系总结

作者: ahking17 | 来源:发表于2016-12-27 14:51 被阅读161次
.aar文件与.jar文件的区别

两者区别:
*.jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有res中的文件。
*.aar:包含所有资源,class以及res资源文件全部包含

Gradle 的一些基本依赖配置方式如下:
输出 apk :apply plugin: 'com.android.application'
输出 aar : apply plugin: 'com.android.library'

compile fileTree(dir: 'xxx', include: ['*.jar', "*.xxx"]):将某个目录下所有符合扩展名的文件作为依赖;
compile 'com.xx.xx:ProjectName:Version':配置Maven` 库作为依赖;在 Maven 库中心(http://search.maven.org/#search) 可以搜索自己想用的库进行依赖;
compile project(':AnotherModule'):配置另一个 Module 作为本 Module 的依赖,被依赖的 Module 必须被导入到当前工程中;
compile files('xxx.jar'):配置某个 jar 包作为依赖。
以src/chrome/android/java/build.gradle为例:
apply plugin: 'com.android.application'

dependencies {
    compile fileTree(dir: 'libs', exclude: 'android-support-multidex.jar', include: '*.jar') //将libs目录下的所有*.jar作为依赖, 除了android-support-multidex.jar
    compile 'com.android.support:multidex:1.0.0'  //使用Maven库中的multidex作为依赖
    compile project(':mediaplayer')
    compile project(':web_contents_delegate_android')
    compile project(':browser_I')
    compile project(':chromium_gen')
    compile project(':hostlib')
    compile files('libs/decrawso.jar') //这几行是没用的
    compile files('libs/qihoospeechrecognition.jar') //这几行是没用的
    compile files('libs/QHStatAgent.jar') //这几行是没用的
    compile files('libs/adsdk_0.1.16.1125.jar') //这几行是没用的
    compile files('libs/andfix.jar') //这几行是没用的
    compile files('libs/opensdk-release.jar') //这几行是没用的
    compile files('libs/BluewareAgent.jar') //这几行是没用的
}

说明:

  1. 输出的是apk文件, 输出位置在:
    src/chrome/android/java/build/outputs/apk/chrome-debug.apk

  2. 依照第一条依赖规则, 根本没必要写, "//这几行是没用的",
    去掉后编译也可以通过, 说明写build.gradle的开发对gradle的依赖规则并没有充分了解.

再以src/chrome/android/chromium_gen/build.gradle为例:
apply plugin: 'com.android.library'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':base')
    compile 'com.android.support:appcompat-v7:23.1.1' //使用Maven库中的appcompat作为依赖
    compile 'com.android.support:support-v13:23.1.1' //使用Maven库中的support作为依赖
}

说明:
输出的是aar文件, 输出位置在:
src/chrome/android/chromium_gen/build/outputs/aar/chromium_gen-debug.aar

------DONE.-----------

相关文章

  • 浏览器各模块的编译依赖关系总结

    .aar文件与.jar文件的区别 两者区别:*.jar:只包含了class文件与清单文件,不包含资源文件,如图片等...

  • webpack核心原理二:源码

    思路 递归的解析出模块之间的关系 babel编译转换各模块的语法 生成浏览器端可执行的js文件 bundle.js...

  • Android源码模块编译

    编译指令 mmm:编译指定目录下的模块,不编译它所依赖的其它模块。 mma:编译当前目录下的模块及其依赖项。 mm...

  • 对webpack的认识?

    webpack是一个模块打包工具, 你可以使用webpack管理你的模块依赖, 并编译输出各模块所需的静态文件. ...

  • Android程序设计之设计模式开篇

    一、高内聚低耦合 1、耦合:耦合是指程序设计各模块之间的依赖关系,包括控制关系、调用关系、数据传递关系,依赖越紧密...

  • ARouter Module模块化框架

    利用ARouter实现的模块化框架,可以单独编译运行某个module,通过开关修改依赖关系。 模块化最基本的特性就...

  • es6 module

    ES6 模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。CommonJS 和...

  • ES6 Module1

    概述 ES6模块的设计思想是尽量静态化,使编译时就能确定模块的依赖关系和输入输出的变量.ES6模块通过export...

  • Module的语法

    概述 ES6 模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。CommonJ...

  • module语法

    ES6模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输出和输入的变量。 1、export命令...

网友评论

    本文标题:浏览器各模块的编译依赖关系总结

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