一、启动或关闭server

1.3  Android SDK中的常用命令行工具

在<Android SDK安装目录>\tools目录中带了很多命令行工具。虽然一般的开发人员并不需要完全掌握这些工具的使用方法,但了解这些工具的一些基本使用方法还是会对以后的开发工作起到一定的辅助作用。本节将介绍几种常用的命令行工具的使用方法,这些工具主要包括adb、android和mksdcard。在使用这些命令行工具之前,建议读者将<Android SDK安装目录>\tools目录加到PATH环境变量中,这样在任何目录中都可以使用这些工具了。

1.3.1  启动和关闭ADB服务(adb start-server和adb kill-server)

经作者测试,模拟器在运行一段时间后,adb服务有可能(在Windows进程中可以找到这个服务,该服务用来为模拟器或通过USB数据线连接的真机服务)会出现异常。这时需要重新对adb服务关闭和重启。当然,重启Eclipse可能会解决问题,但那比较麻烦。如果想手工关闭adb服务,可以使用如下命令:

adb kill-server 

在关闭adb服务后,要使用如下命令启动adb服务:

adb start-server 

二、查询当前模拟器/设备的示例(adb devices)

有时需要启动多个模拟器实例,或启动模拟器的同时通过USB数据线连接了真机。在这种情况下就需要使用如下命令查询当前有多少模拟器或真机在线:

adb devices 

执行上面的命令后,会输出如图1.14所示的信息。

 
图1.14  查询模拟器/设备的实例

其中第1列的信息(emulator-5554、HT9BYL904399)表示模拟器或真机的标识。emulator-5554表示模拟器,其中5554表示adb服务为该模拟器实例服务的端口号。每启动一个新的模拟器实例,该端口号都不同。HT9BYL904399表示通过USB数据线连接的真机。如果在运行Android程序时有多个模拟器或真机在线,会出现一个选择对话框。如果选择在真机运行,ADT会直接将程序安装在手机上。详细介绍读者可以查看14.1.2节的内容。

输出信息的第2列都是device,表示当前设备都在线。如果该列的值是offline,表示该实例没有连接到adb上或实例没有响应。

三、安装、卸载和运行程序

1.3.3  安装、卸载和运行程序(adb install、adb uninstall和am)

在Eclipse中运行Android程序必须得有Android源码工程。如果只有apk文件(Android应用程序的发行包,相当于Windows中的exe文件),该如何安装和运行呢?答案就是adb命令。假设要安装一个ebook.apk文件,可以使用如下命令:

adb install ebook.apk 

假设ebook.apk中的package是net.blogjava.mobile.ebook,可以使用如下命令卸载这个应用程序:

adb uninstall net.blogjava.mobile.ebook 

关于package的概念在以后的学习中会逐渐体会到,现在只要知道package是Android应用程序的唯一标识即可。如果在安装程序之前,该程序已经在模拟器或真机上存在了,需要先使用上面的命令卸载这个应用程序,然后再安装。或使用下面的命令重新安装。

adb install -r ebook.apk 

在卸载应用程序时可以加上-k命令行参数保留数据和缓冲目录,只卸载应用程序。命令如下所示:

adb uninstall -k net.blogjava.mobile.ebook 

如果机器上有多个模拟器或真机实例,需要使用-s命令行参数指定具体的模拟器或真机。例如,下面的命令分别在模拟器和真机上安装、重新安装和卸载应用程序。

在emulator-5554模拟器上安装ebook.apk:

adb -s emulator-5554 install ebook.apk 

在真机上安装ebook.apk:

adb -s HT9BYL904399 install ebook.apk 

在emulator-5554模拟器上重新安装ebook.apk:

adb -s emulator-5554 install -r ebook.apk 

在真机上重新安装ebook.apk:

adb -s HT9BYL904399 install -r ebook.apk 

在emulator-5554模拟器上卸载ebook.apk(不保留数据和缓冲目录):

adb -s emulator-5554 uninstall net.blogjava.mobile.ebook  

在真机上卸载ebook.apk(保留数据和缓冲目录):

adb -s HT9BYL904399 uninstall -k net.blogjava.mobile.ebook 

如果在模拟器和真机上成功安装ebook.apk,将会分别输出如图1.15和图1.16所示的信息。

 
图1.15  在模拟器上成功安装ebook.apk
 
图1.16  在真机上成功安装ebook.apk

如果想在模拟器或真机上运行已安装的应用程序,除了直接在模拟器或真机上操作外,还可以使用如下命令直接运行程序。

在emulator-5554模拟器上运行ebook.apk:

adb -s emulator-5554 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main 

在真机上运行ebook.apk:

adb -s HT9BYL904399 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main 

其中Main是ebook.apk的主Activity,相当于Windows应用程序的主窗体或Web应用程序的主页面。am是shell命令。关于shell命令将在1.3.5节详细介绍。

