Android Studio使用手册

“工欲善其事必先利其器”

作为一个Android开发人员来说,一款好的开发工具也是相当重要的,在相当长的时间礼,Google都是基于Eclipse以ADT插件的形式来开发Android应用的,Eclipse可谓是经典到不能再经典的开发工具了,他几乎什么都可以干,也应用很广泛,三十由于近几年来Android市场的日益扩建,Eclipse似乎有点吃力了,而且平台限制也大,于是,Google在2013年的I/O开发者大会上正式推出了这款杀手级的IDE——Android Studio。


一,初次体验

我也是在1.1的版本就开始接触Android Studio(以下简称AS),刚开始的时候并没有觉得他有什么好用,只是觉得界面上改进很大,挺炫酷的,而且是Gradle云云之类的,但是实际体验,并没有很大的收益,况且作为一个一直用eclipse的人,初次使用还是稍稍有些不习惯,就此,就没有关注了,随后更新1.2,1.3,1.4,真正关心他是在谷歌宣布停止ADT的更新的时候,我才意识到,谷歌要放大招了,谷歌把AS指定为官方的开发工具,这个时候,AS才是真正走向稳定的时候,更别说现在的2.0了,而且现在你去Github上,基本上最新上传的工程大多数是AS生成的,我们就用他来开启我们的编程之路!

 二,Android studio的配置

1.我们先去官网下载一个(其他渠道也是可以滴),地址是:http://developer.android.com/sdk/index.html


三.安装启动


直接Next> 知道安装成功,刚开始的嘶吼要进行一些初始化可能需要联网下载而且会下载几G的SDK,安装完成之后

四.主界面一览


我们新建一个项目进去看看



基本都情况就是这样,所以的东西都变得很方便了,那我们来谈谈其他好玩的东西吧!


五:AS配置设置

 想说,这才是AS最迷人的地方

1.主题 Setting-Appearance-Theme(黑色的主题很受欢迎)




2.字体以及字体大小,Setting-Editor-Colors&Fonts-Font,我们要新建一个自己的区间,然后设置文字的大小以及字体




3.快捷键Setting-Keymap(可以选择各种各样的快捷键,无论你是从OS X 或者是Eclipse转过来的都是可以熟悉的)




4.快捷提示

Eclipse上,你鼠标悬浮在代码上回弹出提示框,但是再AS上是没有的,因为如果电脑配置不是很高的话,这样会让界面很卡(当然,配置高,用AS也有点卡,哈哈),如果你想打开这个功能我们可以进Setting-General,把show quick doc on mouse move勾上就可以了



5.高级代码提示

AS还有一个高级的代码提示,就是你敲代码的自动提示,看起来很炫酷,可是需要区分大小写,在Eclipse上是不区分的,当然,我们也可以设置在Setting-Editor-General-Code Completion的Case sensitive completion中选择None,就可以了!



6.自动导包

Setting-Editor-Auto Import-Java 把勾给勾上就可以了




到这里,我们的基本配置就基本上搭建好了

六.插件

AS上的插件还是很有意思的,如果你运用的好的话,会给你添加很多助力,但是用不好,也没关系,你也不一定要用

注明:以下内容大部分来自于网络和其他地方

Setting-Editor-Plugins在线下载,如果没有,也可以离线安装。离线安装的方法自己搜索哟!



1.ButterKnifeZelezny

ButterKnife视图注入插件,如果你的Activity布局里面有很多组件,写一堆的findViewById岂不是很烦人,ButterKnife解决了这个烦人的问题,这个插件的效果图如下:

2.android-drawable-importer

1.它可以减少导入缩放图像到Android项目所需的工作量,Android Drawable Importer添加了一个在不同分辨率导入画板或缩放指定图像到定义分辨率的选项,该插件包含三个主要功能,可以在New下的Android module的任意地方通过右键访问它们: 1、引入AndroidIcons Drawable 选择资源,指定颜色,改变目标资源名字以及选中所有你想引入的资源。然后会自动创建所有缺失的文件夹,如果已经存在相同名字的drawable,则会进行警告。

2、Scaled Drawable 选择资源并指定分辨率。如果你想缩放引入的图片,你应该选择“其他”选项,然后填充目标分辨率和目标宽度/高度。

3、Multisource-Drawable 引入不同资源的Drawable,设计者根据如下结构设计不同资源的Drawable zip文件,引入一个zip文件即可引入不同分辨率的Drawable。 root/ ./drawable_ldpi.png ./drawable_mdpi.png ./drawable_hdpi.png ./drawable_xhdpi.png 如图所示: 

3.adb-idea 支持直接在AS面板中进行ADB操作,快捷键: * Mac OSX: Ctrl+Shift+A * Windows/Linux: Ctrl+Alt+Shift+A

4.SelectorChapek

