Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具

Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具


记得我的第一篇博客就是写Android Studio,但是现在看来还是有些粗糙了,所有重构了一下思路,覆写了一篇

  • Google主推-Android开发利器——Android Studio,这可能是最全的AS教程!

Android Studio,自Google2013年发布以来,就倍受Android开发者的喜爱,我们本书,就是基于Android Studio来进行案例演示的,大家都知道,Android Studio的前身是基于IntelliJ IDEA,而在此之前,我们开发Android一直以来都是以Eclipse用ADT插件的形式来开发了,可能也是Android的不断壮大,Google决定像苹果的Xcode或者微软的Visual Studio一样,也给自家的产品开发一套定制工具,所以Android Studio应运而生,现阶段,Android Studio正式版已经更新到2.X版本了,各方面的性能已经很稳定了,这就是我们用它来开发的理由

1.1官方简介

既然要使用Android Studio,所以我还是建议先看一下官方的介绍,这样,我们在后面讲一些使用方法的时候,就可以轻车熟路了

1.1.1 智能代码编辑器

Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具_第1张图片

Android Studio 的核心是一个智能代码编辑器,可进行高级代码完成、重构和代码分析。

这款功能强大的代码编辑器可帮助您成为更高产的 Android 应用开发者。

1.1.2 代码模板和 GitHub 集成

Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具_第2张图片

新项目向导让开始一个新项目变得前所未有的简单。

可使用适用于不同模式(如抽屉式导航栏和视图分页器)的模板代码开始项目,甚至可以从 GitHub 导入 Google 代码示例。

1.1.3 多屏幕应用开发

Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具_第3张图片

构建适用于 Android 手机、平板电脑、Android Wear、Android TV、Android Auto 以及 Google Glass 的应用。

Android Studio 内全新的 Android 项目视图和模块支持让应用项目和资源管理变得更加轻松。

1.1.4 用于模拟所有形状和尺寸的虚拟设备

Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具_第4张图片

Android Studio 预先配置了经过优化的模拟器映像。

经过更新和精简的虚拟设备管理器可为常见 Android 设备提供预定义设备配置文件。

1.1.5 Android 版本借助 Gradle 演进

Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具_第5张图片

使用同一项目为您的 Android 应用创建多个具有不同功能的 APK。

使用 Maven 管理应用依赖项。

使用 Android Studio 或命令行构建 APK。

1.1.6 总结

  • 这款由 JetBrains 推出并广受欢迎的 Java IDE 以 IntelliJ IDEA Community Edition 为基础构建
  • 基于 Gradle 的灵活构建系统
  • 构建变体和多 APK 生成
  • 为 Google 服务和各种设备类型提供扩展模板支持
  • 支持主题编辑的富布局编辑器
  • 可捕捉性能、可用性、版本兼容性以及其他问题的 Lint 工具
  • ProGuard 和应用签名功能
  • 内置对 Google 云平台的支持,可轻松集成 Google Cloud Messaging 和应用引擎

1.2 下载安装

Android Studio的下载还是很简单的,不光官方可以下载,还有很多国内的资源网站都是可以下载的

官方地址:http://developer.android.com/sdk/index.html

但是这里还是要注意一下下载的版本

Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具_第6张图片

这里MAC和Linux平台都是只有一个下载,但是Windows,却有三个,这里要说明一下这三个的区别了

  • Android Studio安装包集成了SDK
  • Android Studio安装包
  • Android Studio包解压就能用

前两个分别是一个带有SDK,一个没有,第三个,他不需要安装,下载下来解压,就可以使用了,而且他有两个启动器,一个32位的,一个64位的

我们以集成了SDK的安装包为例,来演示一下怎么安装,其实也不难,只要你双击打开安装包,一直点下一步,中途会提示你是否导入项目,选择SDK的路径,下载一些需要的SDK支持包,就可以了,然后,我们的Android Studio就安装完成了

Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具_第7张图片

1.3 配置设置

一款好的IDE,强大的前提下,还得符合自己的编码风格,所以,我们要对她进行一些设置,这样,才能体验到他的强大性

1.3.1 主题

Android Studio的黑色主题还是非常的符合程序员的风格的,所以很多人也会选择这个风格,我们进入设置(工具类上扳手图标),这里Theme默认是Default我们这里选择Darcula,然后点击Apply就可以应用这个黑色主题了

Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具_第8张图片

1.3.2 编码风格

