android 测试设备以太网口的黄绿灯

需求:测试android 设备以太网口的黄灯和绿灯是否正常

                        ThreadUtils.runOnSubThread(new Runnable() {

                            @Override

                            public void run() {

                                Log.d("coco","test network 1000m start.");

                                LinuxCommandRunner.exec("su");

                                LinuxCommandRunner.exec("ethtool -s eth0 speed 1000 duplex full");

                                Log.d("coco","test network 1000m end.");

                            }

                        });

 ThreadUtils 就是个线程池工具,直接new Thread也可以。

LinuxCommandRunner就是执行linux指令的工具类。

ThreadUtils.java

package com.xxxxx.xxxxx;

import android.os.Handler;

import android.os.Looper;

import java.util.concurrent.Executor;

import java.util.concurrent.Executors;

public class ThreadUtils {

    private static final Handler sHandler = new Handler(Looper.getMainLooper());

    private static final Executor sExecutor = Executors.newSingleThreadExecutor();

    public static void runOnSubThread(Runnable runnable){

        sExecutor.execute(runnable);

    }

    public static void runOnUIThread(Runnable runnable){

        sHandler.post(runnable);

    }

    public static void shutdown(){

        sExecutor.shutdown();

    }

}

LinuxCommandRunner.java

package com.rockchip.devicetest.utils;

import android.util.Log;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

public class LinuxCommandRunner {

    private static final String TAG = LinuxCommandRunner.class.getSimpleName();

    public static String runCommand(String[] args) {

        // 要执行的Linux指令

        String linuxCommand = "timeout 0.5s top";

        try {

            // 执行Linux指令

            Process process = Runtime.getRuntime().exec(linuxCommand);

            // 读取Linux命令的输出

            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));

            String line;

            StringBuilder output = new StringBuilder();

            while ((line = reader.readLine()) != null) {

                output.append(line).append("\n");

            }

            // 打印执行结果

            Log.d(TAG,output.toString());

            // 检查执行结果

            int exitCode = process.waitFor();

            if (exitCode == 0) {

                Log.d(TAG,"Linux命令执行成功");

            } else {

                Log.d(TAG,"Linux命令执行失败");

            }

            return output.toString();

        } catch (IOException | InterruptedException e) {

            e.printStackTrace();

        }

        return null;

    }

    public static void exec(String command){

        try {

            Runtime.getRuntime().exec(new String[]{"sh","-c",command});

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

}

猜你喜欢

转载自blog.csdn.net/MilesMatheson/article/details/132045933
今日推荐