Android studio 中的gradle粗解

来源:互联网 发布:淘宝网站策划 编辑:程序博客网 时间:2024/06/05 02:21
一.Android studio生成aar文件
1.在Android Studio1.4中,New project,先默认新建一个Applicaton module,接后File > New > New Module,选择Androd Library > Next,新建的Library与正常的Application最大区别是module build.gradle中是apply plugin: ‘com.android.library’ 而不是 apply plugin: ‘com.android.application’.
2.Build > Make project,自动生成aar文件。 目录build-->outputs-->aar
二、添加aar依赖
1、将aar导入libs目录下
2、在Application Module/build.gradle中添加repositories { flatDir { dirs 'libs' } }
3、在Application Module/build.gradle中添加依赖
dependencies { compile(name:'mylibrary-debug', ext:'aar') }


Android 的代码仓库jCenter
1.标准的Android代码库仓库,里面有很多开源的工具类和控件。各种开发资源repositories {jcenter()}
2.通过gradle中的compile导入外部依赖包(jar、arr),会首先查看本地是否有依赖包(我的目录为C:\Users\admin\.gradle\caches\modules-2\files-2.1),如果没有则会从jCenter代码库中下载到本地,最后进行引入。
compile编译的意思,通过compile导入的包,会编译成class文件,在classes.dex中(apk解压缩之后可以看到)。
3、上传arr包到就Centerhttp://www.jianshu.com/p/31410d71eaba

Dalvik虚拟机和Java虚拟机的区别
原文链接:http://www.cnblogs.com/lao-liang/p/5111399.html 
  本质上,Dalvik也是一个Java虚拟机。但它特别之处在于没有使用JVM规范。大多数Java虚拟机都是基于栈的结构(详情请参考:理解Java虚拟机体系结构),而Dalvik虚拟机则是基于寄存器。基于栈的指令很紧凑,例如,Java虚拟机使用的指令只占一个字节,因而称为字节码。基于寄存器的指令由于需要指定源地址和目标地址,因此需要占用更多的指令空间。Dalvik虚拟机的某些指令需要占用两个字节。基于栈和基于寄存器的指令集各有优劣,一般而言,执行同样的功能,前者需要更多的指令(主要是load和store指令),而后者需要更多的指令空间。需要更多指令意味着要多占用CPU时间,而需要更多指令空间意味着数据缓冲(d-cache)更易失效。更多讨论,虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 给出了非常详细的参考。
  Java虚拟机运行的是Java字节码,而Dalvik虚拟机运行的是专有文件格式dex。在Java程序中,Java类会被编译成一个或多个class文件,然后打包到jar文件中,接着Java虚拟机会从相应的class文件和jar文件中获取对应的字节码。Android应用虽然也使用Java语言,但是在编译成class文件后,还会通过DEX工具将所有的class文件转换成一个dex文件,Dalvik虚拟机再从中读取指令和数据。dex文件除了减少整体的文件尺寸和I/O操作次数,也提高了类的查找速度。
原创粉丝点击