热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

安卓手机怎么开启debug模式,手机adb调试工具

手机改成debug模式小工具及adb脚本问题最近在用ddms调试的时候,需要将手机改成debug模式,然后就在网上找了点资料,不尽人意,东拼西凑,在看雪论坛中搞到了一个小工具。然后

手机改成debug模式小工具及adb脚本问题

最近在用ddms调试的时候,需要将手机改成debug模式,然后就在网上找了点资料,不尽人意,东拼西凑,在看雪论坛中搞到了一个小工具。然后要求弄成傻瓜式,就写了个脚本,发现普通终端命令有几个坑,这里就来记录一下。

DDMS调试没有apk进程信息

工作的时候需要用到ddms或者monitor对apk进程进行调试,使用模拟器的时候还好,但是当用真机进行调试的时候,发现很多时候并不能显示出apk进程的信息,如下图所示。

出现这种原因呢,有两个解决的方法,一种是修改apk,把它的xml文件的一个属性改成debug模式,这样就能在ddms上看到了,很多人在开发Android的时候,都会把这个属性开启,这样方便调试。当然,在开发之后到应用市场上架的时候,为了安全起见,很多开发人员也会把这个功能关闭掉的。所以有的时候这个路子并不是万能的,当我们需要调试别人的apk的时候(有的时候一定要真机调试),就不太好更改apk的这个属性,这个时候就需要第二种方法来解决这个问题。第二种方法就是把手机改成debug模式,这样所有的进程信息都显示出来了。怎么看手机是不是debug模式?在adb下,输入下面命令就可以查看到手机的属性,如果值为1则表示当前手机处于debug模式。

adb shellgetprop ro.debuggable 修改debug模式小工具

亲自试了几种工具和方法,最后在看雪论坛上这个贴子上找到了一个很好使的小工具。亲测有效,在下面的评论上有写如何使用,有需要的就自己去下载一下即可。使用工具后,用getprop查看手机属性,果然已经修改好了。

小tip:
1、手机在修改好debug属性后,有的时候需要重新拔插或重新启动ddms,才能显示出所有apk进程;
2、手机关机重启后,该debug性能失效,需要重新运行该工具;

Python编写终端命令脚本

因为要实现傻瓜式操作,所以写了一个python脚本,基本思想就是将终端中输入的各种命令封装一下,脚本的基本框架如下:

#!/usr/健康的紫菜/env python# -*- coding: utf-8 -*-import subprocessimport osimport sys#打印错误信息def printf_error_failed(message): failed = "\n\n================The shell is Failed!====================\n\n" print(failed) print("The reason is : " + message + "\n\n") exit(-1)#终端输入命令def execute_command(cmdstring): build = subprocess.Popen(cmdstring, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) (stdout, stderr) = build.communicate() build.wait() result = str(build.returncode) if result != "0": printf_error_failed("Error: the command " + cmdstring + " is failed!") return stdoutif __name__ == '__main__': print("======Begin to debug2phone!=======") #在这里输入你要实现的各种终端命令,多个终端命令用;符号隔开 execute_command("the shell you want ") print("======debug2phone is over!=======")

本来以前经常直接用这个脚本实现在终端中自动执行命令,结果这次在这里出现问题了。在使用这个修改debug的小工具中,需要输入adb shell命令,并需要进入root权限进行之后的操作(su),但是用python脚本执行的时候,它只能在adb shell命令执行完成并且返回一个结果之后,才能执行下一个命令的操作。那么问题就出来了,我们下一步的各种操作,并不是等到adb shell返回结果之后才执行的,而是进入adb shell中执行,因此这个脚本就失效了。

Python脚本实现adb等终端命令

查了一些资料,终于找到解决问题的方法了,很简单的操作。我们只需要将需要运行的终端命令,写在任意一个文件中(我用的是txt格式的文件),用回车分隔命令。然后在执行python的脚本的时候,使用链接文件的方式运行脚本即可。具体如下图所示:
这是需要运行的终端命令文件,phone.txt。

然后将上述的脚本稍微改一下,改成文件链接的形式,将之前保存好的phone.txt链接过去。

ok!完成!下次写脚本的时候可以尝试一下:-)


推荐阅读
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • 本文详细介绍了在Centos7上部署安装zabbix5.0的步骤和注意事项,包括准备工作、获取所需的yum源、关闭防火墙和SELINUX等。提供了一步一步的操作指南,帮助读者顺利完成安装过程。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
author-avatar
开心果娟娟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有