Android-adb 常用命令 和 sqlite

Android开发环境中,ADB是我们进行Android开发经常要用的调试工具,它的使用当然是我们Android开发者必须要掌握的。

ADB概述

Android Debug Bridge,Android调试桥接器,简称adb,是用于管理模拟器或真机状态的万能工具,采用了客户端-服务器模型,包括三个部分:

1、客户端部分,运行在开发用的电脑上,可以在命令行中运行adb命令来调用该客户端,像ADB插件和DDMS这样的Android工具也可以调用adb客户端。

2、服务端部分,是运行在开发用电脑上的后台进程,用于管理客户端与运行在模拟器或真机的守护进程通信。

3、守护进程部分,运行于模拟器或手机的后台。

使用adb命令

从开发用电脑的命令行或脚本文件中使用adb命令的用法是:

adb [-d|-e|-s <serialNumber>] <command>

当使用的时候,程序会调用adb客户端。因为adb客户端不需要关联到任何模拟器,所以如果有多个模拟器或手机正在运行,就需要使用-d参数指定要操作的是哪一个。

  

   adb devices

执行结果是adb为每一个设备输出以下状态信息:  

adb命令列表

  下表列出了所有adb支持的命令及其说明:


类别


命令


说明


备注


可选项


-d


命令仅对USB设备有效


如果有多个USB设备就会返回错误


-e


命令仅对运行中的模拟器有效


如果有多个运行中的模拟器就会返回错误


-s <serialNumber>


命令仅对adb关联的特定序列号的模拟器或手机有效(例如 "emulator-5556").


如果不指定设备就会返回错误


一般项


devices


输出所有关联的模拟器或手机设备列表


参见 Querying for Emulator/Device Instances 以获得更多信息。


help


输出adb支持的命令

 

version


输出adb的版本号

 

调试项


logcat [<option>] [<filter-specs>]


在屏幕上输出日志信息

 

bugreport


为报告bug,在屏幕上输出dumpsys,dumpstate和 logcat数据

 

jdwp


输出有效的JDWP进程信息


可以使用 forward jdwp:<pid> 转换端口以连接到指定的 JDWP 进程,例如:

adb forward tcp:8000 jdwp:472

jdb -attach localhost:8000


数据项


install <path-to-apk>


安装应用程序(用完整路径指定.apk文件)

 

pull <remote> <local>


从开发机COPY指定的文件到模拟器或手机

 

push <local> <remote>


从模拟器或手机COPY文件到开发机

 

端口和网络项


forward <local> <remote>


从本地端口转换连接到模拟器或手机的指定端口


端口可以使用以下格式表示:

l tcp:<portnum>

l local:<UNIX domain socket name>

l dev:<character device name>

l jdwp:<pid>


ppp <tty> [parm]...


通过USB运行UPP

l <tty> —PPP流中的tty。例如:/dev/omap_csmi_ttyl。

l [parm]... — 0到多个PPP/PPPD 选项, 例如defaultroute, local, notty等等。

注意不用自动启动PPP连接

 

脚本项


get-serialno


输出adb对象的序列号


参见 Querying for Emulator/Device Instances以获得更多信息。


get-state


输出adb设备的状态


wait-for-device


阻塞执行直到设备已经连接,即设备状态是 device.


可以在其他命令前加上此项,那样的话adb就会等到模拟器或手机设备已经连接才会执行命令,例如:

注意该命令并不等待系统完全启动,因此不能追加需要在系统完全启动才能执行的命令,例如install命令需要Android包管理器支持,但它必须在系统完全启动后才有效。下面的命令

会在模拟器或手机与adb发生连接后就执行install,但系统还没有完全启动,所以会引起错误。


服务端项


start-server


检测adb服务进程是否启动,如果没启动则启动它。

 

kill-server


终止服务端进程

 

Shell


shell


在目标模拟器或手机上启动远程SHELL


参见 Issuing Shell Commands以获得更多信息。


shell [<shellCommand>]


在目标模拟器或手机上执行shellCommand然后退出远程SHELL

 

SQLite 命令

本章将向您讲解 SQLite 编程人员所使用的简单却有用的命令。这些命令被称为 SQLite 的点命令,这些命令的不同之处在于它们不以分号(;)结束。

让我们在命令提示符下键入一个简单的 sqlite3 命令,在 SQLite 命令提示符下,您可以使用各种 SQLite 命令。

$sqlite3
SQLite version 3.3.6
Enter ".help" for instructions
sqlite>

如需获取可用的点命令的清单,可以在任何时候输入 ".help"。例如:

sqlite>.help

上面的命令会显示各种重要的 SQLite 点命令的列表,如下所示:

