adb 连接设备的常用命令和DOS常用命令
2016-10-21 09:32
239 查看
做项目的时候,由于工作的特殊性,经常会到adb命令,今天就总结一下常用命令吧:
有个大前提就是设备已经root了。adb是什么?
adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。
adb有什么用?
借助adb工具,我们可以管理设备或手机模拟器的状态。还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。其实简而言说,adb就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作
1.连接设备
adb connect 192.168.22.232
2.断开连接的设备
adb disconnect
3.查看系统应用
adb shell ls system/app
4.查看设备上第三方应用
adb shell ls data/app
5.获取系统权限
adb remount
6.获取系统权限
adb shell chmod 777 system/app
7.重启设备
adb reboot
8.把应用push到系统中
adb push xxx.apk system/app
9.删除系统应用
adb shell rm system/app/xxx.apk
10.查看电脑中有几个adb程序
where adb
11.发布端口: 你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:
adb forward tcp:5555 tcp:8000
12.修改adb的端口号:
在系统变量中,新建一个变量:ANDROID_ADB_SERVER_PORT,然后设置端口号即可,最后要重新开启一个dos窗口。不要与系统其它端口冲突。
如图:
当手机安装完成apk之后,可以通过如下方法启动apk:(pkg:包名)
1.通过命令 adb shell am start -n pkg/.MainActivity
2.通过 adb shell monkey -p pkg -v 1(优先)
3.通过 adb shell am start -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -n pkg/.MainActivity
adb 对数据库的操作:
清空本地数据库:adb shell rm -r data/data/pkg/databases
查看本地数据库:adb shell ls data/data/pkg/databases
拉取数据库:adb pull data/data/pkg/databases/表名
强制关闭一个应用程序:
adb shell am force-stop pkg
端口被占用,查看是谁在占用端口,并且kill掉该进程的方法:
方式一
5037为adb默认端口,若5037端口被占用,
查看占用端口的进程PID
C:\Users\wwx229495>netstat -aon|findstr 5037
TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 3676
通过PID查看所有进程
C:\Users\wwx229495>tasklist /fi “PID eq 3676”
映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
svchost.exe 3676 Services 0 13,800 K
杀死占用端口的进程
C:\Users\wwx229495>taskkill /pid 3676 /f
成功: 已终止 PID 为 3676 的进程。
手机终端连接命令:(是在手机端输入的)
su
setprop service.adb.tcp.port -1
stop adbd
start adbd
如果没有root怎么办呢?不过还是有办法的!
C:\Users\zhyantai>adb shell shell@X3:/ $ run-as com.example.daemon(你的包名) shell@X3:/data/data/com.example.daemon $ ls cache code_cache program_cache shared_prefs shell@X3:/data/data/com.example.daemon $ cd shared_prefs //将special_config(你的文件名)文件拷贝到/mnt/sdcard/目录下 shell@X3:/data/data/com.example.daemon/shared_prefs $ cat special_config.xml > /mnt/sdcard/special_config.xml shell@X3:/data/data/com.example.daemon/shared_prefs $ //最后,从sdcard目录下,pull文件。注意,去该目录下,并不能看到special_config该文件。但是它是存在的。 C:\Users\zhyantai>adb pull /mnt/sdcard/special_config.xml [100%] /mnt/sdcard/special_config.xml
常用DOS命令:
cd
cd 目录名:进入特定的目录。如果看到有个目录显示为:abcdef ghi 就
输入:cd abcdef.ghi进入该目录。
cd\ 退回到根目录。
cd..退回到上一级目录。
notepad——–打开记事本
代码中,重启你的设备
前提你的设备是要获取 root 权限的哦!方法一:
public class MainActivity extends AppCompatActivity { private static Timer timer1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { timer(3000); } }); } //used to alert UI of install done and then reboot., not perform it until timeout. //in order to have enough time for the transfer. public static void timer(int delaytime) { timer1 = new Timer(); timer1.schedule(new TimerTask() { @Override public void run() { System.out.println("now, reboot"); execShell("reboot"); } }, delaytime); } //关键方法 public static void execShell(String cmd) { try { //权限设置 Process p = Runtime.getRuntime().exec("su"); //获取输出流 OutputStream outputStream = p.getOutputStream(); DataOutputStream dataOutputStream = new DataOutputStream(outputStream); //将命令写入 dataOutputStream.writeBytes(cmd); //提交命令 dataOutputStream.flush(); //关闭流操作 dataOutputStream.close(); outputStream.close(); } catch (Throwable t) { t.printStackTrace(); } }
方法二:
关键代码如下:
public static void reBootByRuntime() { try { Log.v("reBootByRuntime", "root Runtime->reboot"); Process proc = Runtime.getRuntime().exec(new String[]{"su", "-c", "reboot "}); //重启 proc.waitFor(); } catch (Exception ex) { ex.printStackTrace(); } }
以上两种方法,都是能让你的设备重启的!如果觉得对你有点用的话,就给点个赞吧,,
相关文章推荐
- 通过adb命令连接特定的设备
- 当多个手机同时连接电脑,adb 命令中如何进入指定设备
- 当多个手机同时连接电脑,adb 命令中如何进入指定设备
- adb常用命令:adb显示设备、杀死进程等等
- 连接天天模拟器和adb常用命令
- Android开发中使用dos命令连接外接设备device运行android项目
- 当多个手机同时连接电脑,adb 命令中如何进入指定设备
- adb 命令连接指定设备
- adb命令连接指定设备
- 《Android-查看手机内CPU手机型号设备信息等以及adb常用命令》---记录几个命令
- 千个常用DOS命令【转贴】
- dos常用命令
- DOS下常用网络相关命令解释
- MYSQL常用命令(一) 连接MYSQL:
- 常用DOS网络命令
- DOS常用命令
- DOS下常用网络相关命令解释(华为培训资料)
- 千个常用DOS命令
- dos常用命令