获取系统内存大小
//获取系统总内存private 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.i(str2, num + "\t");}initial_memory = Integer.valueOf(arrayOfString[1]).intValue() * 1024;// 获得系统总内存,单位是KB,乘以1024转换为BytelocalBufferedReader.close();} catch (IOException e) {}return Formatter.formatFileSize(getBaseContext(), initial_memory);// Byte转换为KB或者MB,内存大小规格化}/*** 获取android当前可用内存大小* @return*/private String getAvailMemory() {// 获取android当前可用内存大小ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();am.getMemoryInfo(mi);//mi.availMem; 当前系统的可用内存return Formatter.formatFileSize(getBaseContext(), mi.availMem);// 将获取的内存大小规格化}/***获取sdcard是否挂载与sdcard总空间和可用空间**/private void Memory(){//查看ssdcard是否挂载if(!Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)){//sdcard状态是没有挂载的情况Toast.makeText(USBCameraActivity.this, "sdcard不存在或未挂载", Toast.LENGTH_SHORT).show();return ;}File sdcard_filedir = Environment.getExternalStorageDirectory();//得到sdcard的目录作为一个文件对象long usableSpace = sdcard_filedir.getUsableSpace();//获取文件目录对象剩余空间long totalSpace = sdcard_filedir.getTotalSpace();//将一个long类型的文件大小格式化成用户可以看懂的M,G字符串String usableSpace_str = Formatter.formatFileSize(USBCameraActivity.this, usableSpace); //SDcard可用空间String totalSpace_str = Formatter.formatFileSize(USBCameraActivity.this, totalSpace); //SDcard总空间long MAX_memory=4096;System.out.println("AAA usableSpacestr = "+usableSpace_str+" totalSpace_str = " + totalSpace_str);if(usableSpace < 1024 * 1024 * MAX_memory){//判断剩余空间是否小于MAX_memory MToast.makeText(USBCameraActivity.this, "sdcard剩余空间不足,无法满足下载;剩余空间为:"+usableSpace_str, Toast.LENGTH_SHORT).show();return ;}}
崩溃重启

Step 1. Add it in your root build.gradle at the end of repositories:
allprojects {repositories {...maven { url 'https://jitpack.io' }}}
Step 2. Add the dependency
dependencies {compile 'com.github.nanchen2251:AppManager:1.0.1'}

// 设置崩溃后自动重启 APPUncaughtExceptionHandlerImpl.getInstance().init(this, BuildConfig.DEBUG, true, 0, MainActivity.class);

// 禁止重启UncaughtExceptionHandlerImpl.getInstance().init(this,BuildConfig.DEBUG);