更多:

Adb工具常用操作(一)

AndroidSdk下载地址和环境变量配置

Android的ADB工具使用

Adb工具常用操作(一)的更多相关文章

  1. Adb工具常用操作-转(二)

    一. PC与模拟器或真机交换文件(adb pull和adb push) 在开发阶段或其他原因,经常需要将PC上的文件复制到模拟器或真机上,或将模拟机和真机上的文件复制到PC上.使用adb pull和a ...

  2. ADB工具常用指令和使用情形分析

    一.ADB常用命令:(不需要进到设备,也就是:不需要执行adb shell) adb devices 列出所有的已连接的设备 adb kill-server 关闭adb adb start-serve ...

  3. Linux记录-lsof打开文件工具常用操作

    lsof `which httpd` //那个进程在使用apache的可执行文件 lsof /etc/passwd //那个进程在占用/etc/passwd lsof /dev/hda6 //那个进程 ...

  4. 版本控制工具——Git常用操作(上)

    本文由云+社区发表 作者:工程师小熊 摘要:用了很久的Git和svn,由于总是眼高手低,没能静下心来写这些程序员日常开发最常用的知识点.现在准备开一个专题,专门来总结一下版本控制工具,让我们从git开 ...

  5. python借助ADB工具实现自动化操作手机

    核心工具——ADB工具 adb工具用于连接Android手机和PC端,我们借助adb工具,就可以通过命令行对手机进行相应的操作 注意:若要通过adb操作手机,需打开手机的开发者模式,并打开USB调试功 ...

  6. Android ADB工具-操作手机和获取手设备信息(四)

    Android ADB工具-操作手机和获取手设备信息(四) 标签(空格分隔): Android ADB 6. 其它命令 命令 功能 adb shell input text <content&g ...

  7. Redis可视化工具安装及常用操作操作

    可视化操作工具:RedisDesktopManager 下载地址:http://www.pc6.com/mac/486661.html 直接安装(傻瓜式安装,直接下一步就可以了)(有Mac和windo ...

  8. 2.SDK目录结构和adb工具及命令介绍

    安卓开发学习笔记 1.安卓开发之环境搭建 2.SDK目录结构和adb工具及命令介绍 1.SDK目录介绍: ******************************** add-ons:Androi ...

  9. Android配置----adb工具的使用

    Adb(android debug bridge):android 调试桥,用于将本地的文件 push 到环境中,或者从手机环境中 pull 文件到本地. 一.ADB的主要功能: · 运行设备的she ...

随机推荐

  1. 改变UITextField placeHolder色彩、字体

    改变UITextField placeHolder颜色.字体 我们有时需要定制化UITextField对象的风格,可以添加许多不同的重写方法,来改变文本字段的显示行为.这些方法都会返回一个CGRect ...

  2. Codeforces Round #205 (Div. 2) : D

    思维题,感叹自己的智商不够啊. 思路大概是这样的: 1.排在队伍前面的女生是不用换位置的: 2.女生在队伍中的顺序是不会变的: 3.最后一个女生稳定了则程序结束: 4.每个女生都有个初始位置和最终位置 ...

  3. MockupBuilder

    玩一下,想起了以前公司产品经理作的些事了...

  4. poj 2431 Expedition 贪心

    简单的说说思路,如果一开始能够去到目的地那么当然不需要加油,否则肯定选择能够够着的油量最大的加油站加油,,不断重复这个贪心的策略即可. #include <iostream> #inclu ...

  5. perl 获取虚拟机信息

    [root@master ~]# cat simple_flow.pl ! /usr/bin/perl -w use strict; use warnings; 导入 vSphere SDK for ...

  6. 【HDOJ】1429 胜利大逃亡(续)

    BFS+状态压缩,做了很多状态压缩了.今晚把八数码问题给搞定了. #include <iostream> #include <queue> #include <cstri ...

  7. C++ Prime:decltype类型指示符

    decltype作用是选择并返回操作数的数据类型. decltype(f()) sum = x; // sum的类型就是函数f的返回类型 如果decltype使用的表达式是一个变量,则decltype ...

  8. 区分execl与system——应用程序中执行命令

    execl:相关函数:fork, execle, execlp, execv, execve, execvp表头文件:#include <unistd.h>函数定义:int execl(c ...

  9. JDK 1.6.0和 6.0 有啥区别,JavaTM SE 6 的平台名字和版本号的说明(转)

    一直这么理解,今天才看到官方的解释,真是有点汗颜. 核心就是 6.0用于平台和产品的名字,而1.6.0用于开发者. 他们指的是同一个东西. 原文地址:http://java.sun.com/javas ...

  10. [PHP] 跳转以及回到原来的地址

    回到原来的地址: 1.PHP(PHP代码) Header('Location:'.$_SERVER["HTTP_REFERER"]); 2.JavaScript(相当于后退按钮,- ...