`

android系统信息,cpu、内存、电池等

 
阅读更多

http://vaero.blog.51cto.com/4350852/778139

 

package com.lenovo.cpuusage;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class CPUUsage {
	// top命令
	public static final String[] CMD = { "top -b -n 1" };
	public static final String[] TOP = { "/system/bin/top", "-n", "1" };
	public static final String[] TOP_PC = { "top", "-n", "1" };
	
	public static final int count = 0;
	
	public static void main(String[] args) {
		 String test = run(CMD, "firefox-bin        ");
		 System.out.println(test);
	}

	// 现在执行top -n 1,我们只需要第二行(用第二行求得CPU占用率,精确数据)
	// 第一行:User 35%, System 13%, IOW 0%, IRQ 0% // CPU占用率
	// 第二行:User 109 + Nice 0 + Sys 40 + Idle 156 + IOW 0 + IRQ 0 + SIRQ 1 = 306
	// // CPU使用情况
	public static synchronized String run(String[] cmd) {
		String line = "";
		InputStream is = null;
		try {
			Runtime runtime = Runtime.getRuntime();
			Process proc = runtime.exec("top -n 1");
			is = proc.getInputStream();

			// 换成BufferedReader
			BufferedReader buf = new BufferedReader(new InputStreamReader(is));

			do {
				line = buf.readLine();
			} while (line != null);

			do {
				line = buf.readLine();
				// 前面有几个空行
				if (line.startsWith("User")) {
					// 读到第一行时,我们再读取下一行
					line = buf.readLine();
					break;
				}
			} while (true);

			if (is != null) {
				buf.close();
				is.close();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		return line;
	}

	// 获取指定应用的top命令获取的信息
	// PID CPU% S #THR VSS RSS PCY UID Name // 进程属性
	// 如果当前应用不在运行则返回null
	public static synchronized String run(String[] cmd, String pkgName) {
		String line = null;
		InputStream is = null;
		try {
			Runtime runtime = Runtime.getRuntime();
			Process proc = runtime.exec("top -b -n 1");
			is = proc.getInputStream();

			// 换成BufferedReader
			BufferedReader buf = new BufferedReader(new InputStreamReader(is));
			
			do {
				line = buf.readLine();
				// 读取到相应pkgName跳出循环(或者未找到)
				if (null == line || line.endsWith(pkgName)) {
					break;
				}
			} while (true);

			if (is != null) {
				buf.close();
				is.close();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		return line;
	}
}
 
分享到:
评论

相关推荐

    Android 的cpu 硬盘 内存 网络设置 系统信息 硬件信息.pdf

    根据提供的文件信息,我们可以详细阐述Android平台下CPU、硬盘、内存、网络设置、系统信息和硬件信息的获取与管理方法。以下知识点将从文件内容中提取,并详细解释每个部分的功能和实现方式。 ### Android硬件信息...

    解析Android获取系统cpu信息,内存,版本,电量等信息的方法详解

    在Android平台上,获取系统CPU信息、内存状态、操作系统版本以及电量等数据对于开发者来说是非常重要的。这些信息可以用于性能监控、优化应用运行效率或者提供更丰富的用户体验。下面将详细介绍如何在Android中实现...

    Android CPU-Z 1.37

    Android版CPU-Z与电脑上的PC版本不同,它不仅提供了CPU芯片的信息,还提供了丰富的图形、系统、电池、传感器等信息,可以显示出处理器的型号、主频、内核架构、工艺制程,CPU的负荷情况、屏幕分辨率、RAM内存以及...

    android应用内存监控工具

    - Android Device Monitor(已弃用,但在旧版本Android Studio中可用):提供内存、CPU、文件系统等监控。 - Emmagee:可能提供的功能包括实时内存监控、内存快照、内存泄漏检测等。 四、Emmagee.apk可能的功能 -...

    Android-Android开发辅助工具fpstopActivityactivity启动耗时电量cpu内存分析

    "Android-Android开发辅助工具fpstopActivityactivity启动耗时电量cpu内存分析"是一个专为开发者设计的工具,它可以帮助开发者监测和分析应用程序的运行状态,以便找出可能存在的性能瓶颈,提高用户体验。...

    Android设备信息查询,包括基本信息、CPU、存储、显示、相机、电池、传感器、状态信息等.zip

    本教程将详细讲解如何查询Android设备的各种信息,包括基本信息、CPU、存储、显示、相机、电池、传感器以及状态信息。 首先,让我们了解设备的基本信息。在Android中,可以通过`Build`类来获取设备制造商、型号、...

    android读取系统信息

    在Android系统中,获取设备的各种信息是开发过程中常见的需求,如内存信息、CPU状态、SD卡容量、电池状态以及系统版本等。以下将详细介绍如何在Android中读取这些系统信息。 1. **内存(RAM)信息获取**: Android...

    android硬件信息获取样例

    除了CPU和内存,还可以获取其他硬件信息,如电池状态、GPU型号等。电池状态通过`BatteryManager`类,GPU信息则可能需要使用第三方库或者JNI(Java Native Interface)调用C/C++代码来获取。 在实际开发中,我们还...

    android widget 电池挂件

    10. **优化性能**: 由于Widget运行在系统进程中,应尽可能减少CPU和内存消耗,例如避免不必要的后台服务和定时器,及时释放资源。 通过上述技术,我们可以构建出一个高效、用户友好的“疯狂电池”小部件,使用户能...

    Android-Android性能监控检测工具FPSCPUPSSPrivateDirty

    CPU使用率高可能意味着程序运行时计算量大,可能导致设备变热或电池耗电快。开发者应关注CPU的使用情况,避免过度消耗资源。 3. **PSS (Proportional Set Size)**:PSS是一种内存统计指标,反映了进程占用物理内存...

    android的电池内存优化方案+工具 +方法

    1. **Android Studio Profiler**:集成的性能分析工具,包括Memory Profiler(内存分析)、CPU Profiler(CPU使用率)、Network Profiler(网络性能)等,帮助定位和解决性能问题。 2. **Battery Historian**:...

    Android系统移植

    这包括内存管理优化、CPU调度策略调整、电源管理优化等。优化的目标是提高系统运行速度,延长电池寿命,并确保系统稳定。 总结起来,Android系统移植是一个涉及多方面技术的工作,涵盖了硬件理解、内核定制、驱动...

    Android性能优化.pdf

    当应用崩溃时,开发者需要收集崩溃信息,包括堆栈跟踪、设备信息等,以便于复现问题并修复。可以使用第三方崩溃监控服务或者自建监控系统,及时发现并解决导致应用崩溃的问题。 **启动速度与执行效率优化**涉及到...

    Android系统优化从入门到精通_胡郁.

    Android系统优化是一个涉及到系统架构、性能调整、电池管理、内存使用、存储优化等多个方面的广泛话题。对于希望精通Android系统优化的入门者来说,以下是一些需要掌握的关键知识点: 1. Android系统架构理解: - ...

    CPU-Z V1.94 绿色中文 Windows 版 + 1.41 for Android 最好的免费跨平台 CPU 信息检测软件.rar

    1. **CPU 信息**:CPU-Z 可以显示CPU的制造商、型号、核心类型、主频、缓存大小、多线程信息等,包括L1、L2和L3缓存的详细数据。 2. **内存信息**:内存检测功能可以显示RAM的类型、速度、时序、容量等参数,以及...

    android系统启动全程解析

    Linux内核负责初始化硬件设备,如CPU、内存、GPU、I/O控制器等,并设置必要的系统环境。内核还会挂载根文件系统,这是一个包含操作系统基本文件和程序的文件系统。在这一阶段,驱动程序开始加载,为后续的系统服务...

    Android系统局部修改

    6. **性能优化**:通过修改ROM,用户可以优化设备性能,例如通过调整CPU频率、内存管理策略,甚至添加电源管理模块,提升电池续航。 7. **用户体验改进**:自定义ROM通常允许用户去除预装应用,更换启动器,添加...

    Android系统概述——底层开发的资料

    9. **性能优化**:包括CPU调度、内存管理、电池寿命等方面的优化,是底层开发的重要任务。通过分析和调整系统参数,可以提升整体性能。 10. **调试工具**:如ddms、traceview、logcat等,是Android底层开发的必备...

    AndroidBattery 电池监控

    3. App Profiler:Android Studio内置的App Profiler工具集成了电池分析功能,可以实时监控应用的CPU、内存、网络等资源使用情况,从而评估其对电池的影响。 四、优化策略 1. 减少不必要的唤醒:避免长时间持有...

Global site tag (gtag.js) - Google Analytics