通过上一节课创建了一个Android的Hello World项目,项目默认包含一系列源文件,它让我们可以立即运行应用程序。

如何运行Android应用取决于两件事情:是否有一个Android设备和是否正在使用Android Studio开发程序。本节课将会教使用Android Studio和命令行两种方式在真实的android设备或者android模拟器上安装并且运行应用。

在真实设备上运行

如果有一个真实的Android设备,以下的步骤可以使我们在自己的设备上安装和运行应用程序:

手机设置

  1. 把设备用USB线连接到计算机上。如果是在windows系统上进行开发的,你可能还需要安装你设备对应的USB驱动,详见OEM USB Drivers 文档。
  2. 开启设备上的USB调试选项。
    • 在大部分运行Andriod3.2或更老版本系统的设备上,这个选项位于“设置>应用程序>开发选项”里。
    • 在Andriod 4.0或更新版本中,这个选项在“设置>开发人员选项”里。

Note: 从Android4.2开始,开发人员选项在默认情况下是隐藏的,想让它可见,可以去设置>关于手机(或者关于设备)点击版本号七次。再返回就能找到开发人员选项了。

从Android Studio运行程序

  1. 选择项目的一个文件,点击工具栏里的Run按钮。

  2. Choose Device窗口出现时,选择Choose a running device单选框,点击OK

Android Studio 会把应用程序安装到我们的设备中并启动应用程序。

从命令行安装运行应用程序

打开命令行并切换当前目录到Andriod项目的根目录,在debug模式下使用Gradle编译项目,使用gradle脚本执行assembleDebug编译项目,执行后会在build/目录下生成MyFirstApp-debug.apk。

Windows操作系统下,执行:

gradlew.bat assembleDebug

Mac OS或Linux系统下:

$ chmod +x gradlew
$ ./gradlew assembleDebug

编译完成后在app/build/outputs/apk/目录生成apk。

Note: chmod命令是给gradlew增加执行权限,只需要执行一次。

确保 Android SDK里的 platform-tools/ 路径已经添加到环境变量PATH中,执行:

adb install bin/MyFirstApp-debug.apk

在我们的Android设备中找到 MyFirstActivity,点击打开。

在模拟器上运行

无论是使用 Android Studio 还是命令行,在模拟器中运行程序首先要创建一个 Android Virtual Device(AVD)。AVD 是对 Android 模拟器的配置,可以让我们模拟不同的设备。

创建一个 AVD:

1. 启动 Android Virtual Device Manager(AVD Manager)的两种方式:

* 用Android Studio, **Tools > Android > AVD Manager**,或者点击工具栏里面Android Virtual Device Manager![image](avd-manager-studio.png);
* 在命令行窗口中,把当前目录切换到`<sdk>/tools/` 后执行:
android avd

2. 在AVD Manager 面板中,点击Create Virtual Device.

3. 在Select Hardware窗口,选择一个设备,比如 Nexus 6,点击Next

4. 选择列出的合适系统镜像.

5. 校验模拟器配置,点击Finish

更多AVD的知识请阅读Managing AVDs with AVD Manager.

从Android Studio运行程序:

1. 在Android Studio选择要运行的项目,从工具栏选择Run

2. Choose Device窗口出现时,选择Launch emulator单选框;

3. 从 Android virtual device下拉菜单选择创建好的模拟器,点击OK

模拟器启动需要几分钟的时间,启动完成后,解锁即可看到程序已经运行到模拟器屏幕上了。

从命令行安装运行应用程序

1. 用命令行编译应用,生成位于app/build/outputs/apk/的apk;

2. 确认platform-tools/ 已添加到PATH环境变量;

3. 执行如下命令:

adb install app/build/outputs/MyFirstApp-debug.apk

4. 在模拟器上找到MyFirstApp,并运行。

以上就是创建并在设备上运行一个应用的全部过程!

