控制台ADB 命令安装apk到手机sdcard及安装qq过程中问题:: to '/sdcard/tmp/': Is a directory解决

       今天整理手机内存,华为荣耀7i, 16G+sd扩展, 已经升级到了android版本6.0.1, 放入sdcard之后,软件安装还有很多在手机内存中,16G的机身内存,已经不够用了,于是决定将软件搬家到sd卡中, 搜了半天手机管家助手之类的,终于在google play 下载了个 app2sd 软件(评分最高,下载量最高的),结果有个软件搬家功能, 点了却提示:您的手机不支持此功能!! 我凑,没办法了, 只能把那些大软件,手动卸载重装吧.

先在电脑上下载好了手机上的软件, 然后卸载手机软件, 打开电脑cmd 命令行, 

安装命令: adb install -s 文件在电脑的路径(多设备命令见下方总结).

别的软件基本都没问题,包括微信, 支付宝等等,但是!!! 到QQ这里就出坑了, 提示错误:  to '/sdcard/tmp/': Is a directory, 我擦,估计是把apk拷贝到手机中的时候,将apk文件拷贝成了文件夹, 形成原因没找到, 不过既然是拷贝过程中报错, 那我就换一种安装方式,我把apk先拷贝进手机中, 然后调用安装命令,装到sk卡中, 当然过程也撞了点坑, 不是直接调用adb install, 而是使用android提供的packagemanager,  进行安装, 最后成功,安装命令如下: 

先将apk文件放到手机: adb push 路径\QQ.apk sdcard/QQ.apk

然后安装apk : adb shell pm install -s /sdcard/QQ.apk

如果你同时包含多台设备,及提升问题:

error: more than one device/emulator
adb: error: connect failed: more than one device/emulator
- waiting for device -
error: more than one device/emulator

可以选择指定哪个设备,去安装操作,

查询都有什么设备: adb devices

选择你要安装的设备号,复制设备号,

然后指定设备安装:  adb -s 你的手机设备号 shell pm install -s /sdcard/QQ.apk


一些其他的 pm 命令:

pm [list|path|install|uninstall]  
pm list packages [-f] [-d] [-e] [-u] [FILTER]  
pm list permission-groups  
pm list permissions [-g] [-f] [-d] [-u] [GROUP]  
pm list instrumentation [-f] [TARGET-PACKAGE]  
pm list features  
pm list libraries  
pm path PACKAGE  
pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH  
pm uninstall [-k] PACKAGE  
pm clear PACKAGE  
pm enable PACKAGE_OR_COMPONENT  
pm disable PACKAGE_OR_COMPONENT  
pm setInstallLocation [0/auto] [1/internal] [2/external]
....其他....

总结的一些其他 ADB 命令: 

adb命令:
    查看端口被谁占用:    netstat -ano | find "5037"
      打印log至当前时间: adb bugreport > main.log
     切换至Linux环境下 : adb shell
