Android Studio jar、so、library项目依赖

转载自:http://zhengxiaopeng.com/2014/12/13/Android-Studio-jar%E3%80%81so%E3%80%81library%E9%A1%B9%E7%9B%AE%E4%BE%9D%E8%B5%96/

前言

Android Studio(以下简称AS)在13年I/O大会后放出预览版到现在放出的正式版1.0(PS.今天又更新到1.0.1了)历时一年多了,虽然Google官方推出的Android开发者的IDE对我们Android DEV是很有吸引力的,但考虑到beta版还是太多问题所以自己主要还是把AS当做尝鲜为主,每放出一个较大更新就下载下来试试,感觉还是挺好的,渐渐用AS的人越来越多,Github上的项目也基本是AS的了,Google的sample也采用AS,所以使用Eclipse跟外界交流越来越困难啊。到现在android-studio-bundle-135.1629389AS正式版的推出,我们有理由从Eclipse迁移到AS了。
要迁移到AS中开发那么要掌握AS中的项目管理是必须的,基本的new project、run什么的就不提了,这篇文章记录我在AS中在项目中解决jar包、library项目依赖、so动态链接库的问题,版本控制Git、SVN等这篇文章不涉及。这么多废话后下面开始。

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')
build.gradle(module_1)

     
     
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)代码片。

END

