3.0、Android Studio构建和运行应用
默认情况下,Android Studio可以通过简单的点击就会将新的项目部署到虚拟机或者物理设备中。在Instant Run的帮助下,你可以将更改的方法或资源文件直接推送到一个运行的app而无需构建一个新的APK,所以看起来像实时的。
构建和运行你的app,点击Run’app’。Android Studio会让你选择一个部署目标(一个虚拟机或者一个连接的设备),使用Gradle进行构建,构建完成后将部署到目标上。
如果你使用Android虚拟机来运行你的app,你需要有一个Android Virtual Device(AVD)。如果没有可以先创建一个,然后再运行app。点击Select Deployment Target对话框中的Create New Emulator,跟随虚拟设备配置向导定义你想要的虚拟机的信息。
如果你使用一个物理Android设备,你需要在设备中开启USB调试。
选择和构建不同的模块
如果你的项目除了默认的app模块还有多个模块,你可以通过如下方式构建指定模块:
在Project视图中选择这个模块,然后点击Build > Make Module (模块名称)
Android Studio使用Gradle对模块进行构建。一旦构建完成,你可以运行和调试。
改变运行或调试配置
运行和调试配置控制模块的运行、部署、启动Activity,目标设备,虚拟机设置,logcat选项等等。默认的运行和调试配置运行项目默认的Activity,使用Select Deployment Target对话框来选择目标设备。
更改构建变量
默认情况下,在你点击Run‘app’的时候,Android Studio构建你的app的调试版本,为了调试版本。
改变Android Studio得构建变量,可以在Build > Select Build Variant,在下拉菜单中选择。默认情况下,新的项目默认有debug和release两个选项。
监控构建进程
你可以通过点击Gradle Console来查看构建进程的细节。控制台显示的是为了构建你的应用Gradle执行的每个任务。
生成APK
当你点击Run ‘app’,Android Studio生成一个调试APK并且部署到目标设备中。在你生成一个app正式版进行发布之前,你必须学会如何对app进行签名。
关于Instant Run
Instant Run是Android Studio 2.0引入的,Instan Run可以显著减少应用的部署时间。虽然第一次部署需要花费很多时间构建完成,但是Instan Run可以将你的更改迅速的应用的app中而无需安装一个新的APK。
只有你的APK是debug,并且Gradle 的Android插件版本是2.0.0或高于,最小sdk版本是15或更高时,才能使用。
当你部署一个app时,一个黄色闪电图标出现在Run按钮上,提示Instant Run会在你下次点击这个按钮时会把更新推送到设备或虚拟机,而无需安装一个新的APK,仅仅是推送更新,在大部分时候,甚至不需要更新就可以立刻显示效果。
Instant Run通过热部署,暖部署或者冷部署将最新的代码和资源,Instant Run会根据你的更改类型来决定部署类型。
使用Rerun
当你的代码更改会影响初始化,比如应用的onCreate方法的更改。你需要重启你的应用来使更改生效。点击Rerun。
如果你需要部署一个干净的构建,在主菜单中选择Run > Clean and Rerun ‘app,或者在点击Rerun时按住Shift键。这会停止正在运行的app,部署一个新的APK到你的目标设备中。
禁用Activity自动重启
当你执行热部署的时候,你的应用保持运行,但是Android Studio会自动重启当前的activity。以下可以禁止这个默认设置:
1、 打开Settings或者Preferences对话框
2、 导航到Build、Execution、Deployment>Instant Run
3、 取消Restart activity on code changes 的打钩。
禁用后,你可以通过选择Run > Restart Activity手动启动。
为Instant Run配置和优化你的项目
Android Studio在使用Gradle Android插件2.0.0或更高版本的项目中默认开启Instant Run。为了更新一个存在的项目的Gradle插件到最新版本,可以执行如下几步:
1、 打开Settings 或者Preferences对话框
2、 导航到Build、Execution,Execution, Deployment > Instant Run并且选择Update Project
如果没有出现,说明已经是最新版本。
通过配置DEX资源来提升构建时间
当你部署了一个应用,Android Studio允许你的app使用Instant Run来推送代码和资源更新。虽然,在应用运行的时候推送更新更加迅速,但是第一次需要花费一定时间来构建。你可以通过一些DexOptions来提升构建进程:
MaxProcessCount:
设置DEX进程的最大数。
javaMaxHeapSize:
设置最大分配的内存
Instant Run的限制
Instant Run设计成在大部分情形下提升你构建和部署进程的速度。然而,在某些时候可能不适用。
部署到多个设备
Instan Run根据目标设备的API不同使用不同的技术来实现热部署,冷部署。因为这个原因,当应用同时部署到多个设备,Android Studio会暂时关闭Instant Run。
多个DEX
如果你在build.gradle中设置multiDexEnabled true和minSdkVersion 20或更低,并且你部署的目标设备运行Android4.4或更低,Android Studio禁用Intant Run。
如果你的minSdkVersion为21或更高,Instant Run自动配置你的应用的多dex。
使用第三方插件
Android Studio在使用Instant Run时会暂时禁用Java Code Coverage Library(JaCoco)和ProGuard。这不影响你的构建。
禁用Instant Run
通过如下方式禁用Intant Run:
1、 打开Settings或者Preferences对话框
2、 导航到Build, Execution, Deployment > Instant Run
3、 取消选定Enable Instant Run.
本文作者:宋志辉
个人微博:点击进入
3.0、Android Studio构建和运行应用的更多相关文章
- Android开发之深入理解Android Studio构建文件build.gradle配置
摘要: 每周一次,深入学习Android教程,TeachCourse今天带来的一篇关于Android Studio构建文件build.gradle的相关配置,重点学习几个方面的内容:1.applica ...
- 《ArcGIS Runtime SDK for Android开发笔记》——(5)、基于Android Studio构建ArcGIS Android开发环境(离线部署)(转)
1.前言 在上一篇的内容里我们介绍了基于Android Studio构建ArcGIS Runtime SDK for Android开发环境的基本流程,流程中我们采用的是基于Gradle的构建方式,在 ...
- Android studio 构建太慢
/*********************************************************************************** * Android studi ...
- 关于Android Studio 3.2 运行应用时提示 “Instant Run requires that the platform corresponding to your target device (Android 7.0 (Nougat)) is installed.” 的说明
点击"Run",运行App后,Android Studio显示如图1-1界面: 图1-1 这是因为你连接的外部设备(比如Android手机或AVD)的SDK版本在你的电脑上没有安装 ...
- Android Studio构建系统基础
基础知识 项目创建成功后会自动下载Gradle,这个过程特别慢,建议FQ.下载的Gradle在Windows平台会默认在 C:\Documents and Settings\<用户名>.g ...
- 在android studio中配置运行时签名
做项目的时候,有时需要用到第三方接口,而基本第三方接口都是要求我们要先进行签名.结果每次调试都得手动进行签名一次,实在麻烦.所以android studio提供了一种在运行的时候自动进行签名的方法,在 ...
- 《ArcGIS Runtime SDK for Android开发笔记》——(4)、基于Android Studio构建ArcGIS Android开发环境
1.前言 2015年1月15日,发布ArcGIS Runtime SDK for Android v10.2.5版本.从该版本开始默认支持android studio开发环境,示例代码的默认开发环境也 ...
- ubuntu android studio 编译及运行错误Error retrieving parent for item: No resource found that matches the given name
安装好android studio并且安装其它需要的SDK或组件后,根据向导生成新的项目, 编译或运行时可能会出现下面的错误: Error:Error retrieving parent for it ...
- 安装Android studio 并成功运行
之前是在idea上弄得发现有些问题就下载了Android studio教程(4条消息) Android Studio安装及环境配置教程_xuw_xy的博客-CSDN博客_androidstudio安装 ...
随机推荐
- 计蒜客NOIP模拟赛5 D1T1 机智的 AmyZhi
那年一个雨季,AmyZhi 在校门外弯身买参考书. 这时 SiriusRen 走过来,一言不合甩给她一道“自认为”很难的题: --------------- 给你一个数字 NN(NN 的范围是 11 ...
- [APIO2016]划艇
题目描述 在首尔城中,汉江横贯东西.在汉江的北岸,从西向东星星点点地分布着 NNN 个划艇学校,编号依次为 111 到 NNN.每个学校都拥有若干艘划艇.同一所学校的所有划艇颜色相同,不同的学校的划艇 ...
- APIO dispatching
题目描述 在一个忍者的帮派里,一些忍者们被选中派遣给顾客,然后依据自己的工作获取报偿.在这个帮派里,有一名忍者被称之为 Master.除了 Master以外,每名忍者都有且仅有一个上级.为保密,同时增 ...
- 【BZOJ3685】【zkw权值线段树】普通van Emde Boas树
原题传送门 因为马上要开始搞树套树了,所以学了一波权值线段树...毕竟是会点zkw线段树的,所以zkw线段树大法好! 解题思路: 介绍一下权值线段树吧,其实感觉就是线段树的本义,就是你用线段树维护了数 ...
- poj 2425 AChessGame(博弈)
A Chess Game Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 3791 Accepted: 1549 Desc ...
- 关于HttpClient重试策略的研究
一.背景 由于工作上的业务本人经常与第三方系统交互,所以经常会使用HttpClient与第三方进行通信.对于交易类的接口,订单状态是至关重要的. 这就牵扯到一系列问题: HttpClient是否有默认 ...
- 基于SSM框架实现简单的登录注册
一.环境配置 工程目录 在pom.xml添加依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=& ...
- (转)Ensemble2015安装
1 IIS安装和windows系统配置 1.1 IIS安装 检查是否安装好了IIS,可在[管理工具]的[服务管理器]中查看,如下图所示表示安装了IIS. 确认IIS已完全安装,点击上图中的Web服 ...
- URLDecoder: Illegal hex characters in escape (%) pattern - For input string
原因:后台发布文章的时候,内容里面有%,导致后台URLDecoder.decode()转码的时候报错. 看了java.net.URLDecoder的decode()的源码,原来是转码错误. 贴出部分代 ...
- Java锁机制了解一下
前言 回顾前面: 多线程三分钟就可以入个门了! Thread源码剖析 多线程基础必要知识点!看了学习多线程事半功倍 只有光头才能变强! 本文章主要讲的是Java多线程加锁机制,有两种: Synchro ...