按照命名规范自动生成Selector,如图所示:

如何使用:

  • 在资源文件夹下右击,比如’drawable_xhdpi’下:
  • 选择Generate Android Selectors

  • 所有的selector自动出现在drawable文件夹下

5.GsonFormat

根据Gson api接口生成相应的实体类



插件有很多,就不一一赘述了,这里有个链接没有兴趣的可以去看看:http://coolshell.info/blog/2015/09/android-studio-plugins.html

七.Gradle基础

原文:http://stormzhang.com/devtools/2014/12/18/android-studio-tutorial4/

*什么是Gradle?

Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。

*安装Gradle

在上面新建项目成功后会下载Gradle,貌似这个过程不FQ也是可以下载,但是访问特别慢,建议FQ下载。那么下载的Gradle到什么地方呢?

  • Mac上会默认下载到 **/Users/<用户名>/.gradle/wrapper/dists** 目录

  • Win平台会默认下载到 C:\Documents and Settings<用户名>.gradle\wrapper\dists 目录

你会看到这个目录下有个 gradle-x.xx-all 的文件夹, 如果下载实在太慢,但是又不想FQ的话,可以自己手动到Gradle官网下载对应的版本,然后将下载的.zip文件(也可以解压)复制到上述的gradle-x.xx-all 文件夹下,不过还是建议让它直接下载的好。

*下面就以我的开源项目 9GAG 来详细讲解下和Gradle相关的知识, 和Gradle相关的几个文件一般有如下几个:

红色标记部分从上到下咱们来一步步分析:

1. 9GAG/app/build.gradle

这个文件是app文件夹下这个Module的gradle配置文件,也可以算是整个项目最主要的gradle配置文件,我们来看下这个文件的内容:

这里需要说明几点:

  • 文件开头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程序的混淆文件,该文件已经包含了基本的混淆声明,免去了我们很多事,这个文件的目录在 **/tools/proguard/proguard-android.txt** , 后一部分是我们项目里的自定义的混淆文件,目录就在 **app/proguard-rules.txt** , 如果你用Studio 1.0创建的新项目默认生成的文件名是 **proguard-rules.pro** , 这个名字没关系,在这个文件里你可以声明一些第三方依赖的一些混淆规则,由于是开源项目,9GAG里并未进行混淆,具体混淆的语法也不是本篇博客讨论的范围。最终混淆的结果是这两部分文件共同作用的。

  • compile project(‘:extras:ShimmerAndroid’)这一行是因为9GAG中存在其他Module,不知道Module的概念可以看下这篇博客Android Studio系列教程二–基本设置与运行, 总之你可以理解成Android Library,由于Gradle的普及以及远程仓库的完善,这种依赖渐渐的会变得非常不常见,但是你需要知道有这种依赖的。

  • 以上文件里的内容只是基本配置,其实还有很多自定义部分,如自动打包debug,release,beta等环境,签名,多渠道打包等,后续会单独拿出来讲解。

2. 9GAG/extras/ShimmerAndroid/build.gradle

每一个Module都需要有一个gradle配置文件,语法都是一样,唯一不同的是开头声明的是 apply plugin: ‘com.android.library’

3. 9GAG/gradle

这个目录下有个 wrapper 文件夹,里面可以看到有两个文件,我们主要看下 gradle-wrapper.properties 这个文件的内容:

可以看到里面声明了gradle的目录与下载路径以及当前项目使用的gradle版本,这些默认的路径我们一般不会更改的,这个文件里指明的gradle版本不对也是很多导包不成功的原因之一。

4. 9GAG/build.gradle

这个文件是整个项目的gradle基础配置文件,我们来看看这里面的内容

内容主要包含了两个方面:一个是声明仓库的源,这里可以看到是指明的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都需要按照如上格式加进去。

总结

关于gradle的基础知识就介绍到这里,接下来会介绍一种我常用的快速方便的编译查看第三方开源项目的方法,如何导入Android Studio,Gradle常用基本命令,多渠道打包配置等。

 
八.Gradle命令详解与导入第三方包
       Gradle命令详解与导入第三方包

九.Gradle多渠道打包

Gradle多渠道打包

十.log添加过滤项(Filters)

http://blog.csdn.net/hyr83960944/article/details/38268395

这也是我写的第一篇教程类博客,如果以后有什么AS好的用法会继续补充!有疑问或者发现错误欢迎大家直接博客留言,谢谢大家!

Google主推-Android开发利器——Android Studio,这可能是最全的AS教程!的更多相关文章

  1. AllJoyn+Android开发案例-android跨设备调用方法

    AllJoyn+Android开发案例-android跨设备调用方法 项目须要涉及AllJoyn开源物联网框架.前面主要了解了一些AllJoyn主要的概念.像总线,总线附件,总线对象,总线接口这种概念 ...

  2. CSharp程序员学Android开发---3.Android内部元素不填充BUG

    最近公司组织项目组成员开发一个Android项目的Demo,之前没有人有Andoid方面的开发经验,都是开发C#的. 虽说项目要求并不是很高,但是对于没有这方面经验的人来说,第一步是最困难的. 项目历 ...

  3. android开发利器--站在巨人肩膀上前行

    本文主要介绍有助于android开发的三方平台和站点. 一:开发阶段 1:SVN(一个开放源码的版本号控制系统) 团队开发没有server,代码管理就没那么方便了,推荐taocode阿里开源站点,方便 ...

  4. Android开发:Android Studio开发环境配置

    一.android studio下载: 1.Windows版: 下载地址:https://pan.baidu.com/s/1-sg4dN_2B5nn2YJf-C7XLQ 提取码:yedc 2.Mac版 ...

  5. Android开发工具Android Studio、Android SDK和Genymotion完全配置

    所谓“工欲善其事,必先利其器”.Android Studio 是谷歌推出一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提 ...

  6. [android开发篇][android studio 和elipse都需要的流程 android sdk的安装

    第三步.下载并安装AndroidSDK 前面两步,我们已经配置了JDK变量环境,并安装好了Eclipse,通过这两步之后Java的开发环境就准备好了,如果我们只是开发普通的JAVA应用程序的话,那么到 ...

  7. Android开发学习——android体系结构

    Android的体系结构采用了分层架构的思想, 从上层到底层共包括四层,分别是应用程序程序层.应用框架层.系统库和Android运行时和Linux内核. 一 应用程序层 该层提供一些核心应用程序包,例 ...

  8. Android开发学习——android存储

    Android的存储 内部存储空间RAM内存:运行内存,相当于电脑的内存ROM内存:存储内存,相当于电脑的硬盘外部存储空间 SD卡:相当于电脑的移动硬盘    * 2.2之前,sd卡路径:sdcard ...

  9. Android开发学习---android下的数据持久化,保存数据到rom文件,android_data目录下文件访问的权限控制

    一.需求 做一个类似QQ登录似的app,将数据写到ROM文件里,并对数据进行回显. 二.截图 登录界面: 文件浏览器,查看文件的保存路径:/data/data/com.amos.datasave/fi ...

随机推荐

  1. Java中Excel导入功能实现、excel导入公共方法_POI -

    这是一个思路希望能帮助到大家:如果大家有更好的解决方法希望分享出来 公司导入是这样做的 每个到导入的地方 @Override public List<DataImportMessage> ...

  2. Android 自定义View-android学习之旅(十四)

    自定义View的步骤 当andoid提供的系统组件不满足要求时候,完全可以集成View来派生自定义组件. 首定定义一个继承View的子类,然后重写他一个或几个方法. 重写的方法介绍 构造器:这是定制V ...

  3. 高通8x12平台开机画面制作工具

    你可能在网上看到很到关于手动更换手机开机图片的文章,想想自己的开机画面是小两口,好基友的照片多么个性啊.但是你有没有发现,网上下载的什么"一键生成"之类的,在你的手机上不能用啊,( ...

  4. Nginx Upstream模块源码分析(上)

    Upstream模块是一个很重要的模块,很多其他模块都会使用它来完成对后端服务器的访问, 达到反向代理和负载均衡的效果.例如Fastcgi.Memcached.SessionSticky等. 如果自己 ...

  5. UNIX网络编程——套接字选项(setsockopt)

    setsockopt的一些用法: close socket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket: BOOL bReuseaddr=TRUE; setsockop ...

  6. Linux:alias永久生效

    alias(中文称为"别名")允许使用更加简短的名称来重新定义 Linux 中的 Shell 命令,从而简化命令行的输入. 如果经常与 CLI 打交道,那么使用 alias 不仅会 ...

  7. Leetcode_58_Length of Last Word

    Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the l ...

  8. Mybatis插件原理分析(三)分页插件

    在Mybatis中插件最经常使用的是作为分页插件,接下来我们通过实现Interceptor来完成一个分页插件. 虽然Mybatis也提供了分页操作,通过在sqlSession的接口函数中设置RowBo ...

  9. 【闲谈】应聘时要问HR的7个问题

    前段时间朋友看了一本书,聊天中告诫了我关于毕业大学生面试时应该问HR的7个问题.这7个问题如下: 我所应聘的这个职位为什么会出现空缺 请问贵公司最成功的员工曾为公司作出了什么样的贡献 如何评估自己在试 ...

  10. jsp自动编译机制

    总的来说,Jasper的自动检测实现的机制比较简单,依靠某后台线程不断检测JSP文件与编译后的class文件的最后修改时间是否相同,若相同则认为没有改动,但倘若不同则需要重新编译.实际上由于在Tomc ...