获取系统内存大小

  1. //获取系统总内存
  2. private String getTotalMemory() {
  3. String str1 = "/proc/meminfo";// 系统内存信息文件
  4. String str2;
  5. String[] arrayOfString;
  6. long initial_memory = 0;
  7. try {
  8. FileReader localFileReader = new FileReader(str1);
  9. BufferedReader localBufferedReader = new BufferedReader(
  10. localFileReader, 8192);
  11. str2 = localBufferedReader.readLine();// 读取meminfo第一行,系统总内存大小
  12. arrayOfString = str2.split("\\s+");
  13. for (String num : arrayOfString) {
  14. Log.i(str2, num + "\t");
  15. }
  16. initial_memory = Integer.valueOf(arrayOfString[1]).intValue() * 1024;// 获得系统总内存,单位是KB,乘以1024转换为Byte
  17. localBufferedReader.close();
  18. } catch (IOException e) {
  19. }
  20. return Formatter.formatFileSize(getBaseContext(), initial_memory);// Byte转换为KB或者MB,内存大小规格化
  21. }
  22. /**
  23. * 获取android当前可用内存大小
  24. * @return
  25. */
  26. private String getAvailMemory() {// 获取android当前可用内存大小
  27. ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
  28. ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();
  29. am.getMemoryInfo(mi);
  30. //mi.availMem; 当前系统的可用内存
  31. return Formatter.formatFileSize(getBaseContext(), mi.availMem);// 将获取的内存大小规格化
  32. }
  33. /**
  34. *获取sdcard是否挂载与sdcard总空间和可用空间
  35. **/
  36. private void Memory(){
  37. //查看ssdcard是否挂载
  38. if(!Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)){
  39. //sdcard状态是没有挂载的情况
  40. Toast.makeText(USBCameraActivity.this, "sdcard不存在或未挂载", Toast.LENGTH_SHORT).show();
  41. return ;
  42. }
  43. File sdcard_filedir = Environment.getExternalStorageDirectory();//得到sdcard的目录作为一个文件对象
  44. long usableSpace = sdcard_filedir.getUsableSpace();//获取文件目录对象剩余空间
  45. long totalSpace = sdcard_filedir.getTotalSpace();
  46. //将一个long类型的文件大小格式化成用户可以看懂的M,G字符串
  47. String usableSpace_str = Formatter.formatFileSize(USBCameraActivity.this, usableSpace); //SDcard可用空间
  48. String totalSpace_str = Formatter.formatFileSize(USBCameraActivity.this, totalSpace); //SDcard总空间
  49. long MAX_memory=4096;
  50. System.out.println("AAA usableSpacestr = "+usableSpace_str+" totalSpace_str = " + totalSpace_str);
  51. if(usableSpace < 1024 * 1024 * MAX_memory){//判断剩余空间是否小于MAX_memory M
  52. Toast.makeText(USBCameraActivity.this, "sdcard剩余空间不足,无法满足下载;剩余空间为:"+usableSpace_str, Toast.LENGTH_SHORT).show();
  53. return ;
  54. }
  55. }

崩溃重启

Android - 图1

Step 1. Add it in your root build.gradle at the end of repositories:

  1. allprojects {
  2. repositories {
  3. ...
  4. maven { url 'https://jitpack.io' }
  5. }
  6. }

Step 2. Add the dependency

  1. dependencies {
  2. compile 'com.github.nanchen2251:AppManager:1.0.1'
  3. }

Android - 图2

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

Android - 图3

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