条件:手机必须被Root(不同机型root方法不一样,具体请百度)
Android端具体操作:
1.安装手机模拟终端();
终端模拟器介绍:http://blog.csdn.net/qq_25601345/article/details/54176372
2.打开终端模拟器,并输入以下命令:
Su//获得root权限
setprop service.adb.tcp.port 5555//设置adb服务端口号(adb默认连接的端口号)
Stop adbd
Start adbd//从新启动adb服务;
PC(电脑端)端具体操作:
1.启动DOS窗口(PC端命令输入框)
第一步:按下快捷键windows(Ctrl与ALt中间)+R快捷键,这时会弹出一个对话框;
第二步:在对话框中输入 cmd,然后回车,这是也会弹出一个对话框,即DOS窗口;
2.进行PC端与Android端通断测试:
第一步:在DOS窗口输入ping 172.18.44.74(ping + IP地址)
第二步:当收到相应IP的回复,即表示网络是通常;
3.进行PC的adb.exe所在的文件夹
第一步:在DOS窗口输入adb程序所在的盘(C盘或者D盘)
提示:直接在DOS窗口输入 D: 然后回车 就会进行D盘C:然后 回车 就会进入C盘
第二部:进入adb相应文件 提示:进入文件夹的DOS命令为cd+文件夹名称;
4.进行进行PC端与Android端的连接
adb connect +手机端IP地址 示例 D:\adb>adb connect 192.168.2.49
连接成功:会提示 connected to :192.168.2.49 5555
连接失败:unable to connect to :5555
提示连接失败的几种原因:
1. 网络没有联通;
2.PC端虚拟机正在运行,需要连接外部手机试(解决:停止虚拟机);
3.PC端与Android端同时采用Wify连接;(解决:PC端采用网线连接,Android端既可以wify 链接也可以网线连接);
4.同时连接两个设备的时候;
调试手机的几种方法:
普通APK的安装:
连接成功后,在DOS窗口输入:
adb install (apk在PC上的路径/)*.apk
提示:这是需要将安装包上传到手机中 故需要一段时间.
普通APK的卸载:
连接成功后,在DOS窗口输入:
adb uninstall apk的包名
提示:如何获得Android所有APK的包名(确定要卸载的包名);
adb shell pm list packages
系统级别的应用的安装(原理:将APK放到 system/app 文件夹下即可)
连接成功后,在DOS窗口输入:
第一步:上传APK;
adb push <local> <remote>
提示: <local> 为PC端要上传的文件或则文件夹;
<remote> 上传到Android端的具体位置;
示例:adb push D:\service.apk /sdcard/service.apk
push会覆盖Android端原有的service.apk
第二步:adb shell
进入手机交互
第三步 :su
获得系统权限
第四步:mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
设置文件system可以读写
第五步:cat /sdcardservice.apk > /system/app/sowe.shield.service.apk
将apk导入到/system/app/(系统APP文件夹)中;
第六步:chmod 777 /system/app/.service.apk
授予APK相应权限权限说明(鼠标点到蓝字处,右键->在新窗口打开即可)
第七步:mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system
设置文件system权限还原,只是可以读取;
第八步:reboot
从新启动APK将会自动被安装
系统级别的应用的删除
adb shell (进入模拟器自带的操作系统)
su(获得系统权限)
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system(设置文件system可以读写)
cd system/app (切换到系统gapk的安装目录)
//ls 先是文件夹中的文件
rm ***.apk (移除具体APK)
mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system
(设置文件system权限还原,只是可以读取;)
reboot(从新启动文件自动被删除)
启动应用
远程启动一个应用:命令
adb shell am start -n APP包名/APP包名+要启动的MainActivity
说明:APP包名:在清单文件中maifest的属性package="com.android.WebViewDemo"
注意:APP包名+要启动的MainActivity
在清单文件中我们会注册Acivity,具有<action android: name="android.intent.action.MAIN"/>
标签的即时要启动的activity;
在我们注册Activity的时候 android:name的属性会有两种方法
android:name=".WebActivity"
第一种是缩写:.+要注册的Activity
这种情况下APP包名+要启动的MainActivity的写法是
APP包名+android:name属性对应的字符串(即.WebActivity)
第二种是没有缩写的android:name的属性(已经具有包名)
android:name="com.android.WebViewDemo.WebActivity"
这种情况下APP包名+要启动的MainActivity的写法是
name属性对应的字符串(即com.android.WebViewDemo.WebActivity)
最后书写结果是一样的;
成功后DOS窗口提示会提示:
Starting: Intent {cmp=。。。。。。。。。。。。。。。。}
也可以在Dos窗口输入 Adb shell ps
即可看到当前运行的所有的APK
停止相应APK
adb shell am force-stop +包名
示例:
adb shell am force-stop com.android.WebViewDemo