程序员人生 网站导航

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

栏目:综合技术时间:2016-07-04 12:03:11

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


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

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

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

1.1官方简介

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

1.1.1 智能代码编辑器

这里写图片描述

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

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

1.1.2 代码模板和 GitHub 集成

这里写图片描述

新项目向导让开始1个新项目变得史无前例的简单。

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

1.1.3 多屏幕利用开发

这里写图片描述

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

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

1.1.4 用于摹拟所有形状和尺寸的虚拟装备

这里写图片描述

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

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

1.1.5 Android 版本借助 Gradle 演进

这里写图片描述

使用同1项目为您的 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

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

这里写图片描述

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

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

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

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

这里写图片描述

1.3 配置设置

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

1.3.1 主题

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

这里写图片描述

1.3.2 编码风格

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

  • 字体大小

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


这里写图片描述

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

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

  • 自动导包

    手动导包还是有点麻烦的,我们本着能省就省的原则,设置1下自动导包的功能,路径为: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还是做了1些改动的,但是,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是必不可少的1个环节,他可以反馈很多程序中的信息来帮助我们开发和调试bug,所以现在网上也是有很多log的框架和工具类,在Android Studio中默许的Log其实不算是很清晰,我们可以自己给Log设置1些色彩来改变他的反馈交互,我们进入Settings-Editor-Colors & Fonts-Android Log下,我们可以看到各个等级的Log,只要我们把Use Inberited attributes的勾去掉,就能够更换色彩了,这里,提供1套我的配色方案供大家参考

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

1.3.5 导出/导入Settings

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

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

1.3.6 插件

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

这里写图片描述

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

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

官方/第3方安装

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

本地插件安装

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

1.4 Gradle

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

图1.4.1

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

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

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

// 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 }

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

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

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

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' }

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

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

1.5 多渠道打包

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

AndroidManifest.xml中修改以下值:

<meta-data android:name="UMENG_CHANNEL" android:value="wandoujia" />

meta-data修改以下的模样:

<meta-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 传统打包方式

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

这里写图片描述

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

这里写图片描述

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

这里写图片描述

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

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

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

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