我们在编写代码的时候,一些字体颜色大小之类的都是要值得注意的地方,包括代码显示行数也能帮助我们调试bug

  • 字体大小

    我们进入Settings-Editor-Colors & Fonts-Font下,默认的两种主题我们是没办法修改的,我们需要自定义一个主题然后就可以修改了,操作如下: 我们点击Save As,提示你命名,你随便写个名字,就可以看到如图1.3.2所示


Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具_第9张图片

这里的Primary font是字体,你可以选择自己喜欢的字体,Size为字体大小,Line Spacing是行距

当然,你也可以在Colors & Fonts目录下看到很多的设置,比如Consale Font控制台字体大小什么的,这个这里就不多赘述了

  • 自动导包

    手动导包还是有点麻烦的,我们本着能省就省的原则,设置一下自动导包的功能,路径为:Settings-Editor-General-Auto Import选项下,勾上以下几个选项

    • XML
      • show import popup
    • JAVA
      • insert imports on paste选择none
      • show import popup
      • optimize imports on the fly
      • add unambiguous imports on the fly
    • C/C++
      • show import popup
  • 显示代码行数

    这个功能也是很重要的,我们可以勾选Settings-Editor-General-Appearance-show line numbers就可以了

1.3.3 智能化

这里我们可以来设置Android Studio的智能化来设置快捷键,自动代码提示,自动代码补全等功能

  • 快捷键

    Android Studio快捷键相较于Eclipse还是做了一些改动的,但是,Google做的很灵活,他提供了快捷键的选择,我们进入Setting-keymap里选择Eclipse,熟悉的快捷键就回来了

  • 代码自动提示

    代码自动提示设置起来也很方便,Eclipse上,你鼠标悬浮在代码上会弹出提示框,但是再Android Studio默认是没有的,因为如果电脑配置不是很高的话,这样会让界面很卡,如果你想打开这个功能我们可以进Settings-Editor-General,把show quick doc on mouse move勾上就可以了

  • 不区分大小写

    Android Studio在默认是区分大小写的,也就是你输入代码的时候如果你输入小写,可能代码不会提示,当然,我们也是可以设置不区分的,在Settings-Editor-General-Code Completion中,Case sensitive completion选择none就可以了

  • 取消载入

    这个功能我觉得特别棒,比如我正在做A的项目,然后关掉Android Studio,等下次进来的时候打开Android Studio他会自动载入这个A项目,但是我其实想去做B项目的,所以我们取消这个功能,让他每次都进入主页供我们项目选择,也很简单,进入Systems-System Settings下,把Reopen last project startup的勾去掉即可

1.3.4 Log

在开发中,Log是必不可少的一个环节,他可以反馈很多程序中的信息来帮助我们开发以及调试bug,所以现在网上也是有很多log的框架和工具类,在Android Studio中默认的Log其实不算是很清晰,我们可以自己给Log设置一些颜色来改变他的反馈交互,我们进入Settings-Editor-Colors & Fonts-Android Log下,我们可以看到各个等级的Log,只要我们把Use Inberited attributes的勾去掉,就可以更换颜色了,这里,提供一套我的配色方案供大家参考

  • VERBOSE bfb9b9
  • DEBUG 0374c0
  • INFO 4bc332
  • WARN c6c61e
  • ERROR FF0006
  • ASSERT a00308

1.3.5 导出/导入Settings

Android Studio每次安装都要设置这么多配置,着实让人头疼,这就又引出Android Studio的一个人性化的设计了,他可以把设置到处成jar包的形式保存起来,你要是新安装的Android Studio,可以直接导入这个jar,就不用这么浪费时间的去配置了,方法很简单,我们菜单栏-File

  • Import Settings 导入设置
  • Export Settings 导出设置

1.3.6 插件

Android Studio的插件还是非常方便我们进行开发的,不得不在一次感叹Android Studio的强大,比如Gsonformat,butterknife等,我们这里稍微介绍一下安装插件的几种方式,我们进入Settings-Plugins

Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具_第10张图片

这里显示的是你安装的插件列表,下面三个按钮分别是

  • install letBrains plugin… 官方插件
  • Browse repositories… 第三方插件
  • install plugin from disk… 本地插件

官方/第三方安装

我们点击install letBrains plugin/Browse repositories,这里是一个搜索页面,我们以Gsonformat为例,搜索Gsonformat。然后点击install,安装完成之后,我们就可以在列表中看到Gsonformat的身影了,第三方插件方法是一样的

本地插件安装

安装本地插件其实就是导入,插件以jar或者zip的形式存在,我们只要点击install plugin from disk,我们选中插件即可

1.4 Gradle

