`
何先生
  • 浏览: 25398 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

获取系统版本内核版本信息

阅读更多



private static final String LOG_TAG = "DeviceInfoSettings";
	private static final String FILENAME_PROC_VERSION = "/proc/version";
	private String readLine(String filename) throws IOException {
		BufferedReader reader = new BufferedReader(new FileReader(filename), 256);
		try {
			return reader.readLine();
		} finally {
			reader.close();
		}
	}
	//内核版本
	private String getFormattedKernelVersion() {
		String procVersionStr;
		try {
			procVersionStr = readLine(FILENAME_PROC_VERSION);

			final String PROC_VERSION_REGEX =
					"\\w+\\s+" + /* ignore: Linux */
					"\\w+\\s+" + /* ignore: version */
					"([^\\s]+)\\s+" + /* group 1: 2.6.22-omap1 */
					"\\(([^\\s@]+(?:@[^\\s.]+)?)[^)]*\\)\\s+" + /* group 2: (xxxxxx@xxxxx.constant) */
					"\\((?:[^(]*\\([^)]*\\))?[^)]*\\)\\s+" + /* ignore: (gcc ..) */
					"([^\\s]+)\\s+" + /* group 3: #26 */
					"(?:PREEMPT\\s+)?" + /* ignore: PREEMPT (optional) */
					"(.+)"; /* group 4: date */

			Pattern p = Pattern.compile(PROC_VERSION_REGEX);
			Matcher m = p.matcher(procVersionStr);

			if (!m.matches()) {
				Log.e(LOG_TAG, "Regex did not match on /proc/version: " + procVersionStr);
				return "Unavailable";
			} else if (m.groupCount() < 4) {
				Log.e(LOG_TAG, "Regex match on /proc/version only returned " + m.groupCount()
						+ " groups");
				return "Unavailable";
			} else {
				return (new StringBuilder(m.group(1)).append("\n").append(
						m.group(2)).append(" ").append(m.group(3)).append("\n")
						.append(m.group(4))).toString();
			}
		} catch (IOException e) {
			Log.e(LOG_TAG,
					"IO Exception when getting kernel version for Device Info screen",
					e);

			return "Unavailable";
		}
	}
	public void showIntroduceDialog(){ 
		AlertDialog.Builder builder = new AlertDialog.Builder(this); 
		builder.setTitle("系统信息"); 
		StringBuilder sb = new StringBuilder(); 
		sb.append("SDK版本信息:"+Build.VERSION.SDK+"\n\n"); 
		sb.append("Android版本信息:"+android.os.Build.VERSION.RELEASE+"\n\n"); 
		sb.append("内核版本信息:"+getFormattedKernelVersion()+"\n\n");
		builder.setMessage(sb.toString()); 
		builder.setNegativeButton("确定", null); 
		builder.create().show(); 
	} 
  • 大小: 43.4 KB
分享到:
评论

相关推荐

    Sysinfo 是一个提供 Linux 操作系统/内核/硬件系统信息的 Go 库_GO_代码_相关文件_下载

    Package sysinfo 是一个提供 Linux 操作系统/内核/硬件系统信息的 Go 库。它完全独立,不依赖主机系统,不执行外部程序,甚至不导入其他 Go 库。 我找不到任何可以提供我需要的数据/功能集的独立库。于是又一个...

    安卓获取手机系统内核wifi的mac地址等信息

    安卓获取系统的信息,安卓系统版本号,内核版本号,手机型号,wifiMac地址,蓝牙mac地址等

    详解Android获取系统内核版本的方法与实现代码

    Android获取系统内核版本的方法  这里主要实现获取Android Linux 内核的版本号,网上关于这类文章不是很多,这里记录下,希望能帮助到大家, 实现代码: public static String getKernelVersion() { String ...

    linux下用c读取cpu、内核等信息

    一个小实验,用于linux下用c语言进行编写一小段代码,来读取cpu、内核等信息

    Linux内核信息获取方法.pdf

    Linux内核信息获取方法.pdf

    自动获取服务器系统信息脚本:(操作系统、系统内核、系统架构、CPU型号、CPU核数、显卡型号、内存等等)

    3、系统内核 4、系统架构 5、CPU型号 6、CPU核数 7、显卡型号 8、显卡显存 9、总内存 10、jdk版本 11、mysql 版本 12、redis 版本 13、python 版本 14、GCC 版本 15、CUDA 版本 后续有什么可以继续加。大家也可以...

    JSP获取客户端IP地址浏览器版本操作系统.pdf

    JSP获取客户端IP地址浏览器版本操作系统.pdf

    获取操作系统版本信息的VC源代码

    很好的代码,可以有效的利用,下载就可以用。

    linux 内核移植和根文件系统的制作

    实际上,这些内核版本很多时候并不是为一些流 行的嵌入式linux系统开发的,也很少运行于这些嵌入式linux系统上,这个站点上的内核首先确保的是在Intel X86体系结构上可以正常运行,它是基于X86处理器的内核,如对 ...

    精通linux系统内核

    本书对 Linux 早期操作系统内核(v0.11)全部代码文件进行了详细全面的注释和说明,旨在使读者能够在尽量短的时间 内对 Linux 的工作机理获得全面而深刻的理解,为进一步学习和研究 Linux 系统打下坚实的基础。虽然所...

    linux 0.11 内核源码 - 免费下载

    作为一个基于UNIX的操作系统内核,它的源代码包含了核心代码和一些驱动程序。采用开源开发模式的Linux 0.11内核源代码被广泛研究和修改。在嵌入式设备、服务器和个人计算机等领域,Linux 0.11内核得到了广泛应用。 ...

    Linux操作系统的内核编译内幕详解

     Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/linux下找到,大部分应用软件也都是遵循GPL而设计的,你都可以获取相应的源程序代码。 全世界任何一个软件工程师都可以将自己认为...

    按需对Linux系统内核进行定制和修改

    也许有用户会认为在自己使用Linux的过程中没有碰到到任何问题,Linux确实象人们所宣 传的那样“永远不会崩溃”,因此完全没有必要冒着风险对系统内核进行的改动。其实,对Linux系统内核进行定制和修改并不向很多人...

    linux内核修改,监控系统所有读写操作

    Linux内核修改,通过修改linux内核可以对系统的所有读写操作 &lt;br&gt;进行监控,通过对这些读写操作的监控,可以获取系统中所有读 &lt;br&gt;写操作的详细信息。这种做法也叫做“加塞子”,通过“加塞子 &lt;br&gt;”可以...

    Linux内核完全剖析基于0.11内核》--赵炯

    本书对早期的Linux操作系统内核(v0.11)全部源代码文件进行了详细的注释和 说明,旨在让读者能够在短时间内对Linux的工作机理获得全面而深刻的理解,为进一步学习和研究Linux系统打下坚实的基础。书中首先介绍了 ...

    底层工作者手册之嵌入式操作系统内核3(wanlix全套合集)

    本手册记录了我从对操作系统内核不了解到写出操作系统内核的过程,这样的一个过程对你来说应该也是一个最好的学习过程。 如果你有一定的C语言基础,并且对硬件也有稍微的了解,那么我相信你一定会看明白本手册!也...

    底层工作者手册之嵌入式操作系统内核4.4

    本手册记录了我从对操作系统内核不了解到写出操作系统内核的过程,这样的一个过程对你来说应该也是一个最好的学习过程。 如果你有一定的C语言基础,并且对硬件也有稍微的了解,那么我相信你一定会看明白本手册!也...

    Linux 内核完全注释

    本书对 Linux 早期操作系统内核(v0.11)全部代码文件进行了详细全面的注释和说明,旨在使读者能够在尽量短的时间 内对Linux 的工作机理获得全面而深刻的理解,为进一步学习和研究Linux 系统打下坚实的基础。虽然所...

    底层工作者手册之嵌入式操作系统内核3.3

    本手册记录了我从对操作系统内核不了解到写出操作系统内核的过程,这样的一个过程对你来说应该也是一个最好的学习过程。 如果你有一定的C语言基础,并且对硬件也有稍微的了解,那么我相信你一定会看明白本手册!也...

Global site tag (gtag.js) - Google Analytics