Android切片工具

实现将内存切片保存位本地文件中。

文中仅提供实现的方法,不考虑其他外部因素。

fun dump(): Boolean {
    // 文件夹名
    val logPathDir = "/dump.mat/"
    var bool = false;
    // 文件名
    val sdf = SimpleDateFormat("yyyyMMdd-HHmm.sss")
    val createTime = sdf.format(Date())
    val state = Environment.getExternalStorageState()

    if (Environment.MEDIA_MOUNTED == state) {
        val file = File("${Environment.getExternalStorageDirectory().path}${logPathDir}")
        if (!file.exists()) {
            file.mkdirs()
        }
        var hprofPath = file.absolutePath
        if (!hprofPath.endsWith("/")) {
            hprofPath = "${hprofPath}/"
        }
        // 文件绝对地址,补全后缀
        hprofPath = "${hprofPath}${createTime}.hprof"
        try {
            android.os.Debug.dumpHprofData(hprofPath)
            bool = true
        } catch (e: IOException) {
            e.printStackTrace()
        }
    }
    return bool
}

如果需要本地查看,需要进行转化
hprof-conv.exe <src> <dst>

posted @ 2022-11-27 17:35  swalka`x  阅读(83)  评论(0编辑  收藏  举报