Linux内核版本信息获取

转载 2015年12月12日 09:29:11

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

linux内核版本信息说明

inux有两种版本,一个是核心(kernel)版,一个是发行(distribution)版。核心版的序号由三部分数字构成,其形式为: major.minor.patchlevel 其中,major...

linux,apache,php,mysql常用的查看版本信息的方法

标签:linux版本信息phpapachemysql 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nan1hao.blog.5...
  • CHEGKN
  • CHEGKN
  • 2015年05月23日 01:46
  • 513

查看Linux版本信息命令

通常使用命令uname在Linux下面察看版本信息 -a或--all:显示全部的信息; -m或--machine:显示电脑类型; -n或-nodename:显示在网络上的主机名称; -r或--...

获取系统版本信息

  • 2016年10月28日 18:25
  • 8KB
  • 下载

获取DLL,Exe 版本信息程序

  • 2010年08月25日 15:45
  • 950KB
  • 下载

Linux查看glibc版本信息

1  centos(以centos 6.0为例): (1) 可通过rpm -qa | grep glibc查看系统目前安装了哪些和glibc有关的包: [root@Cluster ~]# rpm -...

如何查看Linux版本信息?

这里所谓的Linux版本信息,包括Linux内核版本信息和Linux系统版本信息。下面分别介绍 >>> (笔者在Ubuntu12.04中进行操作并截图如下) 一、查看Linux内核版本信息...

查看Linux系统的版本信息

Linux版本信息包括Linux内核版本信息和Linux发行版本信息两种。 查看Linux系统的内核版本信息 第一种:cat /proc/version  查看正在运行的内核版本。 第二种:u...

Linux - 查看系统版本信息

① 查看系统信息命令如下:uname -a示例如下:该命令解释如下:② 查看正在运行的内核版本命令如下:cat /proc/version示例如下:Linux version 3.10.0-693 ...
  • J080624
  • J080624
  • 2017年11月28日 17:52
  • 32
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux内核版本信息获取
举报原因:
原因补充:

(最多只允许输入30个字)