日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Android获取Linux图像信息,Android系统信息获取 之十三:Linux内核版本信息获取

發布時間:2023/12/4 linux 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android获取Linux图像信息,Android系统信息获取 之十三:Linux内核版本信息获取 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android系統信息獲取 之十三:Linux內核版本信息獲取

Android系統是基于Linux的,各個Android版本對應的Linux版本不盡相同,我們這里不去追究各個Android對應的Linux版本是什么,而是通過工具或者使用代碼的方法去獲取我們使用的Android源碼或者我們的Android手機目前使用的Linux版本。

首先,使用adb工具我們能夠很快獲取Android手機(Android模擬器)的Linux內核版本。

用adb工具連接模擬器,查看內核版本信息,看看模擬器上跑的內核是不是我們剛才編譯出來的內核:

USER-NAME@MACHINE-NAME:~/Android$ adb shell

這時候如果是第一次運行 adb shell命令,會看到以下輸出,不用管它,再運行一次adb shell命令就可以了。

切換到proc目錄:

root@android:/ # cd proc

root@android:/proc # cat version

Linux version 3.0.8 (user@machine) (gcc version 4.4.3 (GCC) ) #1 SMP PREEMP

T Mon Mar 3 11:32:08 CST 2014

機器名user@machine;日期Mon Mar 3 11:32:08 CST 2014;Linux內核版本為Linux ersion 3.0.8

其次,在一些應用中我們有可能需要獲取Linux內核的版本信息,基于adb命令行的的獲取方式,我們知道Linux版本信息是通過Linux命令獲取的,那么該過程我們當然可以通過代碼來實現它。

/***

* 獲取Android Linux內核版本信息

*/

public void getLinuxKernalInfo() {

Process process = null;

String mLinuxKernal = null;

try {

process = Runtime.getRuntime().exec("cat /proc/version");

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// get the output line

InputStream outs = process.getInputStream();

InputStreamReader isrout = new InputStreamReader(outs);

BufferedReader brout = new BufferedReader(isrout, 8 * 1024);

String result = "";

String line;

// get the whole standard output string

try {

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

result += line;

// result += "\n";

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

if (result != "") {

String Keyword = "version ";

int index = result.indexOf(Keyword);

Log.v(TAG, "----"+result);

line = result.substring(index + Keyword.length());

index = line.indexOf(" ");

// tv01.setText(line.substring(0,index));

mLinuxKernal = line.substring(0, index);

Log.d(TAG, "----Linux Kernal is : " + mLinuxKernal);

}

}

除了上面的方法以外還可以通過給processbuilder傳入一個String數組,String數組有兩個String,前一個代表liunx系統的命令,后面一個代表要執行該命令的文件然后就是獲得該命令執行后所返回的字符串信息以流的形式再傳回來得到 result。

這個方法和上面的大同小異,只是使用的方法略微不同。

具體如下:

public String getLinuxKernalInfoEx() {

String result = "";

String line;

String[] cmd = new String[] { "/system/bin/cat", "/proc/version" };

String workdirectory = "/system/bin/";

try {

ProcessBuilder bulider = new ProcessBuilder(cmd);

bulider.directory(new File(workdirectory));

bulider.redirectErrorStream(true);

Process process = bulider.start();

InputStream in = process.getInputStream();

InputStreamReader isrout = new InputStreamReader(in);

BufferedReader brout = new BufferedReader(isrout, 8 * 1024);

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

result += line;

// result += "\n";

}

in.close();

} catch (Exception e) {

e.printStackTrace();

}

Log.i(TAG,"----Linux Kernal is :"+result);

return result;

}

在開發中可酌情使用。

----------------------------------

歡迎瀏覽、技術交流

請尊重勞動成果

轉載請注明出處,謝謝!

http://blog.csdn.net/netwalk/article/details/20928221

總結

以上是生活随笔為你收集整理的Android获取Linux图像信息,Android系统信息获取 之十三:Linux内核版本信息获取的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。