2) 十分钟学会android--建立第一个APP,执行Android程序的更多相关文章

  1. 3) 十分钟学会android--建立第一个APP,建立简单的用户界面

    在本小节里,我们将学习如何用 XML 创建一个带有文本输入框和按钮的界面.下一节课将学会使 APP 对按钮做出响应——按钮被按下时,文本框里的内容被发送到另外一个 Activity. Android ...

  2. 1) 十分钟学会android--建立第一个APP,创建android项目

    一个Android项目包含了所有构成Android应用的源代码文件. 本小节介绍如何使用Android Studio或者是SDK Tools中的命令行来创建一个新的项目. Note:在此之前,我们应该 ...

  3. 4) 十分钟学会android--建立第一个APP,启动另一个Activity

    在完成上一课(建立简单的用户界面)后,我们已经拥有了显示一个activity(一个界面)的app(应用),该activity包含了一个文本字段和一个按钮.在这节课中,我们将添加一些新的代码到MyAct ...

  4. PHP学习过程_Symfony_(3)_整理_十分钟学会Symfony

    这篇文章主要介绍了Symfony学习十分钟入门教程,详细介绍了Symfony的安装配置,项目初始化,建立Bundle,设计实体,添加约束,增删改查等基本操作技巧,需要的朋友可以参考下 (此文章已被多人 ...

  5. android studio 导入一个已有的android studio project作为lib使用

    android studio 导入一个已有的android studio project作为lib使用 新项目来了. 需要搭建框架. android studio对我来说还是很陌生,之前一个项目在同事 ...

  6. 9) 十分钟学会android--使用Fragment建立动态UI

    为了在 Android 上为用户提供动态的.多窗口的交互体验,需要将 UI 组件和 Activity 操作封装成模块进行使用,这样我们就可以在 Activity 中对这些模块进行切入切出操作.可以用  ...

  7. 十分钟学会 tmux

    tmux 是一款终端复用命令行工具,一般用于 Terminal 的窗口管理.在 macOS 下,使用 iTerm2 能应付绝大多数窗口管理的需求. 如上图所示,iTerm2 能新建多个标签页(快捷键 ...

  8. 快速入门:十分钟学会Python

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

  9. Python十分钟学会

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

随机推荐

  1. SAS编程基础 - 菜鸟入门常用操作

    1. SAS9.4添加和取消注释的快捷键? Ctrl+/:添加注释 Ctrl+Shift+/:取消注释 2. 如何强制终止程序运行? 看到那个圆圈里带叹号的图标了吗?没错,就是它 - 中断! 3. 如 ...

  2. zipfile zip

    Python模块学习:zipfile zip文件操作 2015/05/27 · 系列教程 · zipfile 分享到:3 原文出处: DarkBull    最近在写一个网络客户端下载程序,用于下载服 ...

  3. HDU 1047 Integer Inquiry 大数相加 string解法

    本题就是大数相加,题目都不用看了. 只是注意的就是HDU的肯爹输出,好几次presentation error了. 还有个特殊情况,就是会有空数据的输入case. #include <stdio ...

  4. 1.Urllib2模块使用

    网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地. Urllib2介绍: urllib2 是 Python2.7 自带的模块(不需要下载,导入即可使用) urllib2 官方文 ...

  5. HTTPie: a CLI, cURL-like tool for humans

    HTTPie github HTTPie 是用 Python 编写,用到了 Requests 和 Pygments 这些出色的库. 主要特性: 直观的语法 格式化和色彩化的终端输出 内置 JSON 支 ...

  6. Unity3D游戏开发最佳实践20技巧(一)

    关于这些技巧这些技巧不可能适用于每一个项目. 这些是基于我的一些项目经验.项目团队的规模从3人到20人不等. 框架结构的可重用性.清晰程度是有代价的--团队的规模和项目的规模决定你要在这个上面付出多少 ...

  7. luogu1966 火柴排队

    题目大意 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度.现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为: $\sum_{i=1}^n(a_i-b_i) ...

  8. 一张图轻松记住PHP的*类*以及private和protected的区别

    上图概要的说了下php类的特性,类的方法同属性类似. 图中B类继承自A类,B是A的子类,$x和$y都是B的实例化对象. 1. 原型引用:[A::    . B::   ],仅限public stati ...

  9. XMU 1125 越野车大赛 【三分】

    1125: 越野车大赛 Time Limit: 500 MS  Memory Limit: 64 MB  Special JudgeSubmit: 8  Solved: 4[Submit][Statu ...

  10. ios20--xib2

    故事板控制器: // // ViewController.m // 03-通过xib自定义商品的View #import "ViewController.h" #import &q ...