• 获取系统资源APP


    今天终于勉强的做了一个APP,记录下吧,怕丢失了。

    用到的知识点

    1.listview适配器SimpleAdapter

    listview最简单的适配器是arrayAdapter,这个相对是比较复杂的,参数解释如下:

     SimpleAdapter mSimpleAdapter=new SimpleAdapter(MainActivity.this, getData(),R.layout.item, new String[]{"progressname","progressUID","progressPID","progressmemSize"},new int[]{R.id.ItemTitle1,R.id.ItemText2,R.id.ItemText3,R.id.ItemText4});

    第一个参数是Context,就是你当前的activity

    第二个参数是需要展示的列表,每个列表里存的是Map
    第三个参数是ListView中每一项的布局文件
    第四个参数是列表里每一个Map的键
    第五个是R.layout.line这个布局文件中每个控件的id

    代码如下:

    package com.example.androidthreadtest;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    
    import android.app.Activity;
    import android.app.ActivityManager;
    import android.app.ActivityManager.MemoryInfo;
    import android.app.ActivityManager.RunningAppProcessInfo;
    import android.content.Context;
    import android.os.Bundle;
    import android.os.Debug;
    import android.os.Handler;
    import android.os.Message;
    import android.text.format.Formatter;
    import android.util.Log;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;
    import android.widget.TextView;
    
    public class MainActivity extends Activity{
        private TextView text,textname;
        private ActivityManager mActivityManager;
        private Button button1,button2;
        List<ActivityManager.RunningAppProcessInfo> list1;
        
    
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            text = (TextView) findViewById(R.id.text);
            textname=(TextView)findViewById(R.id.textname);
            button1=(Button)findViewById(R.id.button);
            button2=(Button)findViewById(R.id.button2);
            final ListView listView = (ListView) findViewById(R.id.list_view);
            mActivityManager=(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
            final MemoryInfo memoryInfo=new MemoryInfo();
            mActivityManager.getMemoryInfo(memoryInfo);
            list1=mActivityManager.getRunningAppProcesses(); 
            textname.setText("正在运行的共:"+list1.size()+"个进程");
    
            button1.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    String availMemStr=Formatter.formatFileSize(MainActivity.this, memoryInfo.availMem);
                    text.setText(availMemStr);
                    
                }
            });
    
            button2.setOnClickListener(new OnClickListener() { 
            
                
                @Override
                public void onClick(View v) {
    
                    SimpleAdapter mSimpleAdapter=new SimpleAdapter(MainActivity.this, getData(),R.layout.item, new String[]{"progressname","progressUID","progressPID","progressmemSize"},new int[]{R.id.ItemTitle1,R.id.ItemText2,R.id.ItemText3,R.id.ItemText4});
                    listView.setAdapter(mSimpleAdapter);
    
                }
            });
            
    
        }
    
        private ArrayList<HashMap<String,Object>> getData(){
    
              Iterator<RunningAppProcessInfo> iterator=list1.iterator();
              ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String,Object>>();
    
              while(iterator.hasNext()){
                    RunningAppProcessInfo runapp=iterator.next();
                    int pid=runapp.pid;
                    int uid=runapp.uid;
                    String progressname=runapp.processName;
                    int[] myMempid = new int[]{pid}; 
                    android.os.Debug.MemoryInfo[] mem=mActivityManager.getProcessMemoryInfo(myMempid);
                    int memSize = mem[0].dalvikPrivateDirty; 
                    HashMap<String, Object> map = new HashMap<String, Object>(); 
                    map.put("progressname", "progressname:"+progressname);
                    map.put("progressUID", "UID is:"+uid);
                    map.put("progressPID", "PID is:"+pid);
                    map.put("progressmemSize", "占用内存:"+memSize);
                    listItem.add(map); 
                    
              }
                return listItem;
              }
    
    
    }

    布局文件activity_main如下:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    
        
        <TextView
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="Hello world"
            android:textSize="20sp" />
        <Button 
            android:id="@+id/button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="系统可用内存"
            />
    
        <Button 
            android:id="@+id/button2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="获取系统进程信息"
            />
         <TextView
            android:id="@+id/textname"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:textSize="20sp" />
        <ListView 
            android:id="@+id/list_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent">      
        </ListView>
        
    
    </LinearLayout>

    item.xml如下:

    <RelativeLayout
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_height="fill_parent"
      android:layout_width="fill_parent"> 
    
    <TextView
        android:id="@+id/ItemTitle1" 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" 
        android:textSize="20sp"/>
     <TextView
         android:id="@+id/ItemText2" 
         android:layout_height="wrap_content" 
         android:layout_width="fill_parent" 
         android:layout_below="@+id/ItemTitle1"
         android:textSize="20sp"/> 
      <TextView
         android:id="@+id/ItemText3" 
         android:layout_height="wrap_content" 
         android:layout_width="fill_parent" 
         android:layout_below="@+id/ItemText2"
         android:textSize="20sp"/> 
       <TextView
         android:id="@+id/ItemText4" 
         android:layout_height="wrap_content" 
         android:layout_width="fill_parent" 
         android:layout_below="@+id/ItemText3"
         android:textSize="20sp"/> 
     </RelativeLayout>

    1、List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses()

      返回当前运行在Android设备上的所有应用程序的进程。

    2、List<ActivityManager.RunningServiceInfo> getRunningServices(int maxNum) 

       返回当前正在运行的服务列表

    3、List<ActivityManager.RunningTaskInfo> getRunningTasks(int maxNum)

      返回当前正在运行的任务列表(任务,是一个或多个活动的集合;这些活动以栈的形式运行在一个任务当中),按照最近一次运行的任务排在任务列表前端的方式,输出所有的任务。 

  • 相关阅读:
    ios 正则表达式
    2016/2/26 jQuery的技术 1,安装 2,语法选择器$ 事件触发 3,常用jQuery函数
    2016/2/26 <marquee></marquee>实现多种滚动效果
    2016/2/25 onchange 应用
    2016/2/25 1、<表单验证<form></form> 2、正则表达式 3、事件
    2016/2/25 1, margin auto 垂直方向测试 无效 2,margin重叠 3,哪些是块状哪些是内联 4,display:block inline 导航栏把内联转块状最常见+ 扩展
    2016/2/25 html+css学习资源
    2016/2/24 css画三角形 border的上右下左的调整 以及内区域的无限变小 边界透明
    2016/2/24 1,css有几种引入方式 2,div除了可以声明id来控制,还可以声明什么控制? 3,如何让2个div,并排显示。4,清除浮动 clear:left / right / both
    2016/2/24 1,dotctype有几种? 2,了解html的发展历史
  • 原文地址:https://www.cnblogs.com/penghong2014/p/4898122.html
Copyright © 2020-2023  润新知