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安装 ...
随机推荐
- Go学习——defer、panic
defer: 延迟到ret之前,通常用于IO的关闭 or 错误处理. 在延迟出现的异常可以被后面的捕捉,但是只有最后一个. defer可以多次,这样形成一个defer栈,后defer的语句在函数返回时 ...
- bzoj 2594: [Wc2006]水管局长数据加强版
Description SC省MY市有着庞大的地下水管网络,嘟嘟是MY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可能要将一定量的水从x处送往y处,嘟嘟需要为供水公司找到一 ...
- hdu 5120(2014北京—求圆相交)
题意:求环的相交面积 思路: 通过画图可知,面积= 大圆相交面积 - 大小圆相交面积*2 + 小小圆相交面积 再通过圆相交模板计算即可 #include <iostream> #incl ...
- windows的常用快捷键(实用篇)
整理一下windows的常用快捷键,有些快捷键老不用都忘记了,这里整理一下方便自己以后忘记时翻阅. 一.Fn键的使用 1.F1帮助 2.F2重命名 3.F3打开搜索 4.F4打开地址栏常用地址 5.F ...
- Android.mk 详解
Android中增加本地程序或者库,这些程序与其所在路径没有关系,只和它们的Android.mk有关系. Android.mk与普通的makefile略有不同,Android.mk具有统一的写法,主要 ...
- js延迟函数
正确写法: setTimeout(function (){ alert("delay!"); },5000); 错误写法: setTimeout( alert("dela ...
- Maven parent.relativePath
Maven parent.relativePath 默认值为../pom.xml 查找顺序:relativePath元素中的地址–本地仓库–远程仓库 设定一个空值将始终从仓库中获取,不从本地路径获取, ...
- 手写JAVA虚拟机(三)——搜索class文件并读出内容
查看手写JAVA虚拟机系列可以进我的博客园主页查看. 前面我们介绍了准备工作以及命令行的编写.既然我们的任务实现命令行中的java命令,同时我们知道java命令是将class文件(字节码)转换成机器码 ...
- 54. Spiral Matrix(中等)
Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral or ...
- 讨论过后而引发对EF 6.x和EF Core查询缓存的思考
前言 最近将RabbitMQ正式封装引入到.NET Core 2.0项目当中,之前从未接触过是个高大上的东东跟着老大学习中,其中收获不少,本打算再看看RabbitMQ有时间写写,回来后和何镇汐大哥探讨 ...