哈尔滨网站改版,网站建设项目确认书,淘宝网站设计模板下载,网页设计需要什么专业Android系统信息获取 之十三#xff1a;Linux内核版本信息获取Android系统是基于Linux的#xff0c;各个Android版本对应的Linux版本不尽相同#xff0c;我们这里不去追究各个Android对应的Linux版本是什么#xff0c;而是通过工具或者使用代码的方法去获取我们使用的Andro…Android系统信息获取 之十三Linux内核版本信息获取Android系统是基于Linux的各个Android版本对应的Linux版本不尽相同我们这里不去追究各个Android对应的Linux版本是什么而是通过工具或者使用代码的方法去获取我们使用的Android源码或者我们的Android手机目前使用的Linux版本。首先使用adb工具我们能够很快获取Android手机(Android模拟器)的Linux内核版本。用adb工具连接模拟器查看内核版本信息看看模拟器上跑的内核是不是我们刚才编译出来的内核USER-NAMEMACHINE-NAME:~/Android$ adb shell这时候如果是第一次运行 adb shell命令会看到以下输出不用管它再运行一次adb shell命令就可以了。切换到proc目录rootandroid:/ # cd procrootandroid:/proc # cat versionLinux version 3.0.8 (usermachine) (gcc version 4.4.3 (GCC) ) #1 SMP PREEMPT Mon Mar 3 11:32:08 CST 2014机器名usermachine;日期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 blocke.printStackTrace();}// get the output lineInputStream outs process.getInputStream();InputStreamReader isrout new InputStreamReader(outs);BufferedReader brout new BufferedReader(isrout, 8 * 1024);String result ;String line;// get the whole standard output stringtry {while ((line brout.readLine()) ! null) {result line;// result \n;}} catch (IOException e) {// TODO Auto-generated catch blocke.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