做完上面的工作,jar包、so动态链接库、library依赖项目里的代码就都可以正常工作了,正常的项目开发已经没什么问题。最后给上本博文的源码:Android Studio jar、so、library项目依赖,导进AS里后,run module_1即可。
最最后奉上Android Studio快捷键大全(大部分来源于:http://ask.android-studio.org/?/article/12):

附录(IDEA(Android Studio) 快捷键)

说明:斜体文字表示,测试时没有效果或者没有测试时没有达到预先条件的情况下没有效果。

IDE

按键说明
F1帮助
Alt+F1查找文件所在目录位置
Alt+1快速打开或隐藏工程面板
Ctrl+Alt+S打开设置对话框
Alt+Home跳转到导航栏
Esc光标返回编辑框
Shift+Esc光标返回编辑框,关闭无用的窗口
Shift+Click关闭标签页
F12把焦点从编辑器移到最近使用的工具窗口
Ctrl+Alt+Y同步
Ctrl+Alt+S打开设置对话框
Alt+Shift+Inert开启/关闭列选择模式
Ctrl+Alt+Shift+S打开当前项目/模块属性
Alt+Shift+C查看文件的变更历史
Ctrl+Shift+F10运行
Ctrl+Shift+F9debug运行
Ctrl+Alt+F12资源管理器打开文件夹

编辑

按键说明
Ctrl+C复制当前行或选中的内容
Ctrl+D粘贴当前行或选中的内容
Ctrl+X剪切当前行或选中的内容
Ctrl+Y删除行
Ctrl+Z倒退
Ctrl+Shift+Z向前
Alt+Enter自动修正
Ctrl+Alt+L格式化代码
Ctrl+Alt+I将选中的代码进行自动缩进编排
Ctrl+Alt+O优化导入的类和包
Alt+Insert得到一些Intention Action,可以生成构造器、Getter、Setter、将 == 改为 equals()
Ctrl+Shift+V选最近使用的剪贴板内容并插入
Ctrl+Alt+Shift+V简单粘贴
Ctrl+Shift+Insert选最近使用的剪贴板内容并插入(同Ctrl+Shift+V)
Ctrl+Enter在当前行的上面插入新行,并移动光标到新行(此功能光标在行首时有效)
Shift+Enter在当前行的下面插入新行,并移动光标到新行
Ctrl+J自动代码
Ctrl+Alt+T把选中的代码放在 try{}if{}else{}
Shift+Alt+Insert竖编辑模式
Ctrl+ /注释 //
Ctrl+Shift+ /注释 /*...*/
Ctrl+Shift+J合并成一行
F2/Shift+F2跳转到下/上一个错误语句处
Ctrl+Shift+Back跳转到上次编辑的地方
Ctrl+Alt+Space类名自动完成
Shift+Alt+Up/Down内容向上/下移动
Ctrl+Shift+Up/Down语句向上/下移动
Ctrl+Shift+U大小写切换
Tab代码标签输入完成后,按 Tab,生成代码
Ctrl+Backspace按单词删除
Ctrl+Shift+Enter语句完成
Ctrl+Alt+J用动态模板环绕

文件

按键说明
Ctrl+F12显示当前文件的结构
Ctrl+H显示类继承结构图
Ctrl+Q显示注释文档
Ctrl+P方法参数提示
Ctrl+U打开当前类的父类或者实现的接口
Alt+Left/Right切换代码视图
Ctrl+Alt+Left/Right返回上次编辑的位置
Alt+Up/Down在方法间快速移动定位
Ctrl+B快速打开光标处的类或方法
Ctrl+W选中代码,连续按会有其他效果
Ctrl+Shift+W取消选择光标所在词
Ctrl+ - / +折叠/展开代码
Ctrl+Shift+ - / +折叠/展开全部代码
Ctrl+Shift+.折叠/展开当前花括号中的代码
Ctrl+ ] / [跳转到代码块结束/开始处
F2 或 Shift+F2高亮错误或警告快速定位
Ctrl+Shift+C复制路径
Ctrl+Alt+Shift+C复制引用,必须选择类名
Alt+Up/Down在方法间快速移动定位
Shift+F1要打开编辑器光标字符处使用的类或者方法 Java 文档的浏览器
Ctrl+G定位行

查找

按键说明
Ctrl+F在当前窗口查找文本
Ctrl+Shift+F在指定环境下查找文本
F3向下查找关键字出现位置
Shift+F3向上一个关键字出现位置
Ctrl+R在当前窗口替换文本
Ctrl+Shift+R在指定窗口替换文本
Ctrl+N查找类
Ctrl+Shift+N查找文件
Ctrl+Shift+Alt+N查找项目中的方法或变量
Ctrl+B查找变量的来源
Ctrl+Alt+B快速打开光标处的类或方法
Ctrl+Shift+B跳转到类或方法实现处
Ctrl+E最近打开的文件
Alt+F3快速查找,效果和Ctrl+F相同
F4跳转至定义变量的位置
Alt+F7查询当前元素在工程中的引用
Ctrl+F7查询当前元素在当前文件中的引用,然后按 F3 可以选择
Ctrl+Alt+F7选中查询当前元素在工程中的引用
Ctrl+Shift+F7高亮显示匹配的字符,按 Esc 高亮消失
Ctrl+Alt+F7查找某个方法的所有调用地方
Ctrl+Shift+Alt+N查找类中的方法或变量
Ctrl+Shift+O弹出显示查找内容
Ctrl+Alt+Up/Down快速跳转搜索结果
Ctrl+Shift+S高级搜索、搜索结构

重构

按键说明
F5复制
F6移动
Alt+Delete安全删除
Ctrl+U转到父类
Ctrl+O重写父类的方法
Ctrl+I实现方法
Ctrl+Alt+N内联
Ctrl+Alt+Shift+T弹出重构菜单
Shift+F6重构-重命名
Ctrl+Alt+M提取代码组成方法
Ctrl+Alt+C将变量更改为常量
Ctrl+Alt+V定义变量引用当前对象或者方法的返回值
Ctrl+Alt+F将局部变量更改为类的成员变量
Ctrl+Alt+P将变量更改为方法的参数

调试

按键说明
F8跳到下一步
Shift+F8跳出函数、跳到下一个断点
Alt+Shift+F8强制跳出函数
F7进入代码
Shift+F7智能进入代码
Alt+Shift+F7强制进入代码
Alt+F9运行至光标处
Ctrl+Alt+F9强制运行至光标处
Ctrl+F2停止运行
Alt+F8计算变量值

VCS

按键说明
Alt+ ~VCS 操作菜单
Ctrl+K提交更改
Ctrl+T更新项目
Ctrl+Alt+Shift+D显示变化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值