最近很多小伙伴都在问安装AndroidSDK和AndroidStudio,配置adb这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展adbclient,adbserver,adbd
最近很多小伙伴都在问安装 Android SDK 和Android Studio,配置 adb这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展adb client, adb server, adbd 原理浅析(附带我的操作过程)、ADB enhanced Putty (replacement for "adb shell")、adb push ,adb pull和adb install的区别、Adb root 有效,但 adb shell su 无效等相关知识,下面开始了哦!
本文目录一览:- 安装 Android SDK (Android Studio),配置 adb(安装android sdk详细)
- adb client, adb server, adbd 原理浅析(附带我的操作过程)
- ADB enhanced Putty (replacement for "adb shell")
- adb push ,adb pull和adb install的区别
- Adb root 有效,但 adb shell su 无效
安装 Android SDK (Android Studio),配置 adb(安装android sdk详细)
Android SDK (Software Development Kit,软件开发工具包) 提供了 Android API 库和开发工具构建,可用来测试和调试应用程序。简单来讲 Android SDK 可以看作用于开发和运行 Android 应用的一个软件。Android SDK 已经不再提供完整的独立下载,需要通过 Android Studio 安装
Android Studio 是 Android 应用的集成开发工具,用于开发与调试 Android 应用,是 Google 公司在 IntelliJ IDEA 开源版本基础上开发的。、
在安装 Android 开发环境之前,需要先安装 Java 开发环境,参考我之前写的文章:配置 Java 环境
Android Studio 官网:https://developer.android.google.cn/studio/
各位可根据自己的系统下载对应的版本,本文以 windows10 为例,下载并安装 android-studio-ide-191.6010548-windows.exe。
安装步骤
1. 双击下载的安装包文件,点击 Next
2. 勾选 Abdroid Virtual Device,点击 Next
3. 选择安装路径,点击 Next
4. 点击 Install 进行安装
5. 安装完成点击 Next
6. 点击 Finish, 完成安装后启动 Android Studio
7. 首次启动时,会弹出提示框,提示没有检查到 Android SDK,因为我们还没有单独配置 Android SDK. 所以单机 Cancel 按钮,继续安装。
8. 点击 Next
9. 此处我选择的 Custom,然后点击 Next
10. 选择主题,点击 Next
11. 选择需要安装的组件和安装路径,点击 Next。(因为我需要用来做测试,因此全选了)
12. 分配内存,默认即可,点击 Next
13. 点击 Finish,完成配置,进行下载安装。
14. 安装完成后点击 Finish。然后就可以创建 Android 项目了。
创建项目具体步骤参考官方文档:https://developer.android.google.cn/training/basics/firstapp/creating-project
配置 Adnroid 环境变量
右击此电脑 -- 属性 -- 高级系统设置 -- 高级 -- 环境变量
在系统变量下新建变量 ANDROID_HOME,值为 Android SDK 安装路径
变量名:ANDROID_HOME
变量值:C:\Users\lcgst\AppData\Local\Android\Sdk
然后在 Path 变量中追加如下配置,点击确定。
变量名:Path
变量值:% ANDROID_HOME%\platform-tools
变量值:% ANDROID_HOME%\tools
测试:
在 windows 命令提示符下输入 adb 命令
Android Debug Bridge (ADB) 是一种命令行工具,用于在 PC 与 Android 模拟器(或链接的 Android 设备)之前进行通信。该工具集成在 Android SDK 中,默认在 Android SDK 的 platform-tools 目录下。
adb 用法参考:https://developer.android.google.cn/studio/command-line/adb
adb client, adb server, adbd 原理浅析(附带我的操作过程)
adb 是什么?adb 就是 Android 调试桥,很形象啊。 先来看 adb 原理的逻辑图:
再来进行实际操作:我的 pc 的 ip 是 192.168.1.102, 我的 android 手机的 ip 为 192.168.1.100
1. 在 pc 上执行:netstat -nao | findstr 5037
发现结果是空白。
2. 执行 adb shell, 肯定是进不了任何 shell 啊, 然后执行:netstat -nao | findstr 5037
结果是:TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 3840
可见 3840 进程正在监听 5037 端口, 这个进程实际上就是 adb server
3. 打开 android 手机,执行 adb connect 192.168.1.100, 请参考我之前的博文, 确保 adb 能连接上手机哈。
发现, 界面提示 adb 成功连接上了手机。
执行 netstat -nao | findstr 5037, 居然仍然是:TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 3840
执行 adb shell, 进入手机的 android 系统, 再次在 pc 的 cmd 中(非前面的 shell 中)执行 netstat -nao | findstr 5037, 结果为:
TCP 127.0.0.1:1571 127.0.0.1:5037 ESTABLISHED 4496
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 3840
TCP 127.0.0.1:5037 127.0.0.1:1571 ESTABLISHED 3840
表明,adb client 和 adb server 建立 tcp 连接了。
4. 不需要退出上面的 shell, 仅在另一个 cmd 中执行 netstat -nao | findstr 5555, 结果为:
TCP 192.168.1.102:1559 192.168.1.100:5555 ESTABLISHED 3840
表明, adb server 和 adbd 建立起了 tcp 连接。
5. 前面已经进入了手机的 shell, 现在在 shell 中执行:netstat -nao | busybox grep 5555, 结果为:
tcp 0 0 0.0.0.0:5555 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.100:5555 192.168.1.102:1559 ESTABLISHED
进一步证实, adb server 和 adbd 建立起了 tcp 连接。
归纳:
adb client (pid:4496) <--->adb server (监听 5037 端口, pid:3840)<--->adbd (监听 5555 端口,pid: 未显示)
|<------------------------------- 在 pc 端 ------------------------------> | |<------------ 在手机端 ------------>|
其中, adb server 作为 adb client 的服务端, 而 adbd 又作为 adb server 的服务端, 实际上就是下面这个意思:
儿子 <------------------------------> 爸爸 <-------------------------------------> 爷爷
前面我们已经说过, 也可以利用数据线来进行连接, 这里, 我就不过多再赘述了, 原理大体类似, 为了让大家更清晰, 我借鉴了网上的一幅图, 这幅图很强大, 真是太棒了:
一图胜千言万语
突然, 我想起了小时候, 一个老人给我出的题: 两个爸爸和两个儿子, 要均分 3 个同样的苹果, 不允许切割, 请问怎么分
---------------------
作者:stpeace
来源:CSDN
原文:https://blog.csdn.net/stpeace/article/details/24933813
版权声明:本文为博主原创文章,转载请附上博文链接!
ADB enhanced Putty (replacement for "adb shell")
We all know that running "adb shell" from the command line is pretty crap, and when using a latter busybox version which has coloring support it''s ultimately crap. One workaround was usually to start a telnet server on the phone, and use putty to connect to that telnet server. Actually there is a more easier way to do that which also works for non rooted phones.
Actually the Android Debug Bridge has a terminal connection feature (roughly speaking), which will be enabled after you connect to the adb server in "0006shell:" mode. You can actually use the putty to connect to this interface always, by setting the following things:
- Turn off line discipline in settings(Terminal--Local echo:Force off Local line-editing:Force off)
- Use RAW mode to connect to localhost:5037
- Enter "0012host:transport-usb" (use mouse right button)
- Enter "0006shell:" (use mouse right button)
PS.Don''t put anykey with keyboard
Now you''ve got a full fledged connection to your device. The main drawback is that it''s tedious to repeat the above all the time, so I''ve made some modifications to the putty binary that adds a new type of connection, called "Adb"
To use the enhanced putty:
- Select Adb from the connection type list
- Enter "transport-usb" in the host (or any other connection string, check the adb socket interface documentation if you need something else than connecting via usb)
- Enter 5037 as port, if it''s not already set there.
- Connect and enjoy (you might also save this connection, so next time you only have to double-click on the settings)
DL and source: http://github.com/sztupy/adbputty/downloads
Screenshot:
http://www.busybox.net/products.html
adb push ,adb pull和adb install的区别
1、用命令行把手机上的文件拷贝到电脑上
1
|
adb pull sdcard/
1222073679
.png
|
拷贝文件夹命令,如把log文件夹拷贝到电脑当前目录
1
|
adb pull sdcard/log/
|
拷贝文件夹到当前文件夹下的某文件夹里面,如拷贝360文件夹到当前文件夹的360里面
1
|
adb pull sdcard/
360
/
360
|
2、顺便学一下push命令吧
1
|
adb push aaa/contacts_app.db /sdcard/
|
把文件contacts_app.db拷贝到手机sdcard上
3,adb push和adb install是apk包安装的两种方法,用法如下:
1.adb push XXX.apk /path你想推送的路径
2.adb install XXX.apk
显而易见,两者的区别是,adb push可以自定义推送路径,adb install 只能安装在/data/app文件下。
其次,adb push 是将apk包复制到路径下面,重启后/system/app和/data/app下的apk包都会自动安装。
adb install是将apk安装到手机里,流程是:
复制APK安装包到data/app目录下,解压并扫描安装包,把dex文件(Dalvik字节码)保存到dalvik-cache目录,并data/data目录下创建对应的应用数据目录(so文件也在./包名/lib下,或者/data/app-lib/包名)。
另外,install复制APK安装包到data/app目录下的过程中,会将apk名改为包名-1.apk,数字为android接收到的版本号。
其中对于/system文件夹比较容易碰到的问题是报read only file的错误,哪怕/system已经被你改成了777的权限,解决的方法是:1.adb shell 2.su 3.mount -o remount rw /system重新挂载一下/system文件系统。
4、如何把某个app的数据库文件复制到电脑上
此方法需要root手机
先把数据库文件复制到手机sdcard上
1
2
3
4
5
6
7
8
9
10
11
12
|
E:\test>adb shell
shell
@hwC199
:/ $ su
su
root
@hwC199
:/ # cd /data/data/com.android.contacts/databases/
cd /data/data/com.android.contacts/databases/
root
@hwC199
:/data/data/com.android.contacts/databases # ls
ls
contacts_app.db
contacts_app.db-journal
root
@hwC199
:/data/data/com.android.contacts/databases # cp contacts_app.db /mnt/sdcard/
_app.db /mnt/sdcard/ <
root
@hwC199
:/data/data/com.android.contacts/databases #
|
也就是进入su输入命令后,执行此命令(把contacts_app.db复制到sdcard卡)
1
|
cp /data/data/com.android.contacts/databases/contacts_app.db /mnt/sdcard/
|
这样contacts_app.db数据库文件就复制到手机sdcard上了。在电脑上某个文件夹shift+右键开一个终端,再用以下语句复制到电脑上即可
1
|
adb pull sdcard/contacts_app.db
|
Adb root 有效,但 adb shell su 无效
如何解决Adb root 有效,但 adb shell su 无效?
我正在尝试从 adb 与我的 xperia z3c 设备通信,没有触摸,没有显示,没有 USB 调试。 唯一可以做某事的方法是在恢复模式下通过 adb。安装的操作系统是沿袭 17,但已重置为出厂。我正在尝试激活 wifi 以通过 wifi 镜像手机并对其进行配置。为此,我需要对 shell 的 root 访问权限。该设备似乎已植根:
C:\..\platform-tools>adb devices
List of devices attached
BY900FCQ1Z recovery
C:\..\platform-tools>adb root
adbd is already running as root
但是当我进入 shell 时,没有命令在工作:
C:\...\platform-tools>adb shell
z3c:/ # svc wifi enable
/sbin/sh: svc: not found
z3c:/ # su
/sbin/sh: su: not found
127|z3c:/ #
有没有办法解决这个问题? 任何帮助将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
关于安装 Android SDK 和Android Studio,配置 adb的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于adb client, adb server, adbd 原理浅析(附带我的操作过程)、ADB enhanced Putty (replacement for "adb shell")、adb push ,adb pull和adb install的区别、Adb root 有效,但 adb shell su 无效等相关知识的信息别忘了在本站进行查找喔。
本文标签: