`
wangleyiang
  • 浏览: 220974 次
社区版块
存档分类
最新评论

Android 常用的SDCARD和内存操作

阅读更多
public class MemoryStatus {
    static final int ERROR = -1;

    /**
     * 外部存储是否可用
     * @return
     */
    static public boolean externalMemoryAvailable() {
        return android.os.Environment.getExternalStorageState().equals(
                android.os.Environment.MEDIA_MOUNTED);
    }

    /**
     * 获取手机内部可用空间大小
     * @return
     */
    static public long getAvailableInternalMemorySize() {
        File path = Environment.getDataDirectory();
        StatFs stat = new StatFs(path.getPath());
        long blockSize = stat.getBlockSize();
        long availableBlocks = stat.getAvailableBlocks();
        return availableBlocks * blockSize;
    }

    /**
     * 获取手机内部空间大小
     * @return
     */
    static public long getTotalInternalMemorySize() {
        File path = Environment.getDataDirectory();
        StatFs stat = new StatFs(path.getPath());
        long blockSize = stat.getBlockSize();
        long totalBlocks = stat.getBlockCount();
        return totalBlocks * blockSize;
    }

    /**
     * 获取手机外部可用空间大小
     * @return
     */
    static public long getAvailableExternalMemorySize() {
        if (externalMemoryAvailable()) {
            File path = Environment.getExternalStorageDirectory();
            StatFs stat = new StatFs(path.getPath());
            long blockSize = stat.getBlockSize();
            long availableBlocks = stat.getAvailableBlocks();
            return availableBlocks * blockSize;
        } else {
            return ERROR;
        }
    }

    /**
     * 获取手机外部空间大小
     * @return
     */
    static public long getTotalExternalMemorySize() {
        if (externalMemoryAvailable()) {
            File path = Environment.getExternalStorageDirectory();
            StatFs stat = new StatFs(path.getPath());
            long blockSize = stat.getBlockSize();
            long totalBlocks = stat.getBlockCount();
            return totalBlocks * blockSize;
        } else {
            return ERROR;
        }
    }

    static public String formatSize(long size) {
        String suffix = null;

        if (size >= 1024) {
            suffix = "KiB";
            size /= 1024;
            if (size >= 1024) {
                suffix = "MiB";
                size /= 1024;
            }
        }

        StringBuilder resultBuffer = new StringBuilder(Long.toString(size));
        int commaOffset = resultBuffer.length() - 3;
        while (commaOffset > 0) {
            resultBuffer.insert(commaOffset, ',');
            commaOffset -= 3;
        }

        if (suffix != null)
            resultBuffer.append(suffix);
        return resultBuffer.toString();
    }
}

 

 来源网络

 

 

分享到:
评论

相关推荐

    android 读取外置SDCard

    本篇文章将详细探讨如何在Android应用中实现对外置SDCard的读取、创建、写入和删除操作。 首先,获取外置SDCard的路径是进行任何操作的第一步。在Android中,外置SDCard的路径通常是`/storage/emulated/0/`,但这并...

    android往手机内存和sdcard卡上存储数据

    对于内存和SDCard的存储,除了注意权限问题,还需要考虑数据的安全性和访问效率。通过封装好的工具类,可以大大简化开发过程,提高代码质量。在实际应用中,务必遵循最佳实践,确保数据的正确读写和安全。

    Android解析如何获取SDCard 内存项目源代码

    标题提到的"Android解析如何获取SDCard内存项目源代码"显然是一个示例项目,提供了实现这一功能的源代码。下面将详细解释这个过程涉及的知识点。 1. **Android存储体系**: Android设备有两种主要的存储类型:内部...

    android显示sdcard上的图片

    综上所述,"android显示sdcard上的图片"这一主题涵盖了Android系统中的文件访问、图片解析、内存管理、UI显示、异步处理等多个技术环节。通过熟练掌握这些知识点,开发者可以构建出高效且用户友好的图片显示功能。在...

    Android 文件 内存目录获取 sdcard目录获取

    本篇将详细介绍在Android 2.3及更高版本中,如何获取和操作Android设备的内存目录以及SDCard目录。 首先,我们要理解Android的存储架构。内部存储主要用于存储应用私有的数据,这些数据对其他应用是不可见的。而...

    android从SDcard中读取文件信息

    如果图片较大,为优化性能,可以考虑使用`BitmapOptions`来解码部分图像,或者使用` Glide`, `Picasso`等库进行异步加载和内存管理。 此外,注意在使用完毕后释放资源,比如调用`bitmap.recycle()`回收`Bitmap`对象...

    SDCard内存大小统计

    总的来说,统计SDCard的内存大小是Android开发中的常见任务,涉及到对文件系统的操作和对Android系统API的理解。通过正确的方法,我们可以轻松获取并管理设备的存储信息,为用户提供更好的存储管理体验。

    查看手机内存状态和sdcard卡的内存状态

    在Android系统中,了解手机内存状态以及SDCard(外部存储卡)的状态对于开发者和普通用户来说都至关重要。这有助于优化应用程序性能,管理存储空间,确保设备的流畅运行。以下是一些关于查看和理解这些状态的知识点...

    android 默认安装apk 到sdcard

    在Android系统中,APK(Android Package)是应用程序的安装包,用户通常通过Google Play或...随着Android系统版本的更新,对这一功能的使用和控制也有所变化,开发者和用户都需要根据具体版本的Android特性进行操作。

    android图片缓存优化,内存缓存加sdcard缓存,性能很好,防止oom

    本文将深入探讨Android图片缓存的优化策略,包括内存缓存和SDCard缓存,并以此为例详细解析`ImagesCache`这个项目。 内存缓存: 内存缓存是为了快速访问图片而设计的,它将图片数据存储在应用程序的内存中。当用户...

    Android 常用六大框架

    没有使用弱引用(android2.3以后google已经不建议使用弱引用,android2.3后强行回收软引用和弱引用,详情查看android官方文档), 更好的管理bitmap内存。FinalBitmap可以自定义下载器,用来扩展其他协议显示网络...

    Android将网上图片存储到sdcard中并显示出来的源码

    在Android开发中,将网络上的图片下载到SDCard并显示是一项常见的需求。这个源码示例提供了一种方法来实现这一功能。以下是基于标题和描述的相关知识点详解: 1. **Android权限管理**: 在Android中,访问SDCard...

    Android获取SD卡路径及SDCard内存的方法

    在Android开发中,获取SD卡路径以及查询SDCard内存大小是常见的需求,这对于存储和管理应用程序的数据至关重要。本文将详细讲解如何实现这一功能,并介绍相关的类和方法。 首先,我们来了解一下获取SD卡路径的两种...

    android 无sdcard 下载安装 apk 多线程 断点 自动安装apk

    在Android系统中,由于安全和性能的考虑,有时设备可能没有物理SD卡或者SD卡不可用。在这种情况下,用户...在实际开发中,可能还需要考虑到设备性能、内存管理以及用户体验等因素,以打造更加完善的下载和安装流程。

    Android对sdcard扩展卡文件操作实例详解

    本篇将详细讲解如何在Android中实现对SDCard扩展卡的文件操作,主要包括添加权限、检查SDCard状态、创建文件和目录以及读写文件。 首先,Android对SDCard的访问需要特殊的权限。在AndroidManifest.xml文件中,你...

    Android文件读写包含SDCard

    本篇将重点讲解如何在Android中进行文件读写,包括对内部存储和外部存储(即SDCard)的操作。 首先,了解Android的存储体系至关重要。Android设备有两种主要的存储类型:内部存储和外部存储。内部存储通常用于应用...

    Android下数据持久化存储在自带内存与存储卡

    在给出的压缩包文件`DataStorageDemo`中,可能包含了一些示例代码或教程,用于演示如何在Android应用中实现数据的内部存储和外部存储操作。通过学习和理解这些示例,开发者可以更好地掌握Android的数据持久化技术。

    android从服务器端下载图片并保存在本地sdcard里并在界面滚动显示出来

    综上所述,"android从服务器端下载图片并保存在本地sdcard里并在界面滚动显示出来"这个过程涉及了网络请求、文件操作、图片缓存、异步处理、UI显示优化等多个技术点,需要综合运用多种Android开发技巧和第三方库。...

    播放SDcard的全部音频文件.

    总结起来,播放SDcard的全部音频文件涉及了Android文件系统的操作、多媒体框架的使用、遍历文件的方法、权限管理、异步处理、播放控制以及错误处理等多个技术层面。理解并掌握这些知识点是开发Android音乐播放功能的...

    Android读取assets与sdcard中的ini文件与图片

    总结,Android应用可以通过原生API轻松地读取assets和sdcard中的ini文件,以及处理图像资源。理解这些基本操作对于开发涉及资源读取的应用至关重要。记得在处理文件时注意异常处理,确保程序的健壮性。同时,遵循...

Global site tag (gtag.js) - Google Analytics