命令 描述
.backup ?DB? FILE 备份 DB 数据库(默认是 "main")到 FILE 文件。
.bail ON|OFF 发生错误后停止。默认为 OFF。
.databases 列出附加数据库的名称和文件。
.dump ?TABLE? 以 SQL 文本格式转储数据库。如果指定了 TABLE 表,则只转储匹配 LIKE 模式的 TABLE 表。
.echo ON|OFF 开启或关闭 echo 命令。
.exit 退出 SQLite 提示符。
.explain ON|OFF 开启或关闭适合于 EXPLAIN 的输出模式。如果没有带参数,则为 EXPLAIN on,及开启 EXPLAIN。
.header(s) ON|OFF 开启或关闭头部显示。
.help 显示消息。
.import FILE TABLE 导入来自 FILE 文件的数据到 TABLE 表中。
.indices ?TABLE? 显示所有索引的名称。如果指定了 TABLE 表,则只显示匹配 LIKE 模式的 TABLE 表的索引。
.load FILE ?ENTRY? 加载一个扩展库。
.log FILE|off 开启或关闭日志。FILE 文件可以是 stderr(标准错误)/stdout(标准输出)。
.mode MODE 设置输出模式,MODE 可以是下列之一:

  • csv 逗号分隔的值
  • column 左对齐的列
  • html HTML 的 <table> 代码
  • insert TABLE 表的 SQL 插入(insert)语句
  • line 每行一个值
  • list 由 .separator 字符串分隔的值
  • tabs 由 Tab 分隔的值
  • tcl TCL 列表元素
.nullvalue STRING 在 NULL 值的地方输出 STRING 字符串。
.output FILENAME 发送输出到 FILENAME 文件。
.output stdout 发送输出到屏幕。
.print STRING... 逐字地输出 STRING 字符串。
.prompt MAIN CONTINUE 替换标准提示符。
.quit 退出 SQLite 提示符。
.read FILENAME 执行 FILENAME 文件中的 SQL。
.schema ?TABLE? 显示 CREATE 语句。如果指定了 TABLE 表,则只显示匹配 LIKE 模式的 TABLE 表。
.separator STRING 改变输出模式和 .import 所使用的分隔符。
.show 显示各种设置的当前值。
.stats ON|OFF 开启或关闭统计。
.tables ?PATTERN? 列出匹配 LIKE 模式的表的名称。
.timeout MS 尝试打开锁定的表 MS 微秒。
.width NUM NUM 为 "column" 模式设置列宽度。
.timer ON|OFF 开启或关闭 CPU 定时器测量。

让我们尝试使用 .show 命令,来查看 SQLite 命令提示符的默认设置。

sqlite>.show
     echo: off
  explain: off
  headers: off
     mode: column
nullvalue: ""
   output: stdout
separator: "|"
    width:
sqlite>

确保 sqlite> 提示符与点命令之间没有空格,否则将无法正常工作。

格式化输出

您可以使用下列的点命令来格式化输出为本教程下面所列出的格式:

sqlite>.header on
sqlite>.mode column
sqlite>.timer on
sqlite>

上面设置将产生如下格式的输出:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0
CPU Time: user 0.000000 sys 0.000000

sqlite_master 表格

主表中保存数据库表的关键信息,并把它命名为 sqlite_master。如要查看表概要,可按如下操作:

sqlite>.schema sqlite_master

这将产生如下结果:

CREATE TABLE sqlite_master (
  type text,
  name text,
  tbl_name text,
  rootpage integer,
  sql text
);


SQLite 语法

SQLite 是遵循一套独特的称为语法的规则和准则。本教程列出了所有基本的 SQLite 语法,向您提供了一个 SQLite 快速入门。

SQLite 语句

所有的 SQLite 语句可以以任何关键字开始,如 SELECT、INSERT、UPDATE、DELETE、ALTER、DROP 等,所有的语句以分号(;)结束。

SQLite ANALYZE 语句:

ANALYZE;
or
ANALYZE database_name;
or
ANALYZE database_name.table_name;

SQLite AND/OR 子句:

SELECT column1, column2....columnN
FROM   table_name
WHERE  CONDITION-1 {AND|OR} CONDITION-2;

SQLite ALTER TABLE 语句:

ALTER TABLE table_name ADD COLUMN column_def...;

SQLite ALTER TABLE 语句(Rename):

ALTER TABLE table_name RENAME TO new_table_name;

SQLite ATTACH DATABASE 语句:

ATTACH DATABASE ‘DatabaseName‘ As ‘Alias-Name‘;

SQLite BEGIN TRANSACTION 语句:

BEGIN;
or
BEGIN EXCLUSIVE TRANSACTION;

SQLite BETWEEN 子句:

SELECT column1, column2....columnN
FROM   table_name
WHERE  column_name BETWEEN val-1 AND val-2;

SQLite COMMIT 语句:

COMMIT;

SQLite CREATE INDEX 语句:

CREATE INDEX index_name
ON table_name ( column_name COLLATE NOCASE );

SQLite CREATE UNIQUE INDEX 语句:

CREATE UNIQUE INDEX index_name
ON table_name ( column1, column2,...columnN);

SQLite CREATE TABLE 语句:

CREATE TABLE table_name(
   column1 datatype,
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
   PRIMARY KEY( one or more columns )
);

SQLite CREATE TRIGGER 语句:

CREATE TRIGGER database_name.trigger_name
BEFORE INSERT ON table_name FOR EACH ROW
BEGIN
   stmt1;
   stmt2;
   ....
END;

SQLite CREATE VIEW 语句:

CREATE VIEW database_name.view_name  AS
SELECT statement....;

SQLite CREATE VIRTUAL TABLE 语句:

CREATE VIRTUAL TABLE database_name.table_name USING weblog( access.log );
or
CREATE VIRTUAL TABLE database_name.table_name USING fts3( );

SQLite COMMIT TRANSACTION 语句:

COMMIT;

SQLite COUNT 子句:

SELECT COUNT(column_name)
FROM   table_name
WHERE  CONDITION;

SQLite DELETE 语句:

DELETE FROM table_name
WHERE  {CONDITION};

SQLite DETACH DATABASE 语句:

DETACH DATABASE ‘Alias-Name‘;

SQLite DISTINCT 子句:

SELECT DISTINCT column1, column2....columnN
FROM   table_name;

SQLite DROP INDEX 语句:

DROP INDEX database_name.index_name;

SQLite DROP TABLE 语句:

DROP TABLE database_name.table_name;

SQLite DROP VIEW 语句:

DROP INDEX database_name.view_name;

SQLite DROP TRIGGER 语句:

DROP INDEX database_name.trigger_name;

SQLite EXISTS 子句:

SELECT column1, column2....columnN
FROM   table_name
WHERE  column_name EXISTS (SELECT * FROM   table_name );

SQLite EXPLAIN 语句:

EXPLAIN INSERT statement...;
or
EXPLAIN QUERY PLAN SELECT statement...;

SQLite GLOB 子句:

SELECT column1, column2....columnN
FROM   table_name
WHERE  column_name GLOB { PATTERN };

SQLite GROUP BY 子句:

SELECT SUM(column_name)
FROM   table_name
WHERE  CONDITION
GROUP BY column_name;

SQLite HAVING 子句:

SELECT SUM(column_name)
FROM   table_name
WHERE  CONDITION
GROUP BY column_name
HAVING (arithematic function condition);

SQLite INSERT INTO 语句:

INSERT INTO table_name( column1, column2....columnN)
VALUES ( value1, value2....valueN);

SQLite IN 子句:

SELECT column1, column2....columnN
FROM   table_name
WHERE  column_name IN (val-1, val-2,...val-N);

SQLite Like 子句:

SELECT column1, column2....columnN
FROM   table_name
WHERE  column_name LIKE { PATTERN };

SQLite NOT IN 子句:

SELECT column1, column2....columnN
FROM   table_name
WHERE  column_name NOT IN (val-1, val-2,...val-N);

SQLite ORDER BY 子句:

SELECT column1, column2....columnN
FROM   table_name
WHERE  CONDITION
ORDER BY column_name {ASC|DESC};

SQLite PRAGMA 语句:

PRAGMA pragma_name;

For example:

PRAGMA page_size;
PRAGMA cache_size = 1024;
PRAGMA table_info(table_name);

SQLite RELEASE SAVEPOINT 语句:

RELEASE savepoint_name;

SQLite REINDEX 语句:

REINDEX collation_name;
REINDEX database_name.index_name;
REINDEX database_name.table_name;

SQLite ROLLBACK 语句:

ROLLBACK;
or
ROLLBACK TO SAVEPOINT savepoint_name;

SQLite SAVEPOINT 语句:

SAVEPOINT savepoint_name;

SQLite SELECT 语句:

SELECT column1, column2....columnN
FROM   table_name;

SQLite UPDATE 语句:

UPDATE table_name
SET column1 = value1, column2 = value2....columnN=valueN
[ WHERE  CONDITION ];

SQLite VACUUM 语句:

VACUUM;

SQLite WHERE 子句:

SELECT column1, column2....columnN
FROM   table_name
WHERE  CONDITION;
时间: 2024-10-12 21:17:18

Android-adb 常用命令 和 sqlite的相关文章

