Mac adb操作设备与电脑文件传输及Apk安装启动
相关知识基础:
Mac苹果本之终端命令符操作
Mac AndroidStudio-常用dos操作命令
mac 设置adb 和 command not found解决方法
前言
Adb操作对于安卓开发者来说堪称战士的“瑞士刀”,我们知道,开发时利用第三方软件,例如豌豆芽、某手机助手等可以很方便安装apk进行测试,但是Mac这些第三方软件很难做到的,不知道为什么会出一些莫名其妙的问题。这时,如果你会adb文件操作,那么对于安装apk简直易如反掌啊。
一、进行文件操作命令列表
命令 | 功能 |
---|---|
adb shell ls mnt | 查看所有设备存储设备名 |
adb remount | 将 system 分区重新挂载为可读写分区 |
adb push <local> <remote> | 从本地复制文件到设备 |
adb pull <remote> <local> | 从设备复制文件到本地 |
adb shell ls | 列出目录下的文件和文件夹 |
adb shell cd <folder> | 进入文件夹 |
adb shell rm [-r] <path/filename> | 删除文件(夹) |
adb shell cat <file> | 查看文件内容 |
adb shell mkdir path/foldername | 新建文件夹 |
查询模拟器/设备
命令行执行 : adb devices
如果在运行Android程序时有多个模拟器或真机在线,那么会出现一个选择对话框。如果选择在真机运行,ADT会直接将程序安装在手机上。
查看存储设备名称
由于手机厂商不同,存储设备名称可能不同。
adb shell ls mnt | 查看所有设备存储设备名 |
aiyang:~ aiyang$ adb shell ls mnt
appfuse
expand
obb
runtime
sdcard
secure
user
ls: mnt/media_rw: Permission denied
ls: mnt/asec: Permission denied
将System挂载为可读写分区
adb remount | 将 system 分区重新挂载为可读写分区 |
aiyang:~ aiyang$ adb remount
Not running as root. Try "adb root" first.
这个没有权限情况。正常应该给出 remount successed
推送文件到手机sdcard
比如将补丁包patch_signed_7zip.apk推送到手机sdcard根目录:
aiyang:~ aiyang$ cd Desktop/demo/TinkerApp/app/build/outputs/tinkerPatch/debug/ //进入debug文件目录下
aiyang:debug aiyang$ adb push patch_signed_7zip.apk /mnt/sdcard/ //然后 adb push 讲apk推到手机根目录的sdcard下
patch_signed_7zip.apk: 1 file pushed. 13.5 MB/s (156379 bytes in 0.011s)
安装、卸载、运行APK(adb install、adb uninstall、am)
安装使用如下的命令:
adb install patch_signed_7zip.apk
在卸载应用程序时可以加上-k命令行参数保留数据和缓冲目录,只卸载应用程序。命令如下:
adb uninstall -k patch_signed_7zip
如果有多个模拟器、真机,需要 -s 命令行指定。
例如,下面的命令分别在模拟器、真机上安装、重新安装和卸载应用程序。
在emulator-5554模拟器上安装ebook.apkadb -s emulator-5554 install ebook.apk
在真机上安装ebook.apkadb -s HT9BYL904399 install ebook.apk
在emulator-5554模拟器上重新安装ebook.apkadb -s emulator-5554 install -r ebook.apk
在真机上重新安装ebook.apkadb -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
如果在模拟器、真机上运行程序,可以使用如下的命令直接运行程序。在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命令。将手机里文件拉取到电脑
C:\Users\Administrator>adb pull /mnt/sdcard/Test.apk C:\Users\Administrator\Desk
top\aa
查看手机sdcard所以内容
aiyang:/ aiyang$ adb shell //进入手机设备
HWBKL:/ $ cd /mnt/sdcard //进入根目录sdcard下
HWBKL:/mnt/sdcard $ ls //ls 查看内容列表
360 Mob amap patch_signed_7zip.apk
ANRSnap Movies at qmt
Alarms Music backup qt
Android Notifications backups setup
BaiduMap Pictures baidu sitemp
Browser Podcasts com.tencent.mobileqq tbs
DCIM QQBrowser daojia tbslog
Documents Ringtones delivery tencent
Download Sounds fanshe tinker
Huawei WLAN Direct image tmp
HuaweiSystem abc log wandoujia
MQ alipay msc websites
删除手机sdcard文件
从上面查看内容我们可以看见,被推送到手机的patch_signed_7zip.apk文件。如果此时已经手机设备根目录sdcard下即可操作如下删除:
127|HWBKL:/mnt/sdcard $ rm patch_signed_7zip.apk
如果不在手机设备根目录sdcard下,可以再走一遍查看:
aiyang:/ aiyang$ adb shell cd /mnt/sdcard
HWBKL:/mnt/sdcard $ ls
360 Download Pictures amap fanshe tbs
ANRSnap Huawei Podcasts at image tbslog
Alarms HuaweiSystem QQBrowser backup log tencent
Android MQ Ringtones backups msc tinker
BaiduMap Mob Sounds baidu qmt tmp
Browser Movies WLAN Direct com.tencent.mobileqq qt wandoujia
DCIM Music abc daojia setup websites
Documents Notifications alipay delivery sitemp
对比可见,我已经删除成功了。
创建文件夹和设置文件权限
adb shell mkdir path/foldername | 新建文件夹 |
HWBKL:/mnt/sdcard $ mkdir 361 //依然是在根目录sdcard下,(进入根目录方法上面有)
HWBKL:/mnt/sdcard $ ls //查看内容列表,发现多了361
360 Huawei Ringtones com.tencent.mobileqq sitemp
361 HuaweiSystem Sounds daojia tbs
ANRSnap MQ WLAN Direct delivery tbslog
Alarms Mob abc fanshe tencent
Android Movies alipay image tinker
BaiduMap Music amap log tmp
Browser Notifications at msc wandoujia
DCIM Pictures backup qmt websites
Documents Podcasts backups qt
Download QQBrowser baidu setup
查看文件内容
adb shell cat <file> | 查看文件内容 |
HWBKL:/mnt/sdcard $ cat 361
cat: 361: Is a directory
依然是在根目录sdcard下。结果很明白了。不多说上面了。
相关知识基础:
Mac苹果本之终端命令符操作
Mac AndroidStudio-常用dos操作命令
mac 设置adb 和 command not found解决方法
前言
Adb操作对于安卓开发者来说堪称战士的“瑞士刀”,我们知道,开发时利用第三方软件,例如豌豆芽、某手机助手等可以很方便安装apk进行测试,但是Mac这些第三方软件很难做到的,不知道为什么会出一些莫名其妙的问题。这时,如果你会adb文件操作,那么对于安装apk简直易如反掌啊。
一、进行文件操作命令列表
命令 | 功能 |
---|---|
adb shell ls mnt | 查看所有设备存储设备名 |
adb remount | 将 system 分区重新挂载为可读写分区 |
adb push <local> <remote> | 从本地复制文件到设备 |
adb pull <remote> <local> | 从设备复制文件到本地 |
adb shell ls | 列出目录下的文件和文件夹 |
adb shell cd <folder> | 进入文件夹 |
adb shell rm [-r] <path/filename> | 删除文件(夹) |
adb shell cat <file> | 查看文件内容 |
adb shell mkdir path/foldername | 新建文件夹 |
查询模拟器/设备
命令行执行 : adb devices
如果在运行Android程序时有多个模拟器或真机在线,那么会出现一个选择对话框。如果选择在真机运行,ADT会直接将程序安装在手机上。
查看存储设备名称
由于手机厂商不同,存储设备名称可能不同。
adb shell ls mnt | 查看所有设备存储设备名 |
aiyang:~ aiyang$ adb shell ls mnt
appfuse
expand
obb
runtime
sdcard
secure
user
ls: mnt/media_rw: Permission denied
ls: mnt/asec: Permission denied
将System挂载为可读写分区
adb remount | 将 system 分区重新挂载为可读写分区 |
aiyang:~ aiyang$ adb remount
Not running as root. Try "adb root" first.
这个没有权限情况。正常应该给出 remount successed
推送文件到手机sdcard
比如将补丁包patch_signed_7zip.apk推送到手机sdcard根目录:
aiyang:~ aiyang$ cd Desktop/demo/TinkerApp/app/build/outputs/tinkerPatch/debug/ //进入debug文件目录下
aiyang:debug aiyang$ adb push patch_signed_7zip.apk /mnt/sdcard/ //然后 adb push 讲apk推到手机根目录的sdcard下
patch_signed_7zip.apk: 1 file pushed. 13.5 MB/s (156379 bytes in 0.011s)
安装、卸载、运行APK(adb install、adb uninstall、am)
安装使用如下的命令:
adb install patch_signed_7zip.apk
在卸载应用程序时可以加上-k命令行参数保留数据和缓冲目录,只卸载应用程序。命令如下:
adb uninstall -k patch_signed_7zip
如果有多个模拟器、真机,需要 -s 命令行指定。
例如,下面的命令分别在模拟器、真机上安装、重新安装和卸载应用程序。
在emulator-5554模拟器上安装ebook.apkadb -s emulator-5554 install ebook.apk
在真机上安装ebook.apkadb -s HT9BYL904399 install ebook.apk
在emulator-5554模拟器上重新安装ebook.apkadb -s emulator-5554 install -r ebook.apk
在真机上重新安装ebook.apkadb -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
如果在模拟器、真机上运行程序,可以使用如下的命令直接运行程序。在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命令。将手机里文件拉取到电脑
C:\Users\Administrator>adb pull /mnt/sdcard/Test.apk C:\Users\Administrator\Desk
top\aa
查看手机sdcard所以内容
aiyang:/ aiyang$ adb shell //进入手机设备
HWBKL:/ $ cd /mnt/sdcard //进入根目录sdcard下
HWBKL:/mnt/sdcard $ ls //ls 查看内容列表
360 Mob amap patch_signed_7zip.apk
ANRSnap Movies at qmt
Alarms Music backup qt
Android Notifications backups setup
BaiduMap Pictures baidu sitemp
Browser Podcasts com.tencent.mobileqq tbs
DCIM QQBrowser daojia tbslog
Documents Ringtones delivery tencent
Download Sounds fanshe tinker
Huawei WLAN Direct image tmp
HuaweiSystem abc log wandoujia
MQ alipay msc websites
删除手机sdcard文件
从上面查看内容我们可以看见,被推送到手机的patch_signed_7zip.apk文件。如果此时已经手机设备根目录sdcard下即可操作如下删除:
127|HWBKL:/mnt/sdcard $ rm patch_signed_7zip.apk
如果不在手机设备根目录sdcard下,可以再走一遍查看:
aiyang:/ aiyang$ adb shell cd /mnt/sdcard
HWBKL:/mnt/sdcard $ ls
360 Download Pictures amap fanshe tbs
ANRSnap Huawei Podcasts at image tbslog
Alarms HuaweiSystem QQBrowser backup log tencent
Android MQ Ringtones backups msc tinker
BaiduMap Mob Sounds baidu qmt tmp
Browser Movies WLAN Direct com.tencent.mobileqq qt wandoujia
DCIM Music abc daojia setup websites
Documents Notifications alipay delivery sitemp
对比可见,我已经删除成功了。
创建文件夹和设置文件权限
adb shell mkdir path/foldername | 新建文件夹 |
HWBKL:/mnt/sdcard $ mkdir 361 //依然是在根目录sdcard下,(进入根目录方法上面有)
HWBKL:/mnt/sdcard $ ls //查看内容列表,发现多了361
360 Huawei Ringtones com.tencent.mobileqq sitemp
361 HuaweiSystem Sounds daojia tbs
ANRSnap MQ WLAN Direct delivery tbslog
Alarms Mob abc fanshe tencent
Android Movies alipay image tinker
BaiduMap Music amap log tmp
Browser Notifications at msc wandoujia
DCIM Pictures backup qmt websites
Documents Podcasts backups qt
Download QQBrowser baidu setup
查看文件内容
adb shell cat <file> | 查看文件内容 |
HWBKL:/mnt/sdcard $ cat 361
cat: 361: Is a directory
依然是在根目录sdcard下。结果很明白了。不多说上面了。