首页
学习
活动
专区
圈层
工具
发布

android 调用系统命令实现关机2017亲测有效

最近我想做一个简单的手机重启,结果在网上搜了好多代码一个也不管用,正在郁闷时候,看到这个代码试了下居然成功了,测试工具是android studio2.2..2,具体如下 系统reboot命令有两个功能...(我暂时知道的),关机跟重启,一开始以为它就只会用来重启的,下面用Java代码调用这个命令来实现关机和重启 [java] view plain copy public static int shutdown...() { int r = 0; try { Process process = Runtime.getRuntime().exec(new String[]...(new String[]{"su" , "-c" , "reboot -p"}); 换成exec(“su -c reboot -p”);,感觉系统忽略了-p参数,-c 后面跟的“reboot -p...(); r = -1; } Log.i("info", "time: "+r); return r; } } 注意我的手机已经

14610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用logcat让Android应用支持查看实时日志并输出至界面显示功能

    不使用USB线接Android设备连接电脑,也不用电脑上装Android studio和logcat工具, 如何查看应用的实时日志呢?方法还是有的。 先附图:看这功能是不是很赞?...后续继续探索新鲜的新功能。 运维的兄弟们可以松口气了,给你们减减压。 日志排查获取从此如此简单。甚至可以给手机互通,日志显示到你手机上也能。 这有什么用?方便现场运维人员快速的协助研发定位和找到问题。...看日志就是为了分析和定位问题的一种有效途径。 ? 且日志还是实时输出的,这样从应用的后门调起查看日志的窗口,就很方便的查看实时的日志输出啦 这功能是不是很赞?...; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText...= Runtime.getRuntime().exec(cmds); mReader = new BufferedReader(new InputStreamReader(exec.getInputStream

    4.1K30

    如何使用adb控制手机

    一、介绍 AndroidDebug Bridge 我们一般简称为adb,它是一个非常强大的命令行工具,通过adb工具,你能够与你的android设备进行通信。...使用adb命令是可以操控手机的,比如点击、滑动、输入等。在操控手机之前要先连接上手机,下面先来看下adb如何连接手机。...四、命令操控手机 输入 0-9其中一个数字(android手机地址就是adb devices显示的设备名称) adb -sshell input keyevent 7-16 1 返回桌面 adb...;可以写个android软件执行命令即可;需要注意的是: 1、操控自身app不需要root权限,一旦进入另一个app需要root权限的 2、命令有所改变,不需要 adb到shell这一串了,因为android...().exec("su"); // 获取输出流 OutputStream outputStream = process.getOutputStream

    8.6K30

    Linux--fork与wait

    fork与exec 在Linux中,都是通过fork与vfork系统调用来创建子进程,并且在fork完之后,通常会调用exec命令簇来替换代码段,执行不同的任务。...在调用wait时,父进程会被阻塞等待返回。...如果对于子进程的状态改变不是很关心的话,也可以注册SIGCHILD信号,当子进程状态改变时候,内核会发送该信号给父进程,让父进程接收子进程状态,可以在该信号处理函数中调用wait()来接收子进程状态,并且让子进程可以安心改变状态...等待子进程都结束 如果需要等待子进程都结束,则需要在fork完子进程后,为每个创建的子进程调用waitpid来等待所有子进程都结束 Android中的fork与wait Android中Runtime.getRuntime...,这样不会阻塞UI线程 创建完Process之后,可以通过getInputStream获取输入流,该输入流是通过Pipe传递过来的,可以将命令执行的结果进行输出 而后调用waitFor等待两个进程的执行结束

    3K30

    App安全测试—Android安全测试规范

    在源代码中搜索receiver,找到应用程序定义的在接收到消息时的各项参数以及各种处理逻辑。 查看业务逻辑寻找是否能够直接调用Broadcast组件,是否越权进行操作。...特别是PF_INET类型的网络socket,可以通过网络与Android应用通信,其原本用于linux环境下开放网络服务,由于缺乏对网络调用者身份或者本地调用者的安全检查机制,在实现不当的情况下,可以突破...在源码中查找使用Runtime.getRuntime().exec执行第三方程序的代码样例: try { Process p1 = Runtime.getRuntime().exec...().exec执行第三方程序后,且检测到调用逻辑中存在缺陷,则风险存在。...预期结果 合理使用Runtime.getRuntime().exec等函数,防止恶意调用。 整改建议 合理设置程序逻辑防止恶意调用,如果该行为是非期望行为,移除相关代码。

    6.2K42

    java实现脚本控制手机

    目录 欢迎关注微信公众号:数据科学与艺术 作者WX:superhe199 使用Java来实现脚本控制手机,您可以使用Android Debug Bridge(ADB)工具。...ADB是一个命令行工具,用于与Android设备进行通信和控制。 以下是使用Java调用ADB命令的一般步骤: 下载并安装ADB工具,确保其在系统路径中可用。...在Java代码中,使用Runtime类来运行命令行命令。..."; // 修改为要执行的ADB命令 Runtime.getRuntime().exec(command); 在的位置,您可以输入任何...编写Java代码来执行您想要的操作。您可以使用ADB命令来发送按键事件、模拟触摸屏幕、取消安装应用程序等。 使用ADB工具需要在设备上启用开发者选项,并且设备必须连接到计算机上。

    23310

    如何在 Java 中运行 shell 命令-Java快速入门教程

    概述 在本文中,我们将学习如何从 Java 应用程序执行 shell 命令。 首先,我们将使用 .exec() 方法,其由运行时类提供。然后,我们将了解ProcessBuilder,它更易于定制。...此外,在Windows上,shell通常被称为cmd.exe。相反,在Linux和macOS上,shell命令使用/bin/sh运行。...为了在这些不同的机器上兼容,我们可以以编程方式来处理:如果在Windows机器上附加cmd.exe,否则附加/bin/sh。...此外,.submit() 返回一个Future对象,我们用它来检查进程的结果。此外,请确保在返回的对象上调用 .get() 方法以等待计算完成。...注意:JDK 18 deprecates.exec(String command)来自运行时类。 4.1. 句柄管道 目前,无法使用 .exec() 处理管道。幸运的是,管道是外壳特征。

    89110

    【转】Java中Runtime.exec的一些事 

    0.2 Runtime上其他大部分的方法都是实例方法,也就是说每次进行运行时调用时都要用到getRuntime方法。 0.3 Runtime中的exit方法是退出当前JVM的方法,估计也是唯一的。...System类中的exit实际上也是通过调用Runtime.exit()来退出JVM的。...解决方法就是:执行完外部命令后我们要控制好Process的所有输入和输出(视情况而定),//在这个例子里边因为调用的是Javac,而他在没有参数的情况下会将提示信息输出到标准出错,所以在下面的程序中我们要对此进行处理...为了处理好外部命令大量输出的情况,你要确保你的程序处理好外部命令所需要的输入或者输出。...6 不良好的重定向命令输出 错误的认为exec方法会接受所有你在命令行或者Shell中输入并接受的字符串。

    3.4K20

    【Android 应用开发】Android 上实现非root的 Traceroute -- 非Root权限下移植可执行二进制文件 脚本文件

    传入到 sd 卡中, 注意, 上传到内存中无法实现; -- 上传到sd卡成功 : 使用 adb push 文件名 手机中的文件全路径名 命令; octopus@octopus:~/csdn$ adb...即 /data/data/包名/files/下; 修改文件权限 : 使用命令可以直接修改该目录下的权限, 注意这个操作是可以执行的; 执行busybox : 在代码中执行 ....: 调用 Context 上下文对象的 context.getAssets() 即可获取 AssetsManager对象; -- 获取输入流 : 调用 AssetsManager 的 open(String...); is.close(); 将文件写到内存中 : 调用上下文对象的 openFileOutput(绝对路径名, 权限), 即可创建一个文件的输出流; FileOutputStream output =...(); process = runtime.exec(cmd); 获取执行的命令行结果 :  InputStream is = process.getInputStream

    90120

    Java代码审计基础之反射

    注意: 参考了大佬的文章(参考文章在本文末尾 Referer 中),文章说 jdk1.4和 jdk1.5 处理调用的方法有区别 jdk1.4中,数组每个元素对应一个参数 jdk1.5中,整个数组是一个参数...().exec(“whoami”) 首先先看看 Runtime.getRuntime().exec 是什么东西,返回值类型是什么样的: 在手册上查看描述: ?...: InputStream 输入流,即数据流入,读入数据 OutputStream 输出流,即数据输出,写入数据 该代码读取上一步 Process 类型的数据流 input.read(a); 在上一步调用...以便后面打印输出 这就是一个简单的 Java 命令执行并回显结果。 我们可以看到主要调用了 Runtime.getRuntime().exec 那么我们要如何通过反射的方式进行调用呢?...第二种方式,不进行 Runtime实例化,直接通过getRuntime进行反射 注意点: 发现盲点:在本节一开头,调用系统命令函数 exec 的形式如下: Runtime.getRuntime().exec

    60540

    Android手机上用户操作模拟方法的研究与实现

    首先看下Monkey是如何实现用户模拟的。 Android2.3.7中的Monkey实现了三种途径向系统插入Input事件: 1....从网上可以找到较多的文档描述如何获取和模拟用户的操作,但是没有很好的普遍适用的代码实现。该方法主要是基于Android的输入输出子系统。先下Android的Input子系统是如何工作的。...Android系统本质上是Linux系统,在Linux中输入子系统是由输入子系统设备驱动层、输入子系统核心层(Input Core)和输入子系统事件处理层(Event Handler)组成。...在Android上我们可以通过命令adb shell cat /proc/bus/input/devices来查看,在笔者三星GT-i9300上的运行结果如图3所示。...,那我们就可以将touch操作封装成函数给各种操作调用了,在我的代码实现了一个函数,它负责根据系统支持的事件来发送对应的事件。

    5.1K60

    java执行和停止Logcat命令及多线程实现

    本人在使用UiAutomator的时候,想多写一个自动收集手机log的方法,使用runtime类执行了adb logcat的方法,但是一直找不到好的方法结束这个线程,网上说有kill pid的,但是这个操作起来略微麻烦了...后来自己想了一个办法,在去读input流的时候,多加一个参数来写一个stop的方法。下面是logcat的类代码,分享出来,供大家参考。...其中一个destroy的方法得直接去结束process线程,如果子线程在运行的时候,直接调用destroy方法,就会报上面的那个错误。这个是自己总结的,如有错误还请指正。...().exec(Common.ADB_PATH + cmd); } else { p = Runtime.getRuntime().exec("cmd /c " + cmd); }...可以自己在logcat类里面做一个循环也可以在使用logcat线程的时候做循环,我用的后者,因为我的其他线程也是写在测试脚本的循环当中。

    2K31

    爬虫结合自动化实战,帮助小姐姐刷抖音完全解放掉双手

    你是否为在吃饭时刷抖音,由于手机屏幕过大,导致手指滑动视频不方便而苦恼? 又或者是,冬天躺在被窝刷抖音,你是否为频繁伸出手去切换视频,而烦躁不安?...jsoup:1.13.1'     //JSON数据解析     implementation 'com.alibaba:fastjson:1.2.70' } 第 2 步,并新建一个无障碍服务,用于处理抖音页面变动的事件...().exec("adb shell input swipe 900 1600 300 1600");     } else     {           Log.d("xag", "找到复制按钮,执行点击操作...", "等待完成,准备滑到下一个视频"); //滑动到下一个视频 try {     Runtime.getRuntime().exec("adb shell input swipe 600 1200...重复上面的操作,即可以爬取视频时长,自动刷抖音短视频,完全解放掉双手 我已经将文中全部源码上传到后台,后台回复「 dyauto 」即可获得全部源码 如果你觉得文章还不错,请大家点赞、分享、留言下,因为这将是我持续输出更多优质文章的最强动力

    1.9K11
    领券