Eclipse跟AS的不同

从Eclipse到AS不要带着在Eclipse中的主观色彩去在AS中使用,从项目的构成到构建是不同的,下面列举在Eclipse和AS中的一些概念的区别:

WorkSpace和Project

Eclipse的WorkSpace和AS的Project说的可以说是一个东西,也就是说你可以把在AS中的Project理解为WorkSpace。
所以你在AS中new一个Project相当于在Eclipse中重开了一个WorkSpace,注意第一个箭头,显示模式为Project,建议刚用AS时用这种,方便了解里面的文件结构。

Project和Module

跟上面一样,Eclipse中的一个个project也就是相当于AS中的一个个module。上图的module_1和module_2就是我们习惯的eclipse中的一堆project了,把显示模式换为Android之后就更为直观了:

最下面的就是AS中整个Project中所有Gradle的配置了,当然包括所有module的配置了,括号的名字就表示build.gradle对应的配置对象。

Properties和Module Setting

Eclipse中的Properties也是跟AS的Module Setting对应的

可以看到这里可以像在Eclipse的Properties中一样在这里配置一些东西,比如在Module Setting里给Module添加依赖(dependencies)信息也是可以的,并且可以直接搜maven的项目依赖。

jar

明白了上面的三点就可以很快上手了。首先就来说最简单的添加jar包。

  • 可以跟在Eclipse中一样,把jar包往Module里扔,再在jar右键add as library就可以了,然后最后在你的Module文件夹(像上面的module_1)右键make module一下就可以在代码里用jar里的东西了。
  • 也可以自己手动到module里的build.gradle里添加dependencies,上面的方法做的方法本质上就是这种。
    1
    2
    3
    4
    dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile fileTree(dir: 'D:\\repositories\\libs\\java', include: ['*.jar'])
    }

dir可以是电脑上的目录文件。

library项目

