內存大小的獲取

Runtime方式

/**
 * App內存
 */
private fun getAppMemoryInfo() {
    val runtime = Runtime.getRuntime()
    //返回的空閒內存在Java虛擬機的數量。 調用gc方法可能會導致增加返回的值freeMemory.
    println(
        "freeMemory================================" +
                runtime.freeMemory() / 1024 / 1024
    )
    //返回的內存在Java虛擬機的總量。 通過該方法返回的值可以隨時間,這取決於宿主環境而異。
    //請注意,存儲量需要保持任何給定類型的對象可以是依賴於實現的。
    println(
        "totalMemory================================" +
                runtime.totalMemory() / 1024 / 1024
    )
    //返回Java虛擬機將嘗試使用的最大內存量。 如果沒有內在的限制,則該值Long.MAX_VALUE將被退回。
    println(
        "maxMemory================================" +
                runtime.maxMemory() / 1024 / 1024
    )
}

ActivityManager方式

/**
 * RAM內存
 */
private fun getRAMMemoryInfo() {
    val activityManager =
        this.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
    val memoryInfo = ActivityManager.MemoryInfo()
    activityManager.getMemoryInfo(memoryInfo)

    //內核訪問的內存總量。
    // 這基本上是該裝置的RAM大小,不包括下面內核固定分配等的DMA緩衝器,RAM用於將基帶CPU等
    println("totalMem================================" + memoryInfo.totalMem / 1024 / 1024)
    //系統上的可用內存。 這個數字不應該被認爲是絕對的:
    // 由於內核的性質,這種內存的顯著部分實際上是在使用中,需要對整個系統運行良好。
    println("availMem================================" + memoryInfo.availMem / 1024 / 1024)
    //如果系統認爲自己目前處於低內存情況下設置爲true。
    println("lowMemory================================" + memoryInfo.lowMemory)
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章