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

来源:互联网 发布:怎么提高网络延迟 编辑:程序博客网 时间:2024/05/02 04:16

       今天整理手机内存,华为荣耀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帮助:adbhelp
获取设备名称:adb shell cat /system/build.prop
获取序列号:adbget-serialno
查看连接计算机的设备:adb devices
重启:adb reboot
重启到bootloader,即刷机模式:adb reboot bootloader
重启到recovery,即恢复模式:adb reboot recovery
查看log:adb logcat
终止adb服务进程:adbkill-server -->kill与server之间无空格
重启adb服务进程:adbstart-server
获取机器MAC地址:adb shell cat /sys/class/net/wlan0/address
获取CPU序列号:adb shell cat /proc/cpuinfo
安装APK:adbinstall <apkfile> //比如:adbinstall baidu.apk
强制安装apk: adb -s 手机设备号 install -r -s 电脑路径.
保留数据和缓存文件,重新安装apk:adbinstall -r <apkfile> //比如:adbinstall -r baidu.apk
安装apk到sk卡:adb install -s <apkfile> // 比如:adb install -s baidu.apk
卸载apk:adbuninstall <package> //比如:adb uninstall com.baidu.search
卸载apk但保留数据和缓存文件:adbuninstall -k <package> //比如:adbuninstall -k com.baidu.search
启动应用:adb shell am start -n <package_name>/.<activity_class_name>
查看占用内存前6的app:adb shell top -m6
刷新一次内存信息,然后返回:adb shell top -n1
查询各进程内存使用情况:adb shell procrank
杀死一个进程:adb shellkill [pid]
查看指定进程状态:adbshellps-x[PID]
查看后台service信息:adb shell servicelist
查看当前内存占用: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 shellcd <folder>
重命名文件:adb shell renamepath/oldfilenamepath/newfilename
删除system/avi.apk:adb shell rm /system/avi.apk
删除文件夹及其下面所有文件:adb shell rm -r <folder>
移动文件:adb shell mv path/file newpath/file
设置文件权限:adb shellchmod777 /system/fonts/DroidSansFallback.ttf
查看文件内容:adb shell cat <file>
清楚log缓存:adb logcat -c
查看bug报告:adb bugreport
新建文件夹:adb shellmkdir 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下,不用打开此应用,会有崩溃日志)





0 0
原创粉丝点击