Android studio 中引用jar的其实是Maven?(一)

由于Studio比eclipse多了一步对工程构建的步骤,即为build.gradle这个文件运行,因此其引入第三方开发jar包与lib工程对比Eclipse已完成不同,引入第三方jar与lib工程显得并没有那么友好了,因为过程中会涉及更多内容,而且你必须认清楚studio的目录结构。 
举个例子: 
下图是我在git上面下载的一个工程,工程中包括了一个lib工程和第三方jar包。 
 
以上为一个工程的projest视图,由这个视图可以看出,其中有两个代码模块,一个是demo,一个是library,这两个代码模块会被粗体文字标示出来。还有一个大的文件分支:External Libraries,由字面上的意思就是,第三方依赖的库文件。然后,下面一推的jar包。 
还有其他的一些文件,一些gradle脚本相关的文件,如果第一次使用studio你会很惊讶,究竟这些文件又啥用呢?其实除了demo和library之外的文件都是这个工程的构建文件,这个工程的建立依赖了这些文件。因此如果还不够明白,我们可以切换到android工程视图来看。

 
上图是一个工程的android视图,由视图可以看出,该工程下面包含了三个部分:demo,library,Gradle Scripts。 
demo是主体工程,library是依赖库,那么Gradle Scripts就是这个工程的构建脚本了。Gradle Scripts下面可以到脚本的一些属性设置项,settings决定了脚本目标模块是谁,而三个不同的build.gradle则针对不同的模块,针对其后的括号内容。

下图是这个工程的的build.gradle(project)的内容: 
 
由上图可知,负责构建project的gradle脚本,仅仅定义了gradle的版本,并且注释着:

<code class="hljs lua has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">    // NOTE: Do <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">not</span> place your application dependencies here; they belong
        // <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> the individual <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">module</span> build.gradle files</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li></ul>

貌似这样看来瞬间对studio的工程结构清晰了很多,可是问题又来了:在android视图下面,第三方android的jar包去哪里了,即External Libraries去哪里?而在project视图下,这些jar又是在哪里下载的?

关于第一个问题,为何在android视图下面没有显示第三方jar包我还不清楚,是studio犯抽了还是故意隐藏掉,不得而知。 
关于在哪里下载,这个必须好好找找原因。 
在第一次打开使用各个模块的build脚本之后,你会发现,studio开始下载一些工具库,包括在project视图下面的第三方jar包,而这些jar在哪里定义?哪里下载呢?

切换回project视图,你会发现这些第三方jar包都是被定义在各个模块中的脚本中,而这些脚本都引用了仓库,maven仓库,又脚本上段可以看出这个仓库名称”jcenter()“. 

既然是一个代码仓库,那么总会有下载地址的吧,所以在脚本里面,按住ctrl,选中”jcenter()“这个方法,跳到这个方法实现类里面,如图: 

找到这个方法定义之后,在往上找,找到该类: 

ctrl+点击该类,你会发现惊喜。没错,仓库的地址定义在这个类ArtifactRepositoryContainer里面:

然后打开以上网址,你会惊讶地发现,这个仓库实在有太多代码块了,按着jar包名称,可以慢慢找到之前定义好的jar包。 

至于他们如何对这些jar包进行下载的,有待进一步研究maven仓库。

下一篇: Android
studio 中引用jar的其实是Maven?(二)

时间: 2024-09-19 20:32:21

Android studio 中引用jar的其实是Maven?(一)的相关文章

github-Android studio中引用viewpagerindicator报错

问题描述 Android studio中引用viewpagerindicator报错 在github中下载了Viewpagerindicator的libray包,然后以Module的方式导入项目,然后就提示SDK没有16的,然后我就更改了SDK的为当前下载的版本,如图所示: 下面是我更换成本地有的SDK的图片: 以下是更换完错误的图片: 请大神速来,我都混乱了,不知道这是我哪里少做了,还是下载viewpagerindicator有错,都已经困扰两天了,希望大神赐教!! 解决方案 错误已解决!!V

Android studio中生成引用.aar和.jar的方法详解_Android

在Android Studio中对一个自己库进行生成操作时将会同时生成*.jar与*.aar文件. 分别存储位置:      *.jar:库 /build/intermediates/bundles/debug(release)/classes.jar      *.aar:库 /build/outputs/aar/libraryname.aar .jar 与 .aar的区别 从名称上来讲,一个是java application resource:一个是android application r

Android studio中生成引用.aar和.jar的方法详解

在Android Studio中对一个自己库进行生成操作时将会同时生成*.jar与*.aar文件. 分别存储位置: *.jar:库 /build/intermediates/bundles/debug(release)/classes.jar *.aar:库 /build/outputs/aar/libraryname.aar .jar 与 .aar的区别 从名称上来讲,一个是java application resource:一个是android application resource: 那

Android Studio中如何打JAR包

 Android Studio中对于library类型的Moudle,默认打出来的是AAR包,  但有时候我们的SDK还需要共享给一些其他eclipse的项目使用,这样我们就需要输出JAR包,  可以通过在Moudle中的build.gradle加入task来实现   1 2 3 4 5 6 7 8 9 task makeJar(type: Copy) {     delete 'build/libs/mysdk.jar'     from('build/intermediates/bundle

android studio-如何将Android Studio 中的项目打包成jar文件,求方法

问题描述 如何将Android Studio 中的项目打包成jar文件,求方法 如题,求能用的方法,试了好多百度的方法,不怎么好用啊,越详细越好 解决方案 AS 生成Jar包 在Gradle中添加任务声明 def makeJar(String target, String classDir) { exec { executable "jar" //调用jar args "cvf", target args "-C", classDir args

安卓开发 post方法-如何将jar包导入android studio 中?

问题描述 如何将jar包导入android studio 中? 在导入架包时,复制从GitHub中复制的jar包,但无法粘贴到API上面 解决方案 新建一个lib或者bin目录,然后添加进去就可以,如果github提供了gradle导入的方式,可以直接在build.gradle里面配置即可. 解决方案二: 直接粘贴到bin目录下,然后右键add to library 解决方案三: 先把jar包copy到项目libs下,再add就行了 解决方案四: AndroidStudio用于开发安卓Apk非常

Xamarin Android中引用Jar包的方法

新建一个Java Bingdings Library 将Jar包复制,或使用添加已存在的文件,到Jars文件夹中 确认属性中的"生成操作" 如果有类型转换不正确,请修改Transforms文件夹中的相应转换文件   之后编译此项目,在Android项目中引用 即可

利用好 Android Studio 中的 APK Analyzer

本文讲的是利用好 Android Studio 中的 APK Analyzer, 最近的 Android Studio 插件中我最喜欢的是 APK Analyzer.你可以从顶端菜单栏中的 Build 找到 Analyze APK.  专业提示:你也可以拖拽 APK 文件到编辑栏中打开. APK Analyzer 让你可以打开并审查存于你电脑中的 APK 文件的内容,不管它是通过本地 Android Studio 工程构建,还是需要从服务器上或者其他构件仓库中构建后得到的.它不需要必须要在任何你

android studio 中代码为什么会有一块是黄色的高亮显示?

问题描述 android studio 中代码为什么会有一块是黄色的高亮显示? 百度没有找到理想的答案 解决方案 提示你,这块有内存泄露的危险,handler最好声明为static的,里面对外部类,使用若引用 解决方案二: 就是警告的意思 说明这里可以优化 解决方案三: 工作区背景设置问题,去preferences找找看,重新设置背景颜色