现在论坛里越来越多垃圾了,两个小功能都要30分,还是代码搬运工,以前一些大神辛苦封装的都免费,这种垃圾搬运几行代码都要收30分。现在代码我贴出来,大家自己看。

下面看不懂的,这有demo链接

 

 /**     * 获取内存可用空间     * @return     */    public static String getAvailMemory() {// 获取android当前可用内存大小        ActivityManager am = (ActivityManager) MyApplication.getInstance().getSystemService(Context.ACTIVITY_SERVICE);        ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();        am.getMemoryInfo(mi);        //mi.availMem; 当前系统的可用内存        return Formatter.formatFileSize(MyApplication.getInstance(), mi.availMem);// 将获取的内存大小规格化    }    /**     * 获取内存总共空间     * @return     */    public static String getTotalMemory() {        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.e(str2, num + "\t");            }            initial_memory = Integer.valueOf(arrayOfString[1]).intValue() * 1024;// 获得系统总内存,单位是KB,乘以1024转换为Byte            localBufferedReader.close();        } catch (IOException e) {            e.printStackTrace();        }        return Formatter.formatFileSize(MyApplication.getInstance(), initial_memory);// Byte转换为KB或者MB,内存大小规格化    }    /**     * 获取cpu使用率     * @return     */    public static float getCpuUsed() {        try {            RandomAccessFile reader = new RandomAccessFile("/proc/stat", "r");            String load = reader.readLine();            String[] toks = load.split(" ");            long idle1 = Long.parseLong(toks[5]);            long cpu1 = Long.parseLong(toks[2]) + Long.parseLong(toks[3]) + Long.parseLong(toks[4])                    + Long.parseLong(toks[6]) + Long.parseLong(toks[7]) + Long.parseLong(toks[8]);            try {                Thread.sleep(360);            } catch (Exception e) {                e.printStackTrace();            }            reader.seek(0);            load = reader.readLine();            reader.close();            toks = load.split(" ");            long idle2 = Long.parseLong(toks[5]);            long cpu2 = Long.parseLong(toks[2]) + Long.parseLong(toks[3]) + Long.parseLong(toks[4])                    + Long.parseLong(toks[6]) + Long.parseLong(toks[7]) + Long.parseLong(toks[8]);            return (float) (cpu2 - cpu1) / ((cpu2 + idle2) - (cpu1 + idle1));        } catch (IOException ex) {            ex.printStackTrace();        }        return 0;    }    /**     * 外部存储是否可用 (存在且具有读写权限)     */    public static boolean isExternalStorageAvailable() {        return Environment.getExternalStorageState().equals(                Environment.MEDIA_MOUNTED);    }    /**     * 获取手机内部可用空间大小     * @return     */    static public String getAvailableInternalMemorySize() {        File path = Environment.getDataDirectory();        StatFs stat = new StatFs(path.getPath());        long blockSize = stat.getBlockSize();        long availableBlocks = stat.getAvailableBlocks();        return Formatter.formatFileSize(MyApplication.getInstance(),availableBlocks * blockSize);    }    /**     * 获取手机内部空间大小     * @return     */    public static String getTotalInternalMemorySize() {        File path = Environment.getDataDirectory();//Gets the Android data directory        StatFs stat = new StatFs(path.getPath());        long blockSize = stat.getBlockSize();      //每个block 占字节数        long totalBlocks = stat.getBlockCount();   //block总数        return Formatter.formatFileSize(MyApplication.getInstance(),totalBlocks * blockSize);    }    /**     * 获取手机外部可用空间大小     * @return     */    public static String getAvailableExternalMemorySize() {        if (isExternalStorageAvailable()) {            StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath());            long blockSize = stat.getBlockSize();            long availableBlocks = stat.getAvailableBlocks();            return Formatter.formatFileSize(MyApplication.getInstance(),availableBlocks * blockSize);        } else {            return "-1";        }    }    /**     * 获取手机外部总空间大小     * @return     */    public static String getTotalExternalMemorySize() {        if (isExternalStorageAvailable()) {            StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getAbsolutePath());            long blockSize = stat.getBlockSize();            long totalBlocks = stat.getBlockCount();            return Formatter.formatFileSize(MyApplication.getInstance(),totalBlocks * blockSize);        } else {            return "-1";        }    }

 

更多相关文章

  1. Android中接口(Interface)的简单使用
  2. Android命令行查看内存使用情况
  3. 本来想用“{{”秀一波,结果却导致了内存溢出!
  4. 使EditText不自动获取焦点(Android中系统输入法不主动弹出)
  5. Broadcast监听网络状态,ping判断网络是否可用
  6. Android(安卓)OOM 排查与解决——图片加载优化
  7. Android(安卓)M 动态权限获取
  8. Android(安卓)XML shape 标签使用详解(apk瘦身,减少内存好帮手)
  9. android 判断摄像头是否可用(6.0以下 )

随机推荐

  1. Android异步处理
  2. 如何在eclipse上正确导入android工程
  3. Android(安卓)View的事件分发机制
  4. Android(安卓)Jni开发之Android(安卓)Stu
  5. Android(安卓)HAL实现的三种方式(3) - 基
  6. 关于 MOTODEV
  7. 优化 Android(安卓)投屏实时性
  8. 在Ubuntu上下载、编译和安装Android最新
  9. Android响应式布局
  10. 工作不久的安卓开发者,他们是这样规划自己