Android テスト デバイスのイーサネット ポートの黄色と緑色のライト

要件: Android デバイスのイーサネット ポートの黄色と緑色のライトが正常かどうかをテストします。

                        ThreadUtils.runOnSubThread(new Runnable() {

                            @オーバーライド

                            public void run() {

                                Log.d("ココ","テストネットワーク 1000m 開始。");

                                LinuxCommandRunner.exec("su");

                                LinuxCommandRunner.exec("ethtool -s eth0 速度 1000 二重完全");

                                Log.d("ココ","テストネットワーク 1000m 終了。");

                            }

                        });

 ThreadUtils はスレッド プール ツールであり、新しい Thread を直接使用することもできます。

LinuxCommandRunner は、Linux 命令を実行するためのツール クラスです。

ThreadUtils.java

パッケージcom.xxxxx.xxxxx;

android.os.Handlerをインポートします。

android.os.Looperをインポートします。

インポート java.util.concurrent.Executor;

java.util.concurrent.Executorsをインポートします。

パブリック クラス ThreadUtils {

    プライベート静的最終ハンドラー sHandler = new Handler(Looper.getMainLooper());

    プライベート静的最終エグゼキュータ sExecutor = Executors.newSingleThreadExecutor();

    public static void runOnSubThread(Runnable runnable){

        sExecutor.execute(実行可能);

    }

    public static void runOnUIThread(Runnable runnable){

        sHandler.post(実行可能);

    }

    public static void shutdown(){

        sExecutor.shutdown();

    }

}

LinuxCommandRunner.java

パッケージ com.rockchip.devicetest.utils;

android.util.Log をインポートします。

java.io.BufferedReaderをインポートします。

インポート java.io.IOException;

インポートjava.io.InputStreamReader;

パブリック クラス LinuxCommandRunner {

    プライベート静的最終文字列 TAG = LinuxCommandRunner.class.getSimpleName();

    public static String runCommand(String[] args) {

        //実行するLinuxコマンド

        文字列 linuxCommand = "タイムアウト 0.5 秒";

        試す {

            // Linux 命令を実行する

            プロセス process = Runtime.getRuntime().exec(linuxCommand);

            // Linux コマンドの出力を読み取ります。

            BufferedReader リーダー = new BufferedReader(new InputStreamReader(process.getInputStream()));

            文字列行;

            StringBuilder 出力 = new StringBuilder();

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

                出力.append(line).append("\n");

            }

            //実行結果を出力する

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

            // 実行結果を確認する

            int exitCode = process.waitFor();

            if (exitCode == 0) {

                Log.d(TAG,"Linux コマンドが正常に実行されました");

            } それ以外 {

                Log.d(TAG,"Linux コマンドの実行に失敗しました");

            }

            出力を返します。toString();

        catch (IOException | InterruptedException e) {

            e.printStackTrace();

        }

        null を返します。

    }

    public static void exec(文字列コマンド){

        試す {

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

        } キャッチ (IOException e) {

            e.printStackTrace();

        }

    }

}

 

おすすめ

転載: blog.csdn.net/MilesMatheson/article/details/132045933