或 : adb -s 设备号 shell
例如:shell后 : cat /proc/cpuinfo -->查看cpu信息
: ls -l -->查看根目录下的所有文件
: rm *.txt -->删除该目录下所有的txt
: logcat -->查看log,eclipse有问题,查看用
: df /sdcard -->查看sdcard空间情况:总,用,余,
:cd /data/data/包名pre*
ls -l -->这两步为预览列表,都有什么文件,权限.
: chmod 777 ./文件.扩展名 -->当前目录下,修改文件权限(7为满权限).
: sqlite3 (手机的)数据库表名 -->打开数据库,
然后 通过 .命令 操作,或者输入sql语句, 用 ; 结束.
例如 .table -->查询都有什么表
.mode html -->以xml的形式,显示表字段
select * from 表名 ;
查看设备cpu和内存占用情况: adb shell top
查看进程列表: adb shell ps
查看wifi密码: adb shell cat /data/misc/wifi/ *.conf
查看adb帮助: adb help
获取设备名称: adb shell cat / system /build.prop
获取序列号: adb get -serialno
查看连接计算机的设备: adb devices
重启: adb reboot
重启到bootloader,即刷机模式: adb reboot bootloader
重启到recovery,即恢复模式: adb reboot recovery
查看log: adb logcat
终止adb服务进程: adb kill - server -->kill与server之间无空格
重启adb服务进程: adb start - server
获取机器MAC地址: adb shell cat /sys/ class / net / wlan0 / address
获取CPU序列号: adb shell cat /proc/cpuinfo
安装APK: adb install //比如:adb install baidu.apk
强制安装apk: adb -s 手机设备号 install -r -s 电脑路径.
保留数据和缓存文件,重新安装apk: adb install -r //比如:adb install -r baidu.apk
安装apk到sk卡: adb install -s // 比如:adb install -s baidu.apk
卸载apk: adb uninstall < package > //比如:adb uninstall com.baidu. search
卸载apk但保留数据和缓存文件: adb uninstall - k < package > //比如:adb uninstall - k com.baidu. search
启动应用: adb shell am start -n < package_name >/.< activity_class_name >
查看占用内存前6的app: adb shell top -m 6
刷新一次内存信息,然后返回: adb shell top -n 1
查询各进程内存使用情况: adb shell procrank
杀死一个进程: adb shell kill [pid]
查看指定进程状态: adb shell ps -x [PID]
查看后台service信息: adb shell service list
查看当前内存占用: adb shell cat /proc/meminfo
查看io内存分区: adb shell cat /proc/iomem
将system分区重新挂载为可读写分区: adb remount
从本地复制文件到设备: adb push < local > < remote >
从设备复制文件到本地: adb pull < remote > < local >
列出目录下的文件和文件夹,等同dos的dir命令: adb shell ls
进入文件夹,等同dos的cd命名: adb shell cd
重命名文件: adb shell rename path /oldfilename path /newfilename
删除system/avi.apk: adb shell rm / system /avi.apk
删除文件夹及其下面所有文件: adb shell rm -r < folder >
移动文件: adb shell mv path/file newpath/file
设置文件权限: adb shell chmod 777 / system /fonts/DroidSansFallback.ttf
查看文件内容: adb shell cat < file >
清楚log缓存: adb logcat -c
查看bug报告: adb bugreport
新建文件夹: adb shell mkdir path/foldelname
复制文件到模拟器:adb push xxxx.txt /sdcard/books/yyyy.txt(后者yyyy为中文,会乱码)
链接夜神模拟器: (安装目录下)nox_adb.exe connect 127.0.0.1:62001
查看手机cpu温度 : 先到shell下, cat /sys/class/thermal/thermal_zonex/temp -->不一定是 _zonex,可能是0-12某个.
查看连接设备: adb devices
电脑文件放到手机: adb -s 设备号 push (路径)xx /手机路径/xx
手机文件拷贝到电脑: adb -s 设备号 pull /手机路径/xx (电脑路径)xx
安装apk到手机: adb -s 设备号 install (电脑路径)xx
强制安装apk到手机: adb -s 设备号 install -r (电脑路径)xx -->即使已经存在了,也可以重新安装.
强制安装apk到手机: adb -s 设备号 install -r -f (电脑路径)xx -->安装到闪存(/data/data/) (软件搬家)
强制安装apk到手机: adb -s 设备号 install -r -s (电脑路径)xx -->安装到sd卡(/sdcard/) (软件搬家)
卸载手机apk : adb -s 设备号 uninstall 包名packagename
简单测试: 先进shell --> monkey 500 (在手机狂点500下) 百度云测 -->传言可选2000款手机测试.
monkey -p (包名)xxx 500 (在指定应用,狂点500下,不用打开此应用,会有崩溃日志)





你可能感兴趣的:(app,开发,调试,Android,控制台,adb,pm命令)