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 从本地复制文件到设备
adb pull 从设备复制文件到本地
adb shell ls 列出目录下的文件和文件夹
adb shell cd  进入文件夹
adb shell rm [-r] 删除文件(夹)
adb shell cat 查看文件内容
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.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

如果在模拟器、真机上运行程序,可以使用如下的命令直接运行程序。

在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 查看文件内容
HWBKL:/mnt/sdcard $ cat 361
cat: 361: Is a directory
依然是在根目录sdcard下。结果很明白了。不多说上面了。


你可能感兴趣的:(mac)