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 智能代码编辑器

c57f495d7a494dbc9902730a5e76d328

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

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

1.1.2 代码模板和 GitHub 集成

e1818e0f2c9846c391b3d34f27e414eb

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

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

1.1.3 多屏幕应用开发

ab0e48a38b0349139f542a182d403449

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

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

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

dadb3ba3a3824c1bae0b92c699e8c878

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

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

1.1.5 Android 版本借助 Gradle 演进

ab50447c7ac14e0d93a6ab94c59e268d

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

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

1898044a02e04ea28ca4fd04c3aeccd1

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

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

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

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

ed635a37b9c044669261005bc6fbd11b

1.3 配置设置

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

1.3.1 主题

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

44ba278523094badb77c82ff139e9c71

1.3.2 编码风格

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

  • 字体大小

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

8eacdf9445f447e59eccdf2ad3142212

这里的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的勾去掉,就可以更换颜色了,这里,提供一套我的配色方案供大家参考

  • VERBOSEbfb9b9
  • DEBUG0374c0
  • INFO4bc332
  • WARNc6c61e
  • ERRORFF0006
  • ASSERTa00308

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

6fe2edb86e9b4a0abb178733abdc2d4e

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

  • 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中修改以下值:

meta-data修改以下的样子:

其中${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

abc35a4908a542e5ab30761280f92e19

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

f3fd854382ff4ec1a9bf7fdb2353a144

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

ee4b96736f1c4965b3da6a83f2e3fdbe

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346508.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

karaf osgi_在OSGi中为Karaf构建Camel-CXF REST服务–组播和聚合

karaf osgi请查看我在Karaf的OSGi中构建普通CXF服务(无Camel)的其他文章 。 这是有关如何 创建一个CXF REST服务 使用骆驼多播(并并行化)传入的请求 来自两个不同服务的源数据 汇总响应并 最后将合并结果作为JSON返回给最终…

酒店wifi代理服务器没有响应,wn10连接酒店wifi的登录界面无法弹出如何处理

通常情况下,我们在连接酒店wifi后都会出现登录验证界面。不过,最近一位windows10系统用户在连接wifi后打开网页却遇到无法显示登陆界面情况,该怎么办呢?接下来,就随小编一起看看wn10连接酒店wifi的登录界面无法弹出问题…

python词云安装什么库_python词云安装什么库

python词云需要安装wordcloud库。 安装方法: 在cmd使用pip install wordcloud命令即可安装。 wordcloud库把词云当作一个WordCloud对象:wordcloud.WordCloud()代表一个文本对应的词云。 可以根据文本中词语出现的频率等参数绘制词云。 示例:f…

怎么wps解除合并单元格_wps表格怎么锁定单元格

wps表格怎么锁定单元格呢?很多用户对此还不是很清楚,小编这里就给大家带来有关wps表格怎么锁定单元格的回答,希望能够对大家有所帮助。一、整个表格进行锁定1、同时按住CtrlA,选中整个单元格,如图2、选中以后&#xff…

挡土墙计算软件_广联达软件如何计算钢板止水带?

原创作者:张向荣1、什么是钢板止水带?混凝土结构中,地下室墙体施工中,如果底板和墙体分开浇筑,就需要留置施工缝。施工缝:施工缝并不是一种真实存在的“缝”,它只是因先浇筑混凝土超过初凝时间&…

网站图片多服务器选多大,网站上的图片一般多大合适

网站上的图片一般多大合适 内容精选换一换安装了SSL证书后,访问网站时,HTTPS比HTTP要多几次握手的时间,HTTPS协议握手阶段比较费时,同时还要进行RSA校验,因此使用了SSL证书后,相较于HTTP访问,访…

怎么在自己的网站上显示其它网站_自己做网站要怎么选域名?

域名是一种无形的资产注册一个好的域名能让你的网站更加容易取得成功,那么什么样的域名才是好域名呢?自己做网站域名要怎么选呢?1.好记的域名如果一个喜欢你网站的网友,电脑硬盘坏了丢失了收藏夹里所有的网址,或者在他人机器上上网&#xf…

微信朋友圈删除后服务器还有吗,删了的朋友圈还可以找回来吗

演示工具:手机型号:iphone12系统版本:ios14软件版本:微信7.0.20删除的朋友圈动态不能找回来。删除是从网络服务器上面把此信息删除了,是无法找回的,而已删除掉以后,好友那边此条动态也是同步删除…

mysql drop_mysql恢复drop掉的表

手贱drop了几个表,以为能从昨天的备份中恢复,结果发现最近两个月的备份都是空文件,因为备份脚本在两个月前改错了!难道就这样丢失两个月的数据?镇定镇定——先看看mysql的配置文件cat /etc/my.cnf发现如下字样说明有救…

修改网站首页批处理_几个神奇的批处理,万事不求人!

文字 | 配图 | 排版 |©老Y网站:www.youquhome.cn小白可能会问啥事批处理?批处理(Batch),也称为批处理脚本。是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。批处理文件的…

全境封锁服务器维护 2018,全境封锁全域事件2018年8月活动什么时候开始_全域事件怎么玩...

本文给大家带来全境封锁全域事件2018年8月活动时间介绍,全境封锁全域事件三进击即将到来,想要刷面具的不要错过哦。全域事件三:进击重新回归了!开始时间:8 月 27 日周一结束时间:9 月 2 日周日参加这一次的全域事件将会…

linux下部署mysql数据库连接_Linux远程部署MySQL数据库详细步骤

Linux远程部署MySQL数据库,供大家参考,具体内容如下1.0 安装 yum install lrzsz -y 命令(导入外界压缩包插件(已下载无视即可))1.1 将mysql压缩包拷贝到 /usr/local 文件目录下进行解压:1.2 将导入的Mysql压缩包进行解压,输入:tar…

nginx 电子书_Nginx最详细的反向代理配置步骤,拿去不谢

点击“蓝字”关注我们#今日份技术干货#使用Nginx实现Web反向代理功能,实现如下功能:◆后端Web服务器两台,可以使用httpd实现◆Nginx采用轮询的方式调用后端Web服务器◆两台Web服务器的权重要求设置为不同的值◆最大失败次数为1,失…

c# 找出目录下的所有子目录_C# 基础知识系列- 14 IO篇 文件的操作(2)

前接上一篇内容。如果是第一次捧场的小伙伴,为了您阅读的连贯性,烦请扫一眼《C# 基础知识系列- 14 IO篇 文件的操作(1)》。本篇是IO之文件操作的第二篇,介绍一下目录和路径的相关类。下一篇介绍如何通过流来操作文件。1.2 Directory和Directo…

怎么配置在谷歌和ie内核时使用不同的_重磅!微软竟然研发了谷歌内核的edge

走过路过不要错过点击蓝字关注我们很I高I兴I你I能I来小水GOOD NIGHT 希I望I你I别I离I开软件目录第三十九期▼物致于此小得盈满序言上周小编们期末考试已经结束了,从这周开始,推文将会开始有所更新,希望喜爱我们公众号的你们都还在。但由于小编…

Java 8过滤器,地图,收集和流示例

大家好,许多读者给我发了电子邮件,写了一篇有关Java 8的地图和过滤器功能的文章,因为他们发现它们难以理解和使用。 即使我以前同时写过有关map()和filter()的博客,我仍在写这篇文章…

使用mysql命令行的工具_[MySQL]命令行工具和基本操作

一 MySQL命令行工具 (查看帮助 ---help,或 -?)1)MySQLMySQL是一个简单的SQL外壳(有GNUreadline功能)。它支持交互式和非交互式使用。当交互使用时,查询结果采用ASCII表格式。当采用非交互式(例如,用作过滤器)模式时,结…

matlab simulink_MATLAB之Simulink(二)利用switch模块将正弦信号变为方波信号

##MATLAB之Simulink(二)##利用switch模块将正弦信号变为方波信号今天给大家展示一个simulink电路仿真,将正弦信号转化为方波信号。下面开始教程:1.首先直接在MATLAB命令行中输入simulink或者直接点击图标运行。2.新建一个空白编辑界面。3.打开模型库&…

web.xml.jsf_使用JSF 2.2功能来开发可滚动,可延迟加载的Ajax数据表

web.xml.jsf这次,我想与您分享我最近从JSF 2.2功能中学到的知识。 为此,我决定创建一个简单的ajax,可滚动,延迟加载的数据表。 请注意, 绝不这是相当大的库如Primefaces , RichFaces的或ICEFaces的 。 这只…

mysql 并发 锁表_MySQL中的锁(表锁、行锁) 并发控制锁

https://github.com/MrLining/mysql/wiki/MySQL%E4%B8%AD%E7%9A%84%E9%94%81%EF%BC%88%E8%A1%A8%E9%94%81%E3%80%81%E8%A1%8C%E9%94%81%EF%BC%89-%E5%B9%B6%E5%8F%91%E6%8E%A7%E5%88%B6%E9%94%816、 表锁差异MyISAM:只支持表级锁,用户在操作myisam表时&a…