Android Studio使用简介
1.快捷键
Action | Mac OSX | Win/Linux |
---|---|---|
注释代码(//) | Cmd + / | Ctrl + / |
注释代码(/**/) | Cmd + Option + / | Ctrl + Shift + / |
格式化代码 | Cmd + Option + L | Ctrl + Alt + L |
清除无效包引用 | Option + Control + O | Alt + Ctrl + O |
查找 | Cmd + F | Ctrl + F |
查找+替换 | Cmd + R | Ctrl + R |
上下移动代码 | Option + Shift + Up/Down | Alt + Shift + Up/Down |
删除行 | Cmd + Delete | Ctrl + Y |
扩大缩小选中范围 | Option + Up/Down | Ctrl + W/Ctrl + Shift + W |
快捷生成结构体 | Cmd + Option + T | Ctrl + Alt + T |
快捷覆写方法 | Ctrl + O | Ctrl + O |
快捷定位到行首/尾 | Cmd + Left/Right | Ctrl + Left/Right |
折叠展开代码块 | Cmd + Plus,Minus | Ctrl + Plus/Minus |
折叠展开全部代码块 | Cmd + Shift + Plus,Minus | Ctrl + Shift + Plus,Minus |
文件方法结构 | Cmd + F12 | Ctrl + F12 |
查找调用的位置 | Ctrl + Option + H | Ctrl + Alt + H |
大小写转换 | Cmd + Shift + U | Ctrl + Shift + U |
Android Studio如何更改JDK和SDK的路径
按照图设置你SDK或者JDK的路径即可
Android Studio引用第三方库(非gradle)
1.引用第三方jar或者so文件
1.在工程app/libs目录下放入xxx.jar包,如下图所示:
2.这时在app工程中的build.gradle里面会出现如下变化
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile files('libs/BaiduLBS_Android.jar') // 这就是我们导入的第三方jar
}
3.在src/main/目录下新建jniLibs目录,工程会自动加载src目录下的so动态库,放入xxx.so如下图所示
2.引用第三方Module
1.点击File->new->Import Module;具体操作见下图:
2.具体操作见下图:
3.这时在app工程中的build.gradle里面会出现如下变化
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile project(':library') // 这就是我们导入的第三方Moudle
}
Android Studio引用第三方库(gradle)
1.按照下图操作
2.进入下一级界面,即可进入MAVEN搜索第三方库文件,具体操作见下图:
3.这时在app工程中的build.gradle里面会出现如下变化
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.google.code.gson:gson:2.6.2' // 这就是我们导入的第三方Moudle
}
3.Gradle基础
(1)什么是Gradle?
Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。
(2)安装Gradle
在Android Studio系列教程一–下载与安装中新建项目成功后会下载Gradle,貌似这个过程不翻墙也是可以下载,但是访问特别慢,建议翻墙下载。那么下载的Gradle到什么地方呢?
Mac上会默认下载到 /Users/<用户名>/.gradle/wrapper/dists 目录
Win平台会默认下载到 C:\Documents and Settings\<用户名>.gradle\wrapper\dists 目录
你会看到这个目录下有个 gradle-x.xx-all 的文件夹, 如果下载实在太慢,但是又不想翻墙的话,可以自己手动到Gradle官网下载对应的版本,然后将下载的.zip文件(也可以解压)复制到上述的gradle-x.xx-all 文件夹下,不过还是建议让它直接下载的好。
(3)Gradle 基本概念
https://segmentfault.com/a/1190000002439306
红色标记部分从上到下咱们来一步步分析:
9GAG/app/build.gradle
这个文件是app文件夹下这个Module的gradle配置文件,也可以算是整个项目最主要的gradle配置文件,我们来看下这个文件的内容:
// 声明是Android程序
apply plugin: 'com.android.application'
android {
// 编译SDK的版本
compileSdkVersion 21
// build tools的版本
buildToolsVersion "21.1.1"
defaultConfig {
// 应用的包名
applicationId "me.storm.ninegag"
minSdkVersion 14
targetSdkVersion 21
versionCode 1
versionName "1.0.0"
}
// java版本
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
buildTypes {
release {
// 是否进行混淆
minifyEnabled false
// 混淆文件的位置
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
// 移除lint检查的error
lintOptions {
abortOnError false
}
}
dependencies {
// 编译libs目录下的所有jar包
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:21.0.2'
compile 'com.etsy.android.grid:library:1.0.5'
compile 'com.alexvasilkov:foldable-layout:1.0.1'
// 编译extras目录下的ShimmerAndroid模块
compile project(':extras:ShimmerAndroid')
}
这里需要说明几点:
- 文件开头apply plugin是最新gradle版本的写法,以前的写法是apply plugin: ‘android’, 如果还是以前的写法,请改正过来。
- buildToolsVersion这个需要你本地安装该版本才行,很多人导入新的第三方库,失败的原因之一是build version的版本不对,这个可以手动更改成你本地已有的版本或者打开 SDK Manager 去下载对应版本。
- applicationId代表应用的包名,也是最新的写法,这里就不在多说了。
- android 5.0开始默认安装jdk1.7才能编译,但是由于mac系统自带jdk的版本是1.6,所以需要手动下载jdk1.7并配置下,具体可以见我这篇博客Mac下安装和管理Java
- minifyEnabled也是最新的语法,很早之前是runProguard,这个也需要更新下。
- proguardFiles这部分有两段,前一部分代表系统默认的android程序的混淆文件,该文件已经包含了基本的混淆声明,免去了我们很多事,这个文件的目录在
9GAG/extras/ShimmerAndroid/build.gradle
每一个Module都需要有一个gradle配置文件,语法都是一样,唯一不同的是开头声明的是 apply plugin: ‘com.android.library’
9GAG/gradle
这个目录下有个 wrapper 文件夹,里面可以看到有两个文件,我们主要看下 gradle-wrapper.properties 这个文件的内容:
#Thu Dec 18 16:02:24 CST 2014
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip
可以看到里面声明了gradle的目录与下载路径以及当前项目使用的gradle版本,这些默认的路径我们一般不会更改的,这个文件里指明的gradle版本不对也是很多导包不成功的原因之一。
(4)9GAG/build.gradle
这个文件是整个项目的gradle基础配置文件,我们来看看这里面的内容
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
}
}
allprojects {
repositories {
jcenter()
}
}
内容主要包含了两个方面:一个是声明仓库的源,这里可以看到是指明的jcenter(), 之前版本则是mavenCentral(), jcenter可以理解成是一个新的中央远程仓库,兼容maven中心仓库,而且性能更优。另一个是声明了android gradle plugin的版本,android studio 1.0正式版必须要求支持gradle plugin 1.0的版本。
(5)9GAG/settings.gradle
这个文件是全局的项目配置文件,里面主要声明一些需要加入gradle的module,我们来看看9GAG该文件的内容:
include ':app', ':extras:ShimmerAndroid'
文件中的 app, extras:ShimmerAndroid 都是module,如果还有其他module都需要按照如上格式加进去。
4.Android Studio关联SVN相关操作
(1)Android Studio配置SVN
Android Studio关联配置SVN很简单,在Settings里面,找到Version Control->Subversion;在这个页面的控制面板中的General中将Use command line client打勾勾选上,然后浏览本地的SVN安装目录,选到”\svn.exe”即可;在Use command line client下面还有一个Use system default Subversion configuration directory,这个默认是勾选上上的,这个是svn相关配置信息的路径,保留默认路径就行,目前没有发现需要修改什么东西;以上操作如下图:
(2)Android Studio项目关联SVN资源库及添加忽略文件
在Android Studio中新创建一个Android项目,成功后我们先来添加要忽略的文件;在Android Studio中添加忽略文件同Eclipse有所不同,在Eclipse上我们什么时候添加忽略文件都可以,但是在Android Studio中只有在未关联SVN之前添加忽略文件才有效(试了好多次才将忽略文件忽略成功啊!)。Android Studio添加忽略文件同样是在Settings->Version Control(跟版本控制有关的设置都在这个目录下)下的Ignored Files里,点击加号进行忽略文件的设置,Android Studio默认给出了三种忽略方式,供开发者进行选择:忽略指定的文件、忽略文件夹下所有文件和忽略符合匹配规则的文件;如图所示:
点击右侧的“+”进行添加,“-”删除;Android Studio创建的Android项目一般需要忽略.idea文件夹、.gradle文件夹、所有的build文件夹、所有的.iml文件及local.properties文件。忽略完文件后,我们进行项目同SVN的关联,选择VCS->Import into Version Control->Share Project(Subversion);这里说明一点,在Import into Version Control下有Import into Subversion和Share Project(Subversion)两个选项:第一个是直接将项目导入到SVN服务器上,但是这样做本地的项目同SVN服务器没有建立起关联,在导入后项目所有的文件都会变成红色,而且在要提交到SVN服务器时会提示项目不是SVN下的工作副本;第二个是将Android Studio当前项目同SVN服务器关联起来,但是并没有将项目导入到SVN服务器上,需要在完成建立连接后再次提交项目到SVN服务器。两种方式都可以实现将本地代码提交到SVN服务器的功能,但是步骤有所不同,先来完成第二种方式的项目同SVN的关联及代码提交,第一种貌似不正规,之后再说;下图既是第二种方式将本地项目同SVN进行关联的:
之后会弹出选择要分享的SVN地址及其他选项,如下图:
在Define share target下选择第二个可以再trunk下创建你当前项目的文件夹,相应的第一个选项是直接将整个文件都放到trunk文件夹下,第三个在项目文件夹下有创建了一个trunk文件夹,因此建议使用第二中方式;选择完成后点击Share就可以了,会弹出让你选择SVN工作副本的格式化版本(jdk版本),如下图:
建议选择1.8format,我之前选择了其他的试了一下,发现项目总会报出一下错误,原因暂时未发现,就先这样选择吧;点击OK等待一会就能创建本地项目同SVN服务器的关联了;成功后悔自动刷新本地的项目,待项目里的内容变成绿色的即表示已经成功了,如下图所示:
到目前为止只是将项目同SVN服务器建立了联系,并没有将代码提交到SVN服务器上去;如何提交呢,其实很简单,只需点击SVN相关操作按钮里的commit就行了(上图SVN相关操作按钮左起第二个按钮);
点击Commit后Android Studio会先对当前代码进代码分析,如果有错误或者警告会弹出如下的框,如果有错误冲突等需要解决后再提交,如果是警告可以忽略(同Eclipse相同);第一次将整个代码提交到SVN服务器时时间有可能很长,请耐心等待,之后再创建项目时就不会这么慢了。
成功后我们就完成了新建项目同SVN的关联及导入项目到SVN服务器上了。关于第一种方式,在将本地代码导入到SVN服务器后将本地代码删除,然后从SVN服务器上将之前提交的代码更新下来,这样一来也可以同SVN建立关联正常进行开发;第一种方式和第二种方式的区别就在于:第一种是将代码先提交到SVN服务器上,然后再从SVN服务器上更新下来(本地项目同SVN服务器建立联系);第二种是先同SVN服务器监理联系,然后将代码提交到SVN服务器上去。建议使用第二种方式进行新项目的SVN关联。
3.Android Studio SVN代码冲突的解决
关于代码冲突解决的问题,首先要感谢一下知友ShinChven的回答建议。在使用SVN更新服务器上的代码时,有时会弹出代码冲突的对话框,问你是否进行合并,并提供了三种合并方案:accept yours(使用你的)、accept theirs(使用别人的)和merge(合并);
前两个都是进行的覆盖操作,就不多做解释了;当你选择merge合并时,会弹出代码合并对照窗口,一共有三个屏,左右两侧时你和服务器不同的代码并高亮显示不同的部分,带有箭头和叉号,通过点击箭头将两边冲突的代码添加到中间的合并区域中去,点击叉号则辨识放弃那一段代码,待所有冲突处理完成后merge就成功了。
5.参考资料
Android Studio中文社区 http://www.android-studio.org/
Gradle for Android https://segmentfault.com/a/1190000004229002
hyr83960944博客 http://blog.csdn.net/hyr83960944/article/list/2