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内核版本信息获取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 家用照片打印利器家用相片打印
- 下一篇: 朋友在我这里买了一台电脑说我坑朋友在我这