精华内容
下载资源
问答
  • 问题:在Linux系统上运行Android Studio,发现内存占用非常,并且不断增长,主要是Gradle守护进程在执行任务之后不释放导致 解决:参考Gradle官方文档,可以使用命令来清理,不用每次都重启Android Studio 守护...

    问题:在Linux系统上运行Android Studio,发现内存占用非常大,并且不断增长,主要是Gradle守护进程在执行任务之后不释放导致
    解决:参考Gradle官方文档,可以使用命令来清理,不用每次都重启Android Studio

    守护进程会在闲置3小时后自动终止.如果想在这之前停止守护进程,也可以通过操作系统运行gradle --stop命令终止后台进程.–stop选项会要求所有运行相同版本的守护进程终止.

    展开全文
  • 1.检查系统内存liuhx@uc ~ $ adb shell cat /proc/meminfoMemTotal: 840868 kBMemFree: 457344 kBBuffers: 1744 kBCached: 203064 kBSwapCached: 0 kBActive:...

    1.检查系统总内存

    liuhx@uc ~ $ adb shell cat /proc/meminfo

    MemTotal:         840868 kB

    MemFree:          457344 kB

    Buffers:            1744 kB

    Cached:           203064 kB

    SwapCached:            0 kB

    Active:           234932 kB

    Inactive:         129644 kB

    Active(anon):     170292 kB

    Inactive(anon):        0 kB

    Active(file):      64640 kB

    Inactive(file):   129644 kB

    Unevictable:           0 kB

    Mlocked:               0 kB

    SwapTotal:             0 kB

    SwapFree:              0 kB

    Dirty:                 0 kB

    Writeback:             0 kB

    AnonPages:        159820 kB

    Mapped:            97916 kB

    Slab:               7808 kB

    SReclaimable:       2920 kB

    SUnreclaim:         4888 kB

    PageTables:         3516 kB

    NFS_Unstable:          0 kB

    Bounce:                0 kB

    WritebackTmp:          0 kB

    CommitLimit:      420432 kB

    Committed_AS:    1295272 kB

    VmallocTotal:     122880 kB

    VmallocUsed:       16508 kB

    VmallocChunk:      76804 kB

    第一行MemTotal就是总内存。一般并不会等于手机标榜的数值。说是2G内存的手机,会在1.8G左右

    2.检查某个程序的各类型内存占用

    可用dumpsys meminfo 包名。不知道包名的话,可以用ps命令得到所有运行的程序,也包括得到pid。以自带的浏览器为例:

    liuhx@uc ~ $ adb shell dumpsys meminfo com.android.browser

    Applications Memory Usage (kB):

    Uptime: 23140065 Realtime: 23140065

    ** MEMINFO in pid 939 [com.android.browser] **

    Shared  Private     Heap     Heap     Heap

    Pss    Dirty    Dirty     Size    Alloc     Free

    ------   ------   ------   ------   ------   ------

    Native     7111      748     7048     8964     8634      329

    Dalvik     7338     5096     6892     7568     7041      527

    Cursor        0        0        0

    Ashmem      276        0      276

    Other dev        4        0        0

    .so mmap     5050     1728      252

    .jar mmap        0        0        0

    .apk mmap      418        0        0

    .ttf mmap      439        0        0

    .dex mmap        0        0        0

    Other mmap     2320       16       24

    Unknown     5173       12     5172

    TOTAL    28129     7600    19664    16532    15675      856

    Objects

    Views:      104         ViewRootImpl:        1

    AppContexts:        4           Activities:        1

    Assets:        2        AssetManagers:        2

    Local Binders:       15        Proxy Binders:       19

    Death Recipients:        0

    OpenSSL Sockets:        0

    SQL

    MEMORY_USED:     1468

    PAGECACHE_OVERFLOW:      899          MALLOC_SIZE:      168

    DATABASES

    pgsz     dbsz   Lookaside(b)          cache  Dbname

    4     1180             68        54/55/9  /data/data/com.android.browser/databases/browser2.db

    4     1180             25         1/60/2  /data/data/com.android.browser/databases/browser2.db (2)

    4     1180             65        90/23/7  /data/data/com.android.browser/databases/browser2.db (1)

    4       40             18         0/15/1  /data/data/com.android.browser/databases/webview.db

    Asset Allocations

    zip:/system/app/Browser.apk:/resources.arsc: 881K

    dumpsys的输出结果在不同版本的android系统可能不同。

    其中Pss Total是程序占用的PSS。

    3.检查程序状态

    liuhx@uc ~ $ adb shell cat /proc/939/status

    Name: android.browser

    State: S (sleeping)

    Tgid: 939

    Pid: 939

    PPid: 38

    TracerPid: 0

    Uid: 10013 10013 10013 10013

    Gid: 10013 10013 10013 10013

    FDSize: 256

    Groups: 1015 1028 3003 50013

    VmPeak:   215504 kB

    VmSize:   206780 kB

    VmLck:        0 kB

    VmHWM:    52108 kB

    VmRSS:    47748 kB

    VmData:    53616 kB

    VmStk:       84 kB

    VmExe:        8 kB

    VmLib:    29300 kB

    VmPTE:      156 kB

    Threads: 29

    SigQ: 0/6656

    SigPnd: 0000000000000000

    ShdPnd: 0000000000000000

    SigBlk: 0000000000001204

    SigIgn: 0000000000000000

    SigCgt: 00000002000094e8

    CapInh: 0000000000000000

    CapPrm: 0000000000000000

    CapEff: 0000000000000000

    CapBnd: fffffffffffffeff

    voluntary_ctxt_switches: 451

    nonvoluntary_ctxt_switches: 3563

    VmRss是程序占用的RSS

    4.检查程序各部分的内存占用。

    cat /proc/939/smaps

    这个命令的输出结果很长,下面是一部分结果:

    4b399000-4b39b000 r--p 0001d000 1f:00 560        /system/lib/libGLESv1_enc.so

    Size:                  8 kB

    Rss:                   8 kB

    Pss:                   8 kB

    Shared_Clean:          0 kB

    Shared_Dirty:          0 kB

    Private_Clean:         0 kB

    Private_Dirty:         8 kB

    Referenced:            8 kB

    Swap:                  0 kB

    KernelPageSize:        4 kB

    MMUPageSize:           4 kB

    4b39b000-4b39c000 rw-p 0001f000 1f:00 560        /system/lib/libGLESv1_enc.so

    Size:                  4 kB

    Rss:                   4 kB

    Pss:                   4 kB

    Shared_Clean:          0 kB

    Shared_Dirty:          0 kB

    Private_Clean:         0 kB

    Private_Dirty:         4 kB

    Referenced:            4 kB

    Swap:                  0 kB

    KernelPageSize:        4 kB

    MMUPageSize:           4 kB

    展开全文
  • Android减少内存占用专题Android减少内存占用专题Android开发经验:不要动不动就分配内存2011-03-21开发Andorid应用的开发者都知道,要尽量减少new关键字的使用,因为在手机上GC释放一次内存是一件恐怖的事情,如果...

    Android减少内存占用专题

    Android减少内存占用专题

    Android开发经验:不要动不动就分配内存

    2011-03-21

    开发Andorid应用的开发者都知道,要尽量减少new关键字的使用,因为在手机上GC释放一次内存是一件恐怖的事情,如果你查看一下调试记录,你会发现GC释放内存时有时会花上几百毫秒的时间可以想象,如果你开发的是游戏,这时你的FPS会下降到多少。

    虽然这个原则大家都知道,我们还是会看到一些开发者会出现类似问题,这又是为什么呢?呵呵,其实这是一些隐式的对象创建在作怪,看看以下代码:

    原则1:如果可能,请不要使用可变参数

    public void test(Object ... args) {

    for(Object aObj: args) {

    }

    }

    当外部调用时:

    test(1,"some string",false);

    系统会自动创建一个临时的数组对象类似于

    Object[] args=new Object[]{1,"some string",false};

    如果该函数经常被调用,则会极大增加GC的压力所以,如果可能,请不要使用可变参数。

    原则2:如果可能,请用StringBuilder代替字符串的相加

    我们来看一段代码:

    public void test2() {

    String tmp = "Hello!" + "some one.";

    }

    系统会将这句翻译成为如下格式:

    StringBuilder sb = new StringBuilder();sb.append("Hello!");sb.append("some one");String tmp = sb.toString();

    这本身没有什么问题,但如果是如下就有意思了:

    public void test2() {

    String tmp = "Hello!" + "some one.";

    tmp += "you age is " + 13;

    }

    这段代码等效于:

    StringBuilder sb1 = new StringBuilder();sb1.append("Hello!");sb1.append("some one.");tmp = sb1.toString();...StringBuilder sb2 = new StringBuilder();sb2.append(tmp);sb2.append("your age is ");sb2.append(13);tmp = sb2.toString();...

    这样是不是悲剧,本来StringBuilder被无意义的重复创建了多次,期间还在数字转换到文本时创建了String所以请直接使用显示的StringBuilder来链接字符串。

    原则3:尽量将不变的东东设置为常数,特别是字符串

    较有效的办法是,你的代码可以这样来写:

    public class TestClass {

    private static final String STR_HELLO = "Hello!";

    private static final String STR_YOU_AGE_IS = "you age is ";

    private static final int PIx100 = (int)(Math.PI*100);

    }

    当然,即使这样做了,后续对文本操作(如整数到文本转换)然是一件费时费力的或,原因是JAVA中,String是只读的,任何String的内容操作均隐含了new关键字。作者在实际工作中只好采取了更笨笨的办法,自己实现了一个GString类来替代常用的文本操作,其原理时使用预分配的字节内存,只在需要时才转换为String对象。

    Android进阶:性能优化篇

    2011-05-11

    一、OutOfMemoryError异常

    在使用Gallery控件时,如果载入的图片过多,过大,就很容易出现OutOfMemoryError异常,就是内存溢出。这是因为Android默认分配的内存只有几M,而载入的图片如果是JPG之类的压缩格式,在内存中展开时会占用大量的空间,也就容易内存溢出。这时可以用下面的方法解决:

    ImageView i = new ImageView(mContext);

    BitmapFactory.Options options=new BitmapFactory.Options();

    options.inSampleSize = 10;

    //貌似这个options的功能是返回缩略图,10即表示长和宽为原来的1/10,即面积为原来的1/100

    //缩略图可以减少内存占用

    Bitmap bm = BitmapFactory.

    展开全文
  • 在shell环境使用命令dumpsys meminfo得到如下信息:Applications Memory Usage (kB):Uptime: 5696643 Realtime: 9312875Total PSS by process:65448 kB: com.android.launcher (pid 627)48572 kB: system (pid 389)...

    在shell环境使用命令

    dumpsys meminfo

    得到如下信息:

    Applications Memory Usage (kB):

    Uptime: 5696643 Realtime: 9312875

    Total PSS by process:

    65448 kB: com.android.launcher (pid 627)

    48572 kB: system (pid 389)

    30549 kB: com.android.systemui (pid 491)

    14920 kB: com.anyisheng.doctoran:service (pid 4108)

    10548 kB: com.google.process.gapps (pid 699)

    7991 kB: com.android.phone (pid 593)

    7765 kB: com.sohu.inputmethod.sogou (pid 579)

    7745 kB: eu.chainfire.supersu (pid 4122)

    7719 kB: com.msg.parser (pid 4006)

    6477 kB: com.zdworks.android.pad.zdclock (pid 1470)

    6453 kB: com.google.process.location (pid 658)

    5961 kB: com.google.android.apps.genie.geniewidget (pid 5047)

    4947 kB: com.android.nfc (pid 611)

    4861 kB: android.process.media (pid 4851)

    3391 kB: com.android.location.fused (pid 668)

    Total PSS by OOM adjustment:

    48572 kB: System

    48572 kB: system (pid 389)

    43487 kB: Persistent

    30549 kB: com.android.systemui (pid 491)

    7991 kB: com.android.phone (pid 593)

    4947 kB: com.android.nfc (pid 611)

    65448 kB: Foreground

    65448 kB: com.android.launcher (pid 627)

    22685 kB: Perceptible

    14920 kB: com.anyisheng.doctoran:service (pid 4108)

    7765 kB: com.sohu.inputmethod.sogou (pid 579)

    4861 kB: A Services

    4861 kB: android.process.media (pid 4851)

    48294 kB: Background

    10548 kB: com.google.process.gapps (pid 699)

    7745 kB: eu.chainfire.supersu (pid 4122)

    7719 kB: com.msg.parser (pid 4006)

    6477 kB: com.zdworks.android.pad.zdclock (pid 1470)

    6453 kB: com.google.process.location (pid 658)

    5961 kB: com.google.android.apps.genie.geniewidget (pid 5047)

    3391 kB: com.android.location.fused (pid 668)

    Total PSS by category:

    90469 kB: Dalvik

    67037 kB: Other dev

    34923 kB: Unknown

    15275 kB: .so mmap

    13837 kB: Other mmap

    7081 kB: .apk mmap

    3652 kB: .dex mmap

    993 kB: .ttf mmap

    48 kB: .jar mmap

    20 kB: Cursor

    12 kB: Ashmem

    0 kB: Native

    Total PSS: 233347 kB

    KSM: 0 kB saved from shared 0 kB

    0 kB unshared; 0 kB volatile

    adb shell进入shell环境,利用命令ps查看应用对应的进程号

    radio     593   129   488612 29408 ffffffff 4016aee4 S com.android.phone

    nfc       611   129   485352 25936 ffffffff 4016aee4 S com.android.nfc

    u0_a29    627   129   540580 97224 ffffffff 4016aee4 S com.android.launcher

    u0_a10    658   129   490956 28188 ffffffff 4016aee4 S com.google.process.location

    u0_a84    668   129   466076 22456 ffffffff 4016aee4 S com.android.location.fused

    u0_a10    699   129   511348 32980 ffffffff 4016aee4 S com.google.process.gapps

    u0_a158   1470  129   470860 27256 ffffffff 4016aee4 S com.zdworks.android.pad.zdclock

    例如闹钟com.zdworks.android.pad.zdclock对应的PID为1470,

    然后利用命令

    dumpsys meminfo 1470

    返回

    Applications Memory Usage (kB):

    Uptime: 6191391 Realtime: 9807624

    ** MEMINFO in pid 1470 [com.zdworks.android.pad.zdclock] **

    Shared  Private     Heap     Heap     Heap

    Pss    Dirty    Dirty     Size    Alloc     Free

    ------   ------   ------   ------   ------   ------

    Native        0        0        0     2084     1778      153

    Dalvik     3796    11172     3016     9792     9491      301

    Cursor        0        0        0

    Ashmem        0        0        0

    Other dev        5       28        0

    .so mmap      481     1904      256

    .jar mmap        0        0        0

    .apk mmap      285        0        0

    .ttf mmap        0        0        0

    .dex mmap      432        0        0

    Other mmap      549       20       28

    Unknown     1038      764      992

    TOTAL     6586    13888     4292    11876    11269      454

    Objects

    Views:        0         ViewRootImpl:        0

    AppContexts:        3           Activities:        0

    Assets:        2        AssetManagers:        2

    Local Binders:        5        Proxy Binders:       12

    Death Recipients:        0

    OpenSSL Sockets:        0

    SQL

    MEMORY_USED:      129

    PAGECACHE_OVERFLOW:       16          MALLOC_SIZE:       62

    DATABASES

    pgsz     dbsz   Lookaside(b)          cache  Dbname

    4       60            351       354/23/9  /data/data/com.zdworks.android.pad.zdclock/databases/zdclock.db

    可以得到此应用的内存情况。

    展开全文
  • 问题Android开发时可以通过AndroidStudio提供的一些系列工具查看应用的内存占用,十分的方便。但是如果是对一个成品的已安装App快速查看内存占用呢,下面简单讲两种方式。方案一:top 命令top 命令是一个linux下的...
  • 我们可以在adb shell 中运行dumpsys meminfo命令来得到进程的内存信息。在该命令的后面要加上进程的名字,以确定是哪个进程。比如"adb shell dumpsys meminfocom.teleca.robin.test"将得到com.teleca.robin.test进程...
  • 1.内存占用对于智能手机而言,内存大小是固定的;因此,如果单个app的内存占用越小,手机上可以安装运行的app就越多;或者说app的内存占用越小,在手机上运行就会越流畅。所以说,内存占用的大小,也是考量app性能的...
  • 随着Android系统版本的更新(从Android 1.x~4.x),Android手机的内存容量也在不断的翻番中。从最早的256MB到最新的3GB,12倍的数值变化在彰显科技的进步之余,也潜移默化地给消费者灌输了一种信息:Android系统版本...
  • Android内存占用

    2021-06-04 13:23:19
    Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)USS- Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)一般来说内存占用大小有如下...
  • 本文首发于 vivo互联网技术 微信公众号链接:作者:Xu Jie不同Android版本,对一张图片的内存处理方式是不一样的,使用不正确会导致OOM的发生,这篇文章带你梳理内存占用情况,选择适合你的图片加载模式,解决OOM...
  • Android系统检测程序内存占用各种方法1.检查系统总内存liuhx@uc ~ $ adb shell cat /proc/meminfoMemTotal: 840868 kBMemFree: 457344 kBBuffers: 1744 kBCached: 203064 kBSwapCached:...
  • 前言在开发中,一些类似Bitmap的对象会占用很的内存,即使使用弱引用、代码优化及时释放,...作为程序员,我们可以通过分析,找出内存占用的模块,通过代码或者其他一些方式,减少内存使用。笔者用一个例子...
  • 不同Android版本,对一张图片的内存处理方式是不一样的,使用不正确会导致OOM的发生,这篇文章带你梳理内存占用情况,选择适合你的图片加载模式,解决OOM问题。一、背景你知道吗一张5.48MB,宽高像素为4896*6528的24...
  • 详细格式如下:CPU 152342 1421 28562 1600830 12389 553 273 0 0CPU后面的几位数字的含义分别是user 从系统启动开始累计到当前时刻,处于用户态的运行时间,不包含 nice值为负进程。nice 从系统启动开始累计到当前...
  • 1、内存了解在Android App的性能优化的各个部分里,内存方面的知识较多且不易理解,内存的问题绝对是最令人头疼的一部分,需要对内存基础知识、内存分配、内存管理机制等非常熟悉,才能排查问题。1.1 了解进程的地址...
  • 引用链接结果分析同一张图片,放在不同目录下,会生成不同大小的BitmapBitmap的长度和宽度越占用内存就越图片在硬盘上占用的大小,与在内存占用的大小完全不一样下面我会对上面几个问题一一解释。...
  • 1.内存占用对于智能手机而言,内存大小是固定的;因此,如果单个 app 的内存占用越小,手机上可以安装运行的 app 就越多;或者说 app 的内存占用越小,在手机上运行就会越流畅。所以说,内存占用的大小,也是考量 ...
  • 先声明一点,并不是...系统容量安卓系统并不是一直都这么,在安卓2.3的时代,安卓原生态系统安装包仅有60MB的大小,装到手机里面,也仅仅是占用一百多兆的空间。而到了现在,系统安装包动辄2-3GB,甚至更的有...
  • 原标题:专业解读:为什么安卓手机的内存越来越?首先,本文所说的内存即我们通常意义上所称的运行内存RAM,而非储存内存ROM。简单点来说,就是我们平常见到的6G+64G、8G+128G中前面的6G/8G。明白这一点,我们再看...
  • 服务器操作系统占用内存 内容精选换一换本节介绍将Windows操作系统的KVM实例变更为擎天架构实例的操作步骤。KVM实例:参考规格清单,查询对应规格的虚拟化类型。擎天架构实例:选择“通用计算增强型C7”。变更规格时...
  • 为鸿蒙系统发布至今已经过去了一年多的时间,外界都表示,华为有可能让鸿蒙系统成为继安卓以及IOS之后的世界第三移动操作系统,很多人都非常期待能够在华为手机用上鸿蒙系统。而就在今天华为终于亮剑,鸿蒙系统...
  • 众所周知......这就有可能会导致我们今天要讲的主角,图片占用内存。小伙伴可能会觉得开玩笑吧? 图片大小不是天生定好了的吗?比如1000*1000像素的照片,默认设置(ARGB_8888)全部加载入内存则...
  • 安卓手机因为其系统的开源性,导致很多使用安卓手机的用户总是抱怨自己的手机越用越卡,其中卡慢很重要的一个原因就是因为手机内存的不足,怎么解决安卓系统内存逐渐臃肿的问题呢?今天小编就来给大家安卓系统内存...
  • 使用安卓手机的小伙伴都知道如果手机内存空间不足,最有效的方法就是删除系统里的一些占空间的文件夹。但是手机里的部分文件夹都是英文名,里面有的是与操作系统息息相关的文件,如果删除就会导致手机无法正常工作...
  • Android内存限制

    2021-06-03 03:59:12
    2、单个应用可用的最大内存Android设备出厂以后,java虚拟机对单个应用的最大内存分配就确定下来了,超出这个值就会OOM。这个属性值是定义在/system/build.prop文件中的dalvik.vm.heapstartsize=8m它表示堆分配的...
  • 现在真实测试结果:1,为了搞清楚每个应用程序在Android系统中最多可分配多少内存空间,我们使用了真机进行测试,测试机型为魅族MX4Pro,3G内存。测试方法是直接申请一块较内存空间,看应用程序在最多申请多的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 69,441
精华内容 27,776
关键字:

安卓系统内存占用大

友情链接: 99768318.rar