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 的核心是一个智能代码编辑器,可进行高级代码完成、重构和代码分析。

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

1.1.2 代码模板和 GitHub 集成

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

可使用适用于不同模式(如抽屉式导航栏和视图分页器)的模板代码开始项目,甚至可以从 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 演进

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

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

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

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

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

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

1.3 配置设置

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

1.3.1 主题

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

1.3.2 编码风格

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

  • 字体大小

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


这里的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

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

  • 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 23buildToolsVersion "23.0.3"defaultConfig {applicationId "com.lgl.helloandroid"minSdkVersion 15targetSdkVersion 23versionCode 1versionName "1.0"}buildTypes {release {minifyEnabled falseproguardFiles 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中修改以下值:

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

meta-data修改以下的样子:

    <meta-dataandroid: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

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

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

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

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

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

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

  1. android底层重构,【理论】【转】Android项目重构之路:实现篇

    前两篇文章Android项目重构之路:架构篇和Android项目重构之路:界面篇已经讲了我的项目开始搭建时的架构设计和界面设计,这篇就讲讲具体怎么实现的,以实现最小化可用产品(MVP)的目标,用最简单 ...

  2. Android Studio强者之路-刘桂林-专题视频课程

    Android Studio强者之路-9395人已学习 课程介绍         Google为Android Developer量身定做的一款IDE,很值得大家去学习,而本系列视频从浅到深,一步步带 ...

  3. 运行Android Studio,一直提示:Error running app: Instant Run requires 'Tools | Android | Enable ADB integrat

    运行Android Studio,一直提示:Error running app: Instant Run requires 'Tools | Android | Enable ADB integrat ...

  4. Android studio 使用androidX后应用启动log中报Didn‘t find class “android.view.View$OnUnhandledKeyEventListener“

    Didn't find class "android.view.View$OnUnhandledKeyEventListener" Android studio 使用android ...

  5. android 抽屉_Android Studio之路,我们来了解一下Google官方Android开发工具

    记得我的第一篇博客就是写Android Studio,但是现在看来还是有些粗糙了,所有重构了一下思路,覆写了一篇 Google主推-Android开发利器--Android Studio,这可能是最全 ...

  6. 【理论】【转】Android项目重构之路:架构篇

    为什么80%的码农都做不了架构师?>>>    去年10月底换到了新公司,做移动研发组的负责人,刚开始接手android项目时,发现该项目真的是一团糟.首先是其架构,是按功能模块进行 ...

  7. 【错误记录】Android Studio 中 build.gradle 配置 buildFeatures prefab 错误处理 ( AS 4.1 以上开发环境 | Gradle及插件版本 )

    文章目录 一.问题描述 二.Android Studio 版本.Gradle 版本.Gradle 插件版本 Android Gradle 插件版本说明 一.问题描述 起因 : 需要配置 Android ...

  8. Android Studio中有没有类似于Eclipse中的ctrl+2+L的快捷键? \Android Studio快捷键之代码提示...

    问:Android Studio中有没有类似于Eclipse中的ctrl+2+L的快捷键? 答:有,as中的快捷键是Ctrl+Alt+V AndroidStudio和Eclipse常用快捷键对比 功能 ...

  9. “VT-x is disabled in BIOS”的解决办法【Android Studio】【操作环境:win 7 台式机】【查看Android Studio版本】

    参考文章1:https://baijiahao.baidu.com/s?id=1609375708582672616&wfr=spider&for=pc 参考文章2:https://b ...

最新文章

  1. 【Linux】延时函数sleep、usleep、nanosleep、select、pselect的比较
  2. 全职奶爸的一年深度学习之路:从零基础到成为研究科学家
  3. 【深度学习】论文EMO单眼识别分析
  4. 过滤器解决Struts2重定向漏洞
  5. 牛津花卉数据集贴标签分类
  6. 10.IDA-基本操作
  7. Cordova工程里android平台相关的index.html是怎么加载的
  8. cmd黑窗口命令行模式进入指定盘符下的任意文件夹
  9. windows cmd 定义和使用变量
  10. MATLAB中滤波演示
  11. matlabsvd提取特征值_matlab特征值分解和奇异值分解
  12. unity 安卓端输出日志神器--Reporter插件
  13. 山东省农村信用计算机社考试,山东省农村信用社计算机专业考试题.doc
  14. 基于 Transformer 模型的电影评论情感分类
  15. java后台如何将rgb与16进制颜色进行转换
  16. nginx设置IP、文件目录、请求头白名单
  17. 安装 Ruby On Rails on Windows
  18. 李宏毅HW01——新冠疫情数据的预测
  19. 单链表Java数据结构
  20. 【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(视窗、选择篇)

热门文章

  1. 2003-2021年高铁站开通时间
  2. Java集合类学习UML图——ArrayList
  3. 小学计算机培训返岗实践总结,民乐镇小学开展2018学年新教师汇报课暨新教师岗前培训返岗实践考核会...
  4. 七月算法机器学习笔记3 线性代数与矩阵
  5. Android内存优化--使用SparseArray和ArrayMap代替HashMap
  6. 【算法与数据结构】JS基础——数组
  7. 计算机的第一级存储器有,计算机等级考试题库重点!一级MS Office第二章“存储器”...
  8. PR多个元素按照时间轴对齐
  9. Istio 对虚拟机支持史话
  10. 单网口电脑安装openwrt软路由做单臂路由