Gradle是什么?Gradle是Android Studio项目的构建系统,是以 Groovy 语言为基础,面向Java应用为主,基于DSL(领域特定语言)语法的自动化构建工具,所以这就出现了Android Studio的项目结构和Eclipse的不一样了,我们具体来看一下,我们在项目的Gradle Scripts文件下可以看到

图1.4.1

这些就是我们项目构建之后的一些Gradle配置清单,我们来具体的了解一下这些文件夹是干什么的

  • build.gradle 构建文件
  • build.gradle 模块构建文件
  • gradle-wrapper.properties Gradle相关配置文件
  • proguard-rules.pro 混淆文件
  • gradle.propertles 配置文件
  • setting.gradle 设置配置文件
  • local.propertles sdk,ndk配置文件

而我们所要了解的也不是说全部,只要了解一下构建文件和模块构建文件就可以,我们会看一下构建文件里面都有些什么

    // 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:2.1.0'

            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }

    allprojects {
        repositories {
            jcenter()
        }
    }

    task clean(type: Delete) {
        delete rootProject.buildDir
    }

这里面,就是一个标准的Gradle构建系统的代码,我们来看

  • jcenter() 存储库 可以更换
  • classpath 依赖的Gradle版本
  • repositories 所有项目的存储库

我们再来看一下模块构建系统

    apply plugin: 'com.android.application'

    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.3"

        defaultConfig {
            applicationId "com.lgl.helloandroid"
            minSdkVersion 15
            targetSdkVersion 23
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:23.3.0'
    }

这里,我们就要多关注一下了

  • apply plugin :声明一个工程的类型
  • compileSdkVersion : 最高API
  • buildToolsVersion : 编译工具版本
  • applicationId : 包名
  • minSdkVersion : 最小API
  • targetSdkVersion : 编译版本
  • versionCode : 版本号
  • versionName: 版本号(细分)
  • buildTypes: 构建类型
  • minifyEnabled : 是否压缩apk
  • proguardFiles getDefaultProguardFile: 混淆配置文件
  • dependencies : 依赖配置
  • compile fileTree:依赖二进制文件
  • compile : 远程二进制依赖

1.5 多渠道打包

国内的Android市场那么多,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不累死了,不过我们上节看了Gradle,这就不算什么事情了,这里也就衍生出一个新词汇——多渠道打包,顾名思义,就是一键打包多个渠道,关于多渠道打包使用的平台和工具网上也是有比较多的,貌似用的比较多的是友盟,详情大家自己去友盟的官网上看看吧!

AndroidManifest.xml中修改以下值:

    "UMENG_CHANNEL" android:value="wandoujia" />    

meta-data修改以下的样子:

    data
         android:name="UMENG_CHANNEL"
         android:value="${UMENG_CHANNEL_VALUE}" />

其中${UMENG_CHANNEL_VALUE}中的值就是你在gradle中自定义配置的值。

build.gradle文件就利用productFlavors这样写:

    productFlavors {

    wandoujia {
    manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
    }

    baidu {
    manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
    }

    c360 {
    manifestPlaceholders = [UMENG_CHANNEL_VALUE: "c360"]
    }

    uc {
    manifestPlaceholders = [UMENG_CHANNEL_VALUE: "uc"]
    }

    }

其中[UMENG_CHANNEL_VALUE: “wandoujia”]就是对应${UMENG_CHANNEL_VALUE}的值。

其实上面的代码还是有点多余,我们可以缩减


    productFlavors {

    wandoujia {}
    baidu {}
    c360 {}
    uc {}

    productFlavors.all { flavor ->
    flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }

    }

1.5.1 传统打包方式

我们来熟悉一下传统的打包方式,用过Eclipse的同学应该知道,在Eclipse里,我们只要Export Android就可以打包一个项目,其实Android Studio的方式也是类似,菜单栏——Build——Generate Signed APK

Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具_第11张图片

这里要填写的其实和Eclipse差不多的,首先是Key Store的路径,我们没有,所有点Create new来创建

Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具_第12张图片

我们把路径,密码什么的填好之后,按OK,现在他会帮我们自动填充了,如果没有,你就自己输,然后next,然后finish就可以了

Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具_第13张图片

我们可以到app目录下找到我们打包的apk,同时也可以在我们指定的位置找到我们的签名文件xxx.jks

这篇文章我很久之前就有在写了,本来是准备以后写书的时候用的,无奈琐事繁忙,就放弃了,就想着分享出来吧,不然以后版本更新太快,这些也就无意义了

如果有兴趣,可以加群:555974449,我们一起聊个痛快~

你可能感兴趣的:(Android Studio重构之路,我们重新来了解一下Google官方的Android开发工具)