android adb常用命令

1.adb--- 截取屏幕的命令  :adb shell screencap -p | sed 's/\r$//' > outputs.png 2.jni ---命令    :$NDK/ndk-build 3. adb 启动程序:adb shell am start -n 包名/程序Activity类的类名(main) adb 安装程序: adb install  + 路径 adb 卸载程序 :adb uninstall +包名 adb 调试:  adb connect ip 地址 adb 断开

Android ADB 常用命令

Android ADB 常用命令 泛原罪 2016.09.21 00:02* 字数 605 阅读 2912评论 0喜欢 1 [TOC] adb logcat 查看日志 详细内容可参见 ADB Usage Complete / ADB 用法大全 官方文档Listing of logcat Command Options 他人整合 http://jiongbull.com/2016/03/17/adb%E5%91%BD%E4%BB%A4/ 应用相关 查看应用列表 adb shell pm list

Android ADB 常用命令详解

1. adb帮助获取 命令:adb –help 说明:执行此命令后,可查看adb支持的所有命令. 2. app安装卸载 命令详情如下,后续会对你常用场景做讲解. 2.1 安装一个apk 命令:adb install package 说明:package指的是要安装的apk包文件. 2.2 覆盖安装一个apk 命令:adb install –r package 说明:package指的是要安装的apk包文件. 2.3 卸载一个apk 命令:adb uninstall packageName 说明:

54. Android中adb常用命令及应用常用目录

本文主要介绍adb常用命令及应用常用目录.1.adb常用命令adb devices列出所有连接的android设备.以下命令都是对单个devices而言,如果存在多个devices的话,下面的命令都需要将adb变为adb -s deviceId adb shell进入devices命令行模式,进入命令行模式,就是linux命令行了adb shell command进入devices命令行模式,并运行命令commandadb shell am start -n <package>/<pac

【android】adb常用命令

ADB常用命令: [adb help]获取帮助 [adb get-serialno]获取设备串号 [adb -s <serialNumber> <command>]给特定设备发命令 [adb root]获取root权限,对部分手机有用,大部分上市手机已经把这个功能给关闭了.获取root权限还可以通过豌豆夹等第三方工具. [adb kill-server]杀死adb的server进程. [adb start-server]启动adb的server进程. [adb devices]查看

adb常用命令

由于Android是基于Linux内核的操作系统.因此,在Android上可以执行Shell命令. [email protected]:~$adb shell [email protected]:/ $ su 拿到root权限 ls 查看文件夹 cd 改变目录 cat <文件名> 查看文件 rm 删除文件 mkdir <文件夹名> 新建文件夹 exit 退出shell命令 0.启动和关闭adb服务 adb kill-server //关闭adb服务 adb start-server

adb 常用命令

摘要:SDK的Tools文件夹下包含着Android模拟器操作的重要命令adb,adb的全称为(Android Debug Bridge就是调试桥的作用.通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序. adb介绍 SDK的Tools文件夹下包含着Android模拟器操作的重要命令adb,adb的全称为(Android Debug Bridge就是调试桥的作用.通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序.借助这个工具,我们可以管理设

adb常用命令教程

1.Android Debug Bridge - adb常用命令 1.1简介 Android Debug Bridge,我们一般简称为adb,主要存放在sdk安装目录下的platform-tools文件夹中,它是一个非常强大的命令行工具,通过这个工具你能够与你的android设备进行交互.同时这是一个包含了以下三部分的cs模式的程序: 1) adb client 从图中,我们知道client是运行在PC端的,每当我们发起一个adb命令的时候,就会开启一个client程序.当然,当我们开启DDMS

appium之adb常用命令

appium之adb常用命令 一.真机远程调试步骤: (非数据线操作要求需要手机和pc端在同一个路由器下) 1.将手机连接到pc端 2.adb devices  检测设备 3.adb tcpip 5555 确定手机和pc端的通讯(端口) 4.拔掉手机 5.adb connect  <手机ip地址> 6.adb disconnect 取消远程调试 1.adb是什么? adb是用来连接安卓手机和pc端的桥梁 2.adb组成: 1.客户端(client):运行在自己电脑上,可以通过adb命令来调用起

移动端自动化测试之adb常用命令

今天我们来聊聊自动化测试过程中常用的adb命令. 简介 首先介绍下什么是adb,adb全称叫“android debug bridge”,翻译过来就叫调试桥,通过命令行指令,可让你与移动端设备进行相互通信.adb 命令便于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限.它是一种客户端-服务器程序,包括以下三个组件:1.客户端:用于发送命令.客户端在开发计算机上运行.您可以通过发出 adb 命令从命令行终端调用客户端.2.守护进程 (