(전환) Android 힙 덤 프 파일 생 성 (. hprof)

다음으로 이동:http://blog.csdn.net/sodino/article/details/38512473
하나의 힙 덤 프 는 프로그램 힙 의 스냅 샷 으로 프로그램의 어떤 부분 이 대부분의 메모 리 를 사용 하고 있 는 지 알 수 있 습 니 다.그것 은 HPROF 라 는 바 이 너 리 형식 으로 저 장 됩 니 다.Android 에서 android. os. Debug. dumpHprofData (hprofpath) 방법 을 실행 한 후 생 성 된 파일 에 대해 서 는. hprof 파일 을 Dalvik 형식 에서 J2SE HPROF 형식 으로 변환 해 야 합 니 다.AndroidSDK 에서 제공 하 는 hprof - conv 도 구 를 사용 하면 이 변환 작업 을 수행 할 수 있 습 니 다.
hprof-conv dump.hprof converted-dump.hprof  

Android 코드 생 성 덤 프 파일 은 다음 과 같 습 니 다.
    public static boolean createDumpFile(Context context) {
        String LOG_PATH = "/dump.gc/";
        boolean bool = false;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH.mm.ssss", Locale.getDefault());
        String createTime = sdf.format(new Date(System.currentTimeMillis()));
        String state = android.os.Environment.getExternalStorageState();
        
        //   SdCard          
        if (android.os.Environment.MEDIA_MOUNTED.equals(state)) {
            File file = new File(Environment.getExternalStorageDirectory().getPath() + LOG_PATH);
            if (!file.exists()) {
                file.mkdirs();
            }
            
            String hprofPath = file.getAbsolutePath();
            if (!hprofPath.endsWith("/")) {
                hprofPath += "/";
            }

            hprofPath += createTime + ".hprof";
            try {
                android.os.Debug.dumpHprofData(hprofPath);
                bool = true;
                Log.d("nsz", "create dumpfile done!");
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            bool = false;
            Log.d("nsz", "no sdcard!");
        }

        return bool;
    }

Android Manifest. xml 에서 SDCard 쓰기 권한 을 설명 하 는 것 을 잊 지 마 세 요:
  

좋은 웹페이지 즐겨찾기