‘壹’ 安卓手机内存不足怎么办
安卓手机提示内存不足处理方法:一、存储空间不足(ROM):建议清理存储空间,如视频、照片、音乐以及微信、QQ聊天记录,直至有富余的可用空间(通常1GB以上不会再提示);二、运行内存不足(RAM):建议清理后台,将后台无需使用的程序彻底关闭或重启手机;三、明明有存储空间,但还是提示内存不足:建议升级手机系统,备份资料后将手机恢复出厂。
‘贰’ 安卓手机内存清理方法
现在,智能手机的应用越来越多,相信很多小伙伴们的手机上也是装着各种各样的应用。但是应用增多了内存的消耗也变大了,手机经常会出现内存不足的情况。下面是我分享的安卓手机内存清理方法,一起来看一下吧。
工具准备
安卓系统手机一台,已经获取root权限,安装有re管理器
操作方法
当手机提示内存不足警告的时候,我们不妨先进入手机“设置”--“SD卡和手机内存”,然后可以在里面看到SD卡已用容量和手机内存存储可用容量 (手机内存),一般提示手机内存不足的情况会在里面发现手机内存可用空间可能只有100M左右,甚至更低。当手机内存可用空间少于100M的时候一般就会 经常出现手机不足的'提示,给用户带来的影响主要有,不能再安装应用,并且无法接受短信,提示内存不足。
如果是手机中安装应用较多,建议多卸载一些无用的应用,令瓦进入手机应用管理,尽量将安装的应用从内存卡转移到SD卡中。我们尽量把照片、视频等放到电脑上面或者SD卡中,安装应用尽量安装到SD卡中。
打开re管理器,找到/data/local/目录,你会看到rights和tmp这两个文件夹【有的可能没有rights这个文件夹,不过没关系】,进入tmp文件夹, 你会发现以前安装失败或是安装途中重启后失败的软件都可以在这里找到。然后当然就是删掉掉它们啦,然后看看你的手机内存,顿时心情晴朗吧。
如此一来一般可以节省出不少手机内存,一般如果问题不严重,采用此种方法可以解决手机内存不足,另外建议大家清理下手机系统垃圾,这种软件有很多,比如QQ手机管家、360手机卫士等等都可以。平常多清理下内存,也可以避免这种情况发生。
手机内存与垃圾清理
如果有条件或者可以升级的朋友,可以讲手机内存升级更大一些,目前主流手机内存已经达到了1GB,高端手机内存可达到2GB,对于高端手机一般由于 手机内存较大,一般比较少出现手机内存不足,相比之下目前依然很多智能手机内存仅有512M,一旦安装应用过多,不注意优化就会出现手机内存不足的情况。
还遇到一种情况,手机每次开机都提示内存不足,不管我们怎么卸载软件还是转移软件,问题依旧,后面笔者备份了一下手机联系人、短信以及一些应用后,将手机恢复到出厂设置,然后还原手机数据,后面这种顽固的手机内存不足问题就彻底解决了。
‘叁’ android tolowercase警告 怎么清除
(1)选择android工程,右键Android Tools —> Clear Lint Markers
这种方式能够清除拦兆樱android工程里面的所有警告信息,但很遗憾,下一次打开eclipse的时候还会继续提示猜山,非常不爽!
(2)使用@SuppressLint标注忽略指定的警告
要使用该标注,需要引入annotations.jar,默认新建工程的时候都会有这个jar包。如下使用方式:
在类,方法,变量等前面加上标注 @SuppressLint("NewApi"),这个NewApi一般是具体的类,不用记,提示信息会自动加上。加上标注能够解决不再警告了,但代码貌似会变得冗余一些。总之没有简丛两全齐美的方法,我的做法是让他继续警告,程序能够正常跑起来就行!
‘肆’ 为什么运行android模拟器时会提示内存不能为writen
内存不能为"Read"或"written"(原因以及解决方案):
(【sql1981】原创答案,引用请说明原作者:sql1981,未通知原作者严禁复制本答案!!)
系统出现内存不能为"Read"或"written"的原因:
1、驱动不稳定,与系统不兼容,这最容易出现内存不能为 Read 或者文件保护
2、系统安装了一个或者多个流氓软件,这出现 IE 或者系统崩溃的机会也比较大,也有可能出现文件保护
3、系统加载的程序或者系统正在运行的程序之间有冲突,尤其是部分杀毒软件监控程序
4、系统本身存在漏洞,导致容易受到网络攻击。
5、病毒问题也是主要导致内存不能为 Read、文件保护、Explorer.exe 错误……
6、如果在玩游戏时候出现内存不能为 Read,则很大可能是显卡驱动不适合(这里的不适合有不适合该游戏、不适合电脑的显卡),也有可能是 DX9.0C 版本不够新或者不符合该游戏、显卡驱动
7、部分软件本身自身不足的问题
8、电脑轮启硬件过热,也是导致内存不能为 Read 的原因之一。
9、电脑内存与主板兼容性不好也是导致内存不能为 Read 的致命原因!
提供几种解决方案:
1、一次运行注册所有dll,方法如下:
开始——运行,输入cmd 回车在命令提示符下输入
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
这个命令你慢慢输,仔细点,输入正确的话会看到飞快地滚屏 否则……否则失败就是没这效果。回车后慢慢等(需要点时间1-2分钟) 都运行完再尝试之前的操作,看还有没有出现不能为read的现象。
2、在控制面板的添加/删除程序中看看你是否安装了微软NET.Framework,如果已经安装了,可以考虑卸载它,当然如果你以后在其它程序需要NET.Framework时候,可以再重新安装。
另外,如果你用的是ATI显卡并且你用的是SP2的补丁(一些ATI的显卡驱动需宴桐差要在NET.Framework正常工作的环境下)。这种情况你可以找一款不需要NET.Framework支持的ATI显卡驱动。
如果以上两种方法并不能完全解决问题,你试晌皮着用一下360安全卫士的的“IE修复”或其他类似软件,并可以查查是否有病毒之类的。〔微软NET.Framework升级到1.1版应该没问题了〕
3、引起这个问题的原因很多。一般来讲就是给系统打上补丁和更换内存、给内存换个插槽这3种方法来解决。[系统补丁只要到Microsoft Update网站在线更新就可以了!
‘伍’ Android中的内存泄漏和内存溢出.md
内存泄漏是因为持有对象长期引用,导致对象渗档无法被 GC 回收。
为了避免这种情况,我们可以选择在对象生念盯命周期结束的时候,解除绑定,将引用置为空,或者使用弱引用。
LeakCanary的内存泄露提示一般会包含三个部分:
第一部分(LeakSingle类的sInstance变量)引用第二部分(LeakSingle类的mContext变量), 导致第三部分(MainActivity类的实例instance)泄露.
当我们向丛高乱上寻找,一直寻找到GC Root的时候,此对象不会进行回收,例如,一个Activity。那么如果我们向上寻找,直到找到GC Root对象的时候,就说明它是不可以回收的,例如,我定义了一个int a;但是这个数据,我整个页面或者说整个项目都没有用到,则这个对象会被GC掉。
‘陆’ 用eclipse打开android模拟器的时候 当选超过1024mRAM的机型是 就会出现下面的警告
进入eclipse,创建AndroidTest Project时,点击Android Virtual Device Manager,New a AVD,其中,核腊穗 memory options默认是1024或者其他,要手动改自己所需要的,要不然就会出现错误,启改卜动不局让了。
‘柒’ Android Studio的JVM内存不足问题怎么解决
找到Eclipse安装文件下的eclipse.ini配置文件
通常里面都是写的-vmargs-Xms40m-Xmx256m
-vmargs:说明后面是VM的参数
-Xms40m:虚拟机占用系统的最小内存
Xmx256m:虚拟机占用系统的最大内存
-XX:PermSize:最小堆大小.一般报内存不足时,都是说这个太小,堆空间剩余小于5%就会警告,建议把这个稍微设大一点,不过要视自己机器内存大小来设置-XX:PermSize:最大堆大小.这个也适当大些,另外把里面的参数改为:
-vmargs
-Xms128M
-Xmx512M
-XX:PermSize=128M
-XX:MaxPermSize=256M
1、设置Eclipse内存使用情况
修改eclipse根目录下的eclipse.ini文件
-vmargs //虚拟机设置
-Xms40m
-Xmx256m
-XX:PermSize=128M //非堆内存设置
-XX:MaxPermSize=256M
2、JVM内存设置
打开eclipse window-preferences-Java -Installed JREs -Edit -Default VM Arguments 在VM自变量中输入:-Xmx128m -Xms64m -Xmn32m -Xss16m3, Tomcat内存设置
打开Tomcat根目录下的bin文件夹,编辑catalina.bat 修改为:set JAVA_OPTS= -Xms256m -Xmx512m下面是这几个设置的一些背景知识:
1 堆(Heap)和非堆(Non- heap)内存
按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给 自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法 的代码都在非堆内存中。 2 堆内存分配
JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存 小于 40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、 -Xmx相等以避免在每次GC 后调整堆的大小。
3、非堆内存分配
JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。
4、JVM内存限制(最大值)
首先JVM内存首先受限于实际的最大物理内存,假设物理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然 可控内存空间有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统 下为 2G-3G),而64bit以上的处理器就不会有限制了