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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/302154.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

让Dapper在一个项目中支持多种库

如果想在一个项目中,用DapperPlus支持多种数据库该怎么做?在《让Dapper支持Mock》中我们定义了DapperPlus,可以基于这个类,实现两个子类:MySqlDapperPlus,MsSqlDapperPls,在这两个子类的构造中适…

一些积累

为什么80%的码农都做不了架构师?>>> 查看某文件属于哪个RPM包。 我一直使用的是ubuntu,用的是apt-get所以。。,答案是-qf,没有环境没法实验,也不想装rpm在我的ubuntu里。 run level 这个不同的linux发行版…

数据庞大繁杂,如何精简挖掘?

从数据中抽取信息从信息中挖掘知识随着大数据时代的到来,数据挖掘的重要性越发显著。可谓是兵马未至,数据先行。所谓数据挖掘,一般是指从大型数据库中将隐藏的预测信息抽取出来的过程,而更为精确的解释就是“从数据中挖掘知识”。…

xps13安装linux系统,[操作系统]Dell XPS 13 (9360)安装配置 ubuntu 16.04 实现 win10 Linux双系统...

[操作系统]Dell XPS 13 (9360)安装配置 ubuntu 16.04 实现 win10 Linux双系统0 2017-07-17 12:00:18博主今日投身于SLAM的研究事业,放弃了以往win10下各种IDE的开发环境,选择了在自己的xps13上装上ubuntu16.04,投身于更为方便的linux进行学习…

Magicodes.IE之总体教程

简介Magicodes.IE,导入导出通用库,支持Dto导入导出、模板导出、花式导出以及动态导出,支持Excel、Csv、Word、Pdf和Html。内容合集Magicodes.IE.AspNetCore之一行代码多格式导出Excel模板导出之动态导出 Magicodes.IE Excel合并行数据导入教程…

关于VC6.0 MSDEV.EXE-应用程序错误0x5003eaed指令引用的0x000...

2019独角兽企业重金招聘Python工程师标准>>> 错误现象:VC6.0中,点击add source file或是add header file,add file to project等菜单,将会出现MSDEV.EXE-应用程序错误,并引起VC6.0的自动关闭。 错误原因:可…

pixelbook安装linux系统,谷歌Pixelbook可以运行Fuchsia操作系统 正测试

【PConline资讯】早在2016年就有消息称,谷歌正在开发一款独立于Android和Chrome OS之外的操作系统 “Fuchsia”。尽管迄今为止谷歌根本没有详细说明这个操作系统,但最新文档指出,谷歌Pixelbook 笔记本可以运行Fuchsia系统。据报道&#xff0c…

AlphaGo Zero又上《Science》封面!谷歌的人工智能又干翻人类了!

全世界只有3.14 % 的人关注了数据与算法之美卢sir在回顾2018年的时候,发现居然遗漏了一个“知识点”——在2018年的最后一个月, AlphaGo Zero登上了世界顶级学术期刊《科学》杂志的封面。Google设计了AlphaGo(围棋机器人)的事早已…

【译】.NET 6 Preview 4 Released

.NET 6 Preview 4 Released我们很高兴地发布 .NET 6 Preview 4。现在,我们到 .NET 6 正式发布尚有一半。现在是再次浏览.NET 6 全部内容的好时机,就像第一篇预览文章一样。许多功能处于最终形式,而其他功能也将很快发布,因为已经为…

在终端(Terminal)中用颜色显示不同类型文件

2019独角兽企业重金招聘Python工程师标准>>> 对于从Unix/Linux平台转到Mac的同学来说,“终端”是经常要使用的一个工具。不过可能有很多人已经发现了,当我们使用ls命令来显示目录内容的时候,“终端”对于目录、可执行文件等特殊类…

马斯克要干翻人工智能,“神经蕾丝”能让每个人都能当钢铁侠

全世界只有3.14 % 的人关注了数据与算法之美爱因斯坦曾说过,“在一个崇高的目标支持下,不停地工作,即使慢,也一定会获得成功。”这不2019年刚到来,“硅谷钢铁侠”马斯克就定好了“小目标”了——“给我10年时间&#x…

都 2021 年了,竟然有人搞大数据时忽略 JSON 而去研究用 C# 把 XML 转换为 XML 的技术...

在大数据项目开发过程中,ETL(Extract-Transform-Load)是必不可少。即便目前 JSON 非常流行,开发人员也有必定会有对远古系统的挑战,而 XML 格式的数据源作为经典存在浑身上下散发着浓浓 old money 的味道。因为有 Newt…

linux c中动态申请二维数组,Linux C 编程详解第五篇:二维数组

二维数组 :存储类型 数据类型 数组名[行数][列数]列数不能够省略 , 行数可以省略数组元素的引用 : 数组名[行标][列标]练习 :1.找出二维数组中的最大值, 如果有多个最大值, 找出其位置以及数值.(不要排序).#include int main(int argc, const char *argv[]){int a[3][4] {{1,2…

js与Ajax实现浮动留言板(留言写入sqlserver数据库)

XXX.aspx页面&#xff1a; <script type"text/javascript" src"JScript/jquery.js"></script> <link rel"stylesheet" type"text/css" href"FastFeedBack/panel/jquery.panel.css"/> <link rel"s…

新一代来袭︱不只是舒适,简直是享受,Google公司用的腰靠,到底有什么秘密?...

之前小木推荐“德国MINICUTE人体工学腰垫”受到了大家一致的好评和争相购买。小木为什么推荐这一款原因是&#xff1a;据统计&#xff0c;我国腰椎病患者已经突破2亿人。30~40岁人群中&#xff0c;患有颈腰椎病的占比59.1%&#xff01;而且有着越来越年轻化的趋势&#xff0c;办…

微软放弃IE浏览器 应尽快完成国产化替代

不久前&#xff0c;微软决定在2022年6月15日彻底放弃IE浏览器&#xff0c;全线改用Microsoft Edge。微软官方表示&#xff0c;"我们宣布&#xff0c;Windows 10上的Internet Explorer的未来在Microsoft Edge中&#xff0c;Internet Explorer 11桌面应用程序将于2022年6月1…

各种流行的编程风格

2019独角兽企业重金招聘Python工程师标准>>> 在过去的N年中&#xff0c;我遇到了很多使用囧然不同风格的开发者&#xff0c;下面是我所知道的一些&#xff0c;你还知道其它的吗&#xff1f; 散弹枪编程 这种编程风格是一种开发者使用非常随意的方式对待代码。“嗯&a…

linux自动跑批,在linux中添加硬盘并在系统启动时自动挂载

前言最近搞Linux时&#xff0c;当初没有考虑完善&#xff0c;只分配了10GB的空间&#xff0c;启动mongodb时直接给我报了一个错误&#xff1a;可用空间太少&#xff0c;虽说加一个参数—smallfiles就可以解决问题&#xff0c;但这治标不治本。所以我参考Adding a New Disk Driv…

没有标题,配得上这款“俄罗斯方块”

在之前的文章时&#xff0c;马斯提到数学存在一种现象叫“梯次掉队”&#xff0c;原因在于孩子的数学思维地基没有打牢。&#xff08;传送门&#xff09;提到初中孩子需要空间想象能力时&#xff0c;很多父母疑惑为何需要&#xff1f;关于这点&#xff0c;小木给大家说明下&…

linux仿真速度快吗,Linux上安装使用最快的GPU加速的终端仿真器Alacritty

这个简单的教程展示了如何通过PPA在Ubuntu 20.04, Ubuntu 20.10, Linux Mint 20中安装最快的终端模拟器Alacritty。Alacritty是一个跨平台、GPU加速的终端模拟器&#xff0c;是现有最快的终端模拟器。可以在macOS、Linux、BSD和Windows上工作。它是一款专注于简单性和性能的免费…