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?(二)
Android studio 中引用jar的其实是Maven?(一)的更多相关文章
- Android studio 中引用jar的其实是Maven?(二)
上一篇:Android studio 中引用jar的其实是Maven?(一) 搭建maven仓库: 去了解一个新的事物的时候,最好的方式就是去使用它.例如去了解一座城市的时候,最好的方式就是乘坐公共交 ...
- Android Studio如何引用jar包裹(不gradle)
这和eclipse最大的区别.与非常人的预期开始Android Studio我们很不高兴这一套. 它直接在地图上.首先通过File->Projcet structure打开project结构界面 ...
- 关于Android Studio中第三方jar包的Javadoc绑定
原文地址:http://blog.csdn.net/a739697044/article/details/28116189 现在刚开始从Eclipse转用Android Studio,现在在尝试使 ...
- Android Studio中解决jar包重复依赖导致的代码编译错误
在原本的代码中已经使用了OKHTTP和rxjava,然后今天依赖retrofit的时候一直报错 Program type already present: okhttp3.internal.ws.Re ...
- 在Android Studio中导入jar包
#1 下载jar包文件, #2 拷贝到libs目录下 #3 打开你的build.gradle,在dependencies加入如下代码 dependencies {compile files('libs ...
- 在Android Studio中调用so中的方法
本节用的so是上节用Android Studio创建的so.想在Android Studio中调用so中的方法,需要先引用so.Android Studio中引用so的方法有二种,下面开始介绍. 一 ...
- Xamarin Android中引用Jar包的方法
新建一个Java Bingdings Library 将Jar包复制,或使用添加已存在的文件,到Jars文件夹中 确认属性中的“生成操作” 如果有类型转换不正确,请修改Transforms文件夹中的相 ...
- Android Studio中如何打JAR包
Android Studio中对于library类型的Moudle,默认打出来的是AAR包, 但有时候我们的SDK还需要共享给一些其他eclipse的项目使用,这样我们就需要输出JAR包, 可以通过在 ...
- Android ImageView 不显示JPEG图片 及 Android Studio中怎样引用图片资源
Android ImageView 不显示JPEG图片 今天在写一个小实例,ImageView在xml里面设置的是INVISIBLE,在代码里须要设置成setVisibility(View.VISIB ...
随机推荐
- CSS3中不常用但很有用的属性-1
内容来源于W3Cschool和<图解CSS3核心技术与案例实战> 1.:target选择器 URL 带有后面跟有锚名称 #,指向文档内某个具体的元素.这个被链接的元素就是目标元素(targ ...
- fedora27安装DB2 Express-C 11
首先在官网下载对应的安装包和语言包两个文件. 然后通过tar -zxvf命令将下载的两个文件解压. 其中一个文件解压后是名为expc的文件,进入这个文件.里面有一个名为db2setup的文件. 在命令 ...
- 在 .NET Core 中使用 DiagnosticSource 记录跟踪信息
前言 最新一直在忙着项目上的事情,很久没有写博客了,在这里对关注我的粉丝们说声抱歉,后面我可能更多的分享我们在微服务落地的过程中的一些经验.那么今天给大家讲一下在 .NET Core 2 中引入的全新 ...
- Vim+Vundle+YouCompleteMe 安装
这段时间在Centos 7上开发c++程序,想为vim安装YouCompleteMe插件,参照几个博客无果,果断上官网找解决方案.功夫不负苦心人,终于搞定. 学习东西还是要多上官网. 下面送上本次的收 ...
- [LeetCode] Largest Palindrome Product 最大回文串乘积
Find the largest palindrome made from the product of two n-digit numbers. Since the result could be ...
- Unity3D UGUI 自动调节大小
可添加以下组件 组件包含的两个枚举参数,可以自行设定适应方式. 例如一个Text UI元素,当文字过多的时候他不会自动增加高度而导致文字不能完全显示,这时候就可以挂载这个组件,如上图设置参数,就可以自 ...
- 关于wooyun-2015-096990的总结
漏洞url:http://wooyun.jozxing.cc/static/bugs/wooyun-2015-096990.html 摘要 if(!ini_get('register_globals' ...
- ●BZOJ 4237 稻草人
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=4237 题解: CDQ分治,单调栈 把所有点先按x从小到大排序,然后去CDQ分治y坐标. 在分 ...
- ●BZOJ 4176 Lucas的数论
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=4176 题解: 莫比乌斯反演,杜教筛 首先有这么一个结论: 令d(n)表示n的约数的个数(就是 ...
- Hello,World!!----来自半个新OIer的问候
为了记录OI生涯的点点滴滴故申请此博客,说是半个新OIer,其实我的OI生涯并不算很短了吧...现在也算是初三下学期了...也算是混迹NOIP第5个年头了.文化课上也没什么临考压力,那就好好准备第5场 ...