有了前面跟Eclipse的比较后,类似地像在Eclipse中添加项目依赖一样,被依赖的项目得是作为library。在Eclipse中我们是进入到Properties把这个项目设置为library(as a library),所以在AS中也是类似的,我们需要把一个module作为library(这个module可以自己新建module也可以导入module,此外我们是可以把一个AS的Project导进成module的或者直接导Project里的单个module也可以),完成后到这个module(我这里是把module_2作为library)把apply plugin: 'com.android.application'改为apply plugin: 'com.android.library'再然后去掉(删除)module_2的build.gradle里的applicationId "com.example.mrzheng.as"(一个library不需要这个,不然make project或make module时会报错)。
build.gradle(module_2)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
apply plugin: 'com.android.library'
android {
compileSdkVersion 21
buildToolsVersion "21.1.1"
defaultConfig {
minSdkVersion 10
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.2'
}

到这里先确认下你的project(AS)的settings.gradle里有没把module都include进去,没有的话加上:

1
include ':module_1', ':module_2'

最后就可以在module_1里就添加library依赖(module_2)了。进入module_1的build.gradle,找到dependencies加上compile project(':module_2')

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.1"
defaultConfig {
applicationId "com.example.mrzheng.as"
minSdkVersion 10
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile fileTree(dir: 'D:\\repositories\\libs\\java', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.2'
compile project(':module_2')
}

现在make module一下就可以使用依赖的项目了(module_2)。

so

之前的版本不知道怎么样,现在正式版的AS添加so打包进apk里的lib里是很简单的,我们只需要把so文件放到libs文件夹里的对应cpu文件夹里,最后在module的build.gradle里加上jni的sourceSets配置:jniLibs.srcDirs = ['libs'],完整代码看上面的build.gradle(module_1)代码片。

Android Studio Jar、so、library项目依赖的更多相关文章

  1. 【转载】Android Studio jar、so、library项目依赖,原文链接http://zhengxiaopeng.com/2014/12/13/Android-Studio-jar、so、library项目依赖/

    前言 Android Studio(以下简称AS)在13年I/O大会后放出预览版到现在放出的正式版1.0(PS.今天又更新到1.0.1了)历时一年多了,虽然Google官方推出的Android开发者的 ...

  2. Android Studio将Eclipse的项目作为module的依赖库

    情形: 我们现在有一个eclipse的项目,我们想把这个项目作为android studio的module的一个依赖库. 以前我们在eclipse的时候常常是在一个工作区里面把一个A工程 as a l ...

  3. [转][Android][Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法

     转自:http://blog.csdn.net/qiujuer/article/details/39754517?utm_source=tuicool [Android][Android Studi ...

  4. [Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法(转)

    [Android][Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法http://blog.csdn.net/qiujuer/article/details/ ...

  5. Android Studio导入System Library步骤

    转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6242170.html 请尊重知识产权!!!  同步更新到CSDN:http://blog.csdn.net ...

  6. [转]Android Studio创建Xposed模块项目时BridgeApi的正确添加方式

    使用Android Studio创建的空项目作为Xposed Module App,对于Api Jar包的引用方式,一开始是按照傻瓜式Jar Lib的处理方式,复制XposedBridgeApi-54 ...

  7. 解决Android Studio 3.0导入module依赖后unable to merge index

    解决Android Studio 3.0导入module依赖后unable to merge index 项目需要使用im, 在项目里导入了腾讯im的几个module依赖, 项目无法编译, 报错una ...

  8. Android studio 添加引用Module项目 与 设置Module项目的Libs的Jar在主项目里使用

    前言 添加引用Module项目 设置Module项目的Libs的Jar在主项目里使用 1.在项目里添加libs包,并且加入jar 2.设置这个module项目的build.gradle depende ...

  9. [Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法

    主要讲解Android Studio中生成aar文件以及本地方式使用aar文件的方法. 在Android Studio中对一个自己库进行生成操作时将会同时生成*.jar与*.aar文件. 分别存储位置 ...

随机推荐

  1. 我有一个 APP 创意,如何将其实现?

    原文链接http://www.techweb.com.cn/business/2015-05-19/2154266_1.shtml 很多人总觉得找到程序猿..哦,是工程师,就可以了.可是你看,大部分 ...

  2. iOS图像资源Images Assets

    1. 在工程中单击并打开导航区域中的Images.xcassets,看看都有些什么东东:]: 2. 在图中可以看到中间位置有两个虚线框,感觉应该可以直接拖文件进来.OK,那就先准备一下资源文件,如下图 ...

  3. Android性能优化(一)

    Android性能优化典范 1.大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能. 从设计师的角度,他们希望App能够有更多的动画,图片等时尚元素来实现流畅的用户体验. 但是Android ...

  4. iOS开发笔记5:多线程之NSThread、NSOperation及GCD

    这篇主要总结下iOS开发中多线程的使用,多线程开发一般使用NSThread.NSOperation及GCD三种方式,常用GCD及NSOperation. 1.NSThread 创建线程主要有以下三种方 ...

  5. 快速与MySQL交互,使用XMAPP打开MySQL数据库,并用shell进行与MySQL交互<Window 10>

    1.如果想要通过XAMPP shell登录MySQL,还需要下载安装好XAMPP. 2.双击打开xampp-control.exe,会出现以下界面,点击开启Apache和MySQL,这样我们就开启服务 ...

  6. 做一些Spring AOP做过的事,封装 jdk动态代理成为一个黑盒子

      怎么使用eclise 抽取方法,请看  利用eclipse 抽取代码片段为方法   抽取完成之后,还需要 ① 将Collection.class换成  target.getClass(),targ ...

  7. animation of android (4)

    TimeAnimator: 与objectAminator不同,它反馈的时间间隔.也就是说TimeAnimator不产生实际的动画效果,他反馈的时间间隔和时间值. 而你并不关心 interpolate ...

  8. windows分离系统文件和用户数据

    2013/12/17更新:使用了一段时间,开机时有时会出现一些错误,不过不影响正常使用,不能忍的是会经常更新,所以暂时不推荐使用. 为了方便地重装系统,同时保留用户数据,想到了分离windows系统文 ...

  9. mysql给数据库授权 GRANT ALL PRIVILEGES ON

    mysql> grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’; show grants for mustang@ ...

  10. TCP面向连接网络编程

    一 TCP&UDP协议 TCP,Tranfer Control Protocol,是一种面向连接的保证可靠传输的协议.通过TCP协议传输,得到的是一个顺序的无差错的数据流.发送方和接收方的成对 ...