- 浏览: 185372 次
- 性别:
- 来自: 浙江
文章分类
最新评论
1.内存使用情况,代码如下:
package com.lml.ratetest;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityManager.MemoryInfo;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.format.Formatter;
import android.util.Log;
import android.widget.TextView;
public class MemoryActivity extends Activity {
TextView tvMemory;
Handler handler;
UpdateThread thread;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tvactivity);
tvMemory = (TextView) findViewById(R.id.tvRate);
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == 2) {
tvMemory.setText("RAM一共: " + getTotalMemory() + ", "
+ "可用: " + getAvailMemory()+", 已用:"+getUsed());
}
}
};
thread = new UpdateThread();
thread.start();
}
public class UpdateThread extends Thread {
public void run() {
while (!Thread.currentThread().isInterrupted()) {
Message msg = new Message();
msg.what = 2;
handler.sendMessage(msg);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
thread.interrupt();
}
public String getAvailMemory() {
return Formatter.formatFileSize(getBaseContext(), getAvailMemoryByByte());
}
public long getAvailMemoryByByte(){
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
MemoryInfo mi = new MemoryInfo();
am.getMemoryInfo(mi);
return mi.availMem;
}
public long getTotalMemoryByByte(){
String str1 = "/proc/meminfo";// 系统内存信息文件
String str2;
String[] arrayOfString;
long initial_memory = 0;
try {
FileReader localFileReader = new FileReader(str1);
BufferedReader localBufferedReader = new BufferedReader(
localFileReader, 8192);
str2 = localBufferedReader.readLine();// 读取meminfo第一行,系统总内存大小
arrayOfString = str2.split("\\s+");
for (String num : arrayOfString) {
Log.i(str2, num + "\t");
}
initial_memory = Integer.valueOf(arrayOfString[1]).intValue() * 1024;// 获得系统总内存,单位是KB,乘以1024转换为Byte
localBufferedReader.close();
} catch (IOException e) {
return 0;
}
return initial_memory;
}
public String getTotalMemory() {
return Formatter.formatFileSize(getBaseContext(), getTotalMemoryByByte());// Byte转换为KB或者MB,内存大小规格化
}
public long getUsedByByte(){
long used = getTotalMemoryByByte()-getAvailMemoryByByte();
return used;
}
public String getUsed(){
return Formatter.formatFileSize(getBaseContext(), getUsedByByte());
}
}
2.cpu占用率,代码如下:
package com.lml.ratetest;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;
public class CpuActivity extends Activity {
TextView tvCpu;
long total = 0;
long idle = 0;
double usage = 0;
UpdateThread thread;
Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tvactivity);
tvCpu = (TextView) findViewById(R.id.tvRate);
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == 3) {
tvCpu.setText("cpu 占用率 : "+Math.round((Double)msg.obj));
}
}
};
thread = new UpdateThread();
thread.start();
}
@Override
protected void onDestroy() {
super.onDestroy();
thread.interrupt();
}
public class UpdateThread extends Thread {
public void run() {
while (!Thread.currentThread().isInterrupted()) {
Message msg = new Message();
msg.what = 3;
msg.obj=readUsage();
handler.sendMessage(msg);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}
}
public double readUsage() {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
new FileInputStream("/proc/stat")), 1000);
String load = reader.readLine();
reader.close();
String[] toks = load.split(" ");
long currTotal = Long.parseLong(toks[2]) + Long.parseLong(toks[3])
+ Long.parseLong(toks[4]);
long currIdle = Long.parseLong(toks[5]);
if ((currTotal - total) * 100.0f
/ (currTotal - total + currIdle - idle) >= 0) {
this.usage = (currTotal - total) * 100.0f
/ (currTotal - total + currIdle - idle);
} else {
this.usage = 0;
}
this.total = currTotal;
this.idle = currIdle;
} catch (IOException ex) {
return 0.0;
}
return usage;
}
}
package com.lml.ratetest;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityManager.MemoryInfo;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.format.Formatter;
import android.util.Log;
import android.widget.TextView;
public class MemoryActivity extends Activity {
TextView tvMemory;
Handler handler;
UpdateThread thread;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tvactivity);
tvMemory = (TextView) findViewById(R.id.tvRate);
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == 2) {
tvMemory.setText("RAM一共: " + getTotalMemory() + ", "
+ "可用: " + getAvailMemory()+", 已用:"+getUsed());
}
}
};
thread = new UpdateThread();
thread.start();
}
public class UpdateThread extends Thread {
public void run() {
while (!Thread.currentThread().isInterrupted()) {
Message msg = new Message();
msg.what = 2;
handler.sendMessage(msg);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
thread.interrupt();
}
public String getAvailMemory() {
return Formatter.formatFileSize(getBaseContext(), getAvailMemoryByByte());
}
public long getAvailMemoryByByte(){
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
MemoryInfo mi = new MemoryInfo();
am.getMemoryInfo(mi);
return mi.availMem;
}
public long getTotalMemoryByByte(){
String str1 = "/proc/meminfo";// 系统内存信息文件
String str2;
String[] arrayOfString;
long initial_memory = 0;
try {
FileReader localFileReader = new FileReader(str1);
BufferedReader localBufferedReader = new BufferedReader(
localFileReader, 8192);
str2 = localBufferedReader.readLine();// 读取meminfo第一行,系统总内存大小
arrayOfString = str2.split("\\s+");
for (String num : arrayOfString) {
Log.i(str2, num + "\t");
}
initial_memory = Integer.valueOf(arrayOfString[1]).intValue() * 1024;// 获得系统总内存,单位是KB,乘以1024转换为Byte
localBufferedReader.close();
} catch (IOException e) {
return 0;
}
return initial_memory;
}
public String getTotalMemory() {
return Formatter.formatFileSize(getBaseContext(), getTotalMemoryByByte());// Byte转换为KB或者MB,内存大小规格化
}
public long getUsedByByte(){
long used = getTotalMemoryByByte()-getAvailMemoryByByte();
return used;
}
public String getUsed(){
return Formatter.formatFileSize(getBaseContext(), getUsedByByte());
}
}
2.cpu占用率,代码如下:
package com.lml.ratetest;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;
public class CpuActivity extends Activity {
TextView tvCpu;
long total = 0;
long idle = 0;
double usage = 0;
UpdateThread thread;
Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tvactivity);
tvCpu = (TextView) findViewById(R.id.tvRate);
handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == 3) {
tvCpu.setText("cpu 占用率 : "+Math.round((Double)msg.obj));
}
}
};
thread = new UpdateThread();
thread.start();
}
@Override
protected void onDestroy() {
super.onDestroy();
thread.interrupt();
}
public class UpdateThread extends Thread {
public void run() {
while (!Thread.currentThread().isInterrupted()) {
Message msg = new Message();
msg.what = 3;
msg.obj=readUsage();
handler.sendMessage(msg);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}
}
public double readUsage() {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
new FileInputStream("/proc/stat")), 1000);
String load = reader.readLine();
reader.close();
String[] toks = load.split(" ");
long currTotal = Long.parseLong(toks[2]) + Long.parseLong(toks[3])
+ Long.parseLong(toks[4]);
long currIdle = Long.parseLong(toks[5]);
if ((currTotal - total) * 100.0f
/ (currTotal - total + currIdle - idle) >= 0) {
this.usage = (currTotal - total) * 100.0f
/ (currTotal - total + currIdle - idle);
} else {
this.usage = 0;
}
this.total = currTotal;
this.idle = currIdle;
} catch (IOException ex) {
return 0.0;
}
return usage;
}
}
- RateTest.rar (1.3 MB)
- 下载次数: 0
发表评论
-
关于Android的webSocket的简单使用
2017-05-12 14:34 987使用第三方jar: autobahn-0.5.0.jar 连 ... -
Comparator自定义排序的使用
2017-05-11 14:18 749java对于集合的自定义排序方法有: Arrays.sort ... -
查看Android虚拟机文件相关命令
2017-05-02 14:12 608我们在虚拟机下添加文件后,想查看下文件是否正确创建,可在win ... -
android6.0创建文件问题
2017-05-02 12:58 587Android在6.0有了动态权限管理,在文件创建时就需要动态 ... -
xutils的http模块的简单使用
2017-04-28 16:05 527先导入xutils相关依赖: compile 'org.xut ... -
Litepal的简单使用
2017-04-27 17:21 642相关包下载地址:https://github.com/Lite ... -
Android下拉刷新上拉加载控件的使用
2017-04-21 10:46 852参考链接:http://www.jianshu.com/p/6 ... -
图片加载框架
2017-04-19 16:29 402图片加载框架: picasso ImageLoader -
Android的Service总结
2017-04-17 15:46 461参考链接:http://www.cnblogs.com/lwb ... -
解决ViewPager的addOnPageChangeListener不加载第一个的问题
2017-03-18 17:53 2649今天在使用ViewPager的时候发现个问题。 需求如下: ... -
clone方法的使用
2017-01-04 10:14 555由于Java有引用这一说,当两个变量指向同一块内存时,改变 ... -
Fragment无法切换问题
2016-12-16 14:57 2114Android有一个回收机制,当内存不足时,会自动回收相关内存 ... -
关于Material Design的CollapsingToolbarLayout初次使用
2016-12-16 13:38 614最近了解了下CollapsingToolbarLayout的使 ... -
MVP模式的学习
2016-12-10 15:15 676以前我写代码都是使用MVC模式,这种模式使Activity变得 ... -
Material Design:Android Design Support Library 介绍
2016-12-10 14:14 471参考链接 : https://blog.leancloud.c ... -
SpannableString简介
2016-12-10 14:03 424参考链接: http://www.cnblogs.com/ji ... -
getResources().getDrawable方法的废弃
2016-12-10 13:20 1236参考链接:http://www.jianshu.com/p/e ... -
关于AndroidStudio的Unsupported major.minor version 52.0异常
2016-12-10 13:15 2380参考链接:http://blog.csdn.net/fakin ... -
Android记录
2015-06-01 10:54 642http://tools.android-studio.org ... -
android自定义控件相关使用
2015-04-24 16:53 612用代码简单介绍下自定义控件的使用: 先看主activity: ...
相关推荐
总之,通过Windows API,VC++开发者可以轻松地获取和监控进程的CPU占用率和内存使用情况,这对于优化程序性能、排查问题或者构建系统监控工具都是非常有用的。在实际编程中,需要注意线程安全、资源释放以及错误处理...
在IT领域,尤其是在系统编程和性能分析中,了解如何获取进程的CPU占用率和内存使用情况至关重要。在C++环境中,这通常涉及到操作系统接口的使用,例如Windows API或POSIX系统调用。以下是对"进程CPU占用率和内存使用...
以上代码片段展示了如何使用Go语言读取Linux系统的CPU占用率、CPU温度、内存占用率和磁盘占用率。在实际应用中,这些函数可以被整合到一个统一的系统监控服务中,定期获取和记录这些数据,以便进行性能分析和故障...
在实际开发中,这些数据可以用于创建一个实时监控界面,显示设备的CPU使用率和内存使用情况。例如,可以每隔一段时间调用上述方法获取数据并更新UI。同时,也可以结合其他系统指标,如磁盘I/O、网络流量等,为用户...
在这个“易语言画板动态显示CPU占用率”项目中,我们主要探讨如何利用易语言来实时获取系统资源信息,并在画板上动态地展示CPU的使用情况。 首先,我们需要理解CPU占用率的概念。CPU占用率是指CPU正在处理的任务所...
linux c程序获取cpu使用率及内存使用情况
在本文中,我们将深入探讨如何使用Qt框架在C++环境下编写小程序,以便获取关于系统状态的重要信息,如CPU占用率、内存使用情况、硬盘容量以及程序的运行时间。Qt是一个功能强大的跨平台开发框架,广泛应用于GUI应用...
为了获取类似任务管理器显示的进程CPU占用率,你需要遍历`SystemProcessInformation`中的所有进程,累加它们的CPU时间,同时考虑到多核CPU的情况。这可能涉及到一些复杂的同步和计时问题,因为CPU时间是随着时间推移...
在IT领域,实时监控系统资源,尤其是CPU使用率和内存使用情况,对于开发者和系统管理员来说至关重要。这有助于诊断性能瓶颈、优化代码以及确保系统的稳定运行。以下是对标题和描述中涉及的知识点的详细说明: 1. **...
在本文中,我们将深入探讨如何使用WPF(Windows Presentation Foundation)和Visifire库来实现一个功能,即实时监测并展示Windows操作系统的内存占用和CPU使用情况。Visifire是一款强大的数据可视化工具,它提供了...
在Linux操作系统中,掌握如何查看进程的CPU占用率是系统管理员和开发者必备的技能之一。这一过程涉及到对系统监控工具的使用,理解进程与CPU之间的交互,以及如何解析输出信息。下面将详细介绍如何在Linux环境下查看...
java 获取计算机cpu利用率和内存使用信息,需要的自己下载测试吧。
1. 获取系统CPU占用率: - 首先,创建两个`PerformanceCounter`实例,分别用于跟踪“% Processor Time”(CPU时间)的“Total”实例和“Idle”实例。 - 计算这两个值的差,得到的就是CPU的非空闲时间百分比,即CPU...
在FreeRTOS中,CPU占用率可以通过计算任务循环运行的时间与总运行时间的比例来得到。以下是一种可能的实现方式: 1. **初始化**:在系统启动时,创建一个专门用于统计的定时器或者任务,记录当前时间戳,同时初始化...
delphi 仿任务管理器 获取每个进程的cpu使用率,内存使用情况,很好用,有源代码 ,delphi源码
一、CPU占用率的含义与重要性 CPU占用率指的是处理器在给定时间内处于忙碌状态的百分比。它反映了CPU处理任务的能力和当前系统的工作负载。当CPU占用率长时间维持在高位,可能导致系统响应变慢,甚至出现卡顿现象。...
总结来说,"windows server进程内存占用及CPU使用率自动监控并记录脚本"是一种实用的运维工具,它通过集成`Tasklist`和`WMIC`命令,定期收集并记录服务器上特定进程的资源使用情况,有助于快速定位和解决性能问题。...
总的来说,通过利用WPF的强大功能和.NET Framework的系统性能计数器,我们可以创建一个直观的监控工具,实时显示CPU和物理内存的使用情况。这样的工具对开发者和系统管理员来说非常有用,可以帮助他们更好地理解系统...
3. **内存管理**: 除了CPU占用率,内存使用情况也是需要关注的重点。在Wince中,内存不足可能导致系统运行缓慢或应用程序崩溃。任务管理器会显示当前内存的使用量和剩余量,以及每个进程的内存占用,这对于调整内存...