本文共 1349 字,大约阅读时间需要 4 分钟。
Eclipse中的实现是非常简单的。
Eclipse如上图去掉勾选就可以打出所需的包了!
AndroidStudio
相比较而言,AndroidStudio 就比较麻烦一点。鉴于gradle提供的一体化功能,很多规则已经给你定好了。
AndroidStudio 的依赖改成如下
dependencies { provided fileTree(dir: 'libs', include: ['*.jar']) provided 'com.android.support:support-v4:21.0.3' provided project(':main-host')}采用provided的方式,在编译开发的时候,会被引用,但是在打包带的时候,就不会打进来。这种方式也是 library scope.
Compile
compile是对所有的build type以及favlors都会参与编译并且打包到最终的apk文件中。
Provided
Provided是对所有的build type以及favlors只在编译时使用,类似eclipse中的external-libs,只参与编译,不打包到最终apk。
APK
只会打包到apk文件中,而不参与编译,所以不能再代码中直接调用jar中的类或方法,否则在编译时会报错
Test compile
Test compile 仅仅是针对单元测试代码的编译编译以及最终打包测试apk时有效,而对正常的debug或者release apk包不起作用。
Debug compile
Debug compile 仅仅针对debug模式的编译和最终的debug apk打包。
Release compile
Release compile 仅仅针对Release 模式的编译和最终的Release apk打包。
除了这6种方式,还有一种,就是 flavor 名称配合编译类型。
其中2.x版本的 Provided 变成了 compileOnly.
你以为,这样就能解决自己遇到的问题了,太幼稚了,问题总比答案多。在库依赖的过程中,有库依赖库的,有应用依赖库的。
这个库,有的是jar包形式,有的是aar形式,有的就是module形式。问题来了,上面的规则,对于这三种形式,是有限制的。
这个时候,你可能就需要纯手动,去自己编写 gradle 脚本,或者采用别的方式,绕开问题。首先,把编译关给通过了。
当然,如果你是手动编译大神,请忽略所有这些 IDE 工具依赖的毛病。
这里,我就不提供脚本了。请自行github或者google,千万不要百度,你会浪费时间的。
现在又来问题了,如果不想把 jdk_src 和 android sdk 的源码打进来,怎么办?
当然,这个问题在 Eclipse 这个万能通用IDE里面,依然灰常简单,点击一下就能解决问题。但是在 Android Studio 里面,可就没有这么简单了。
首先JDK这个不用担心,这个是运行时环境,默认,也是没有的。
而sdk就不一样了。真正的虚拟机,不会想着只运行android的。
这个问题,留着我研究研究。有结果,会贴出来。提醒一下,在网上,我没找到直接有效的回答,都他妈是浪费时间的回答。
转载地址:http://zcegi.baihongyu.com/