1. 安卓手机的rom和ram怎么分区
安卓手机的rom和ram区分:
ROM和RAM介绍。
ROM是英文ReadOnlyMemory的首字母的缩写,也就是说存储器只能读不能写。 RAM是英文RandomAccessMemory的首字母的缩写,则是可以随机读写的意思。但是,在计算技术突飞猛进的这几年里, RAM和ROM的定义也发生了不少的改变。现在ROM通常指固态的存储器,或者说,不掉电。系统停止供电的时候它们仍然可以保持数据。而RAM通常都是断电电之后就没有数据的,典型的就象计算机的内存,需要系统重新启动的时候从硬盘重新载入数据。
手机上的ROM。
不过手机上的ROM和我们一般意义上定义的ROM不同,因为虽然手机上的ROM是可以储存东西,但是我们在一般情况下只能读取不能写入,这也就是为什么其叫做“只读储存器”的原因,只有在特定的专业条件下,我们才可以往ROM里面写入东西。鉴于ROM的这种特殊性,很多手机的系统文件都存储在手机的ROM里,这样在一般情况下我们就无法修改手机的系统文件,不过目前通过一些特殊的手段,我们也可以实现往ROM里面写入东西,这种情况其实也就是我们经常所说的刷机、刷系统,因此这也被大家叫做刷ROM。综上所述, 手机上的ROM是指手机系统及可安装程序的空间,ROM越大,能直接在系统里安装的程序就越多,相当于我们电脑的C盘。 当然ROM空间也是越大越好。不过现在很多程序都可以完全安装到内存卡(自从不可添加内存卡的手机出现,软件大多被安装在内置SD卡里面。甚至有些大ROM的手机都分出了足够大的DATA分区,用来存储安装程序。当然这都是题外话,我们今天要说明的是区分ROM和RAM,其他的就不在赘述了),所以这个指标对于一个手机配置来说就看来不是那么重要了,但是也不能太小,太小了,我们知道,安卓手机系统版本经常要升级,新版本有时候需要更大的ROM空间才能存储,我们选择手机的时候,看当下情况,始终就行,只是让大家知道ROM的大小和手机运行快慢没有绝对的关系。
手机上的RAM。
手机上的RAM是指系统运行及软件运行可需要的临时空间,跟电脑上的内存是相同的意思。 RAM越大,可同时运行的程序就越多,一些需要大量RAM的游戏也越流畅。同等cpu配置的情况下,RAM越大运行就越流畅。同样的道理,开机系统服务及一些软件自动后台运行,都会占用一部分RAM空间。如果厂家说明是2GB,实际开机后你看到的却远远少于2GB,这也是正常的。这个RAM是越大越好。当然,RAM越大价格肯定越贵。
手机上RAM的存储机制与特点。
再来跟大家谈谈android系统的RAM内存分配机制,其实在用安卓手机的时候,不用太在意剩余内存,Android上的应用是java,当然需要虚拟机,而android上的应用是带有独立虚拟机的,也就是每开一个应用就会打开一个独立的虚拟机。如果你知道java,就能更清楚这机制了。其实和java的垃圾回收机制类似,系统有一个规则来回收内存。进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。当然这个值默认设置得很小,所以你会看到内存老在很少的数值徘徊。但事实上他并不影响速度。相反加快了下次启动应用的速度。这本来就是android标榜的优势之一,如果人为去关闭进程,没有太大必要。特别是使用自动关进程的软件。到这里有人会说了,那为什么内存少的时候运行大型程序会慢呢?其实很简单,在内存剩余不多时打开大型程序,会触发系统自身的调进程调度策略,这是十分消耗系统资源的操作,特别是在一个程序频繁向系统申请内存的时候。这种情况下系统并不会关闭所有打开的进程,而是选择性关闭,频繁的调度自然会拖慢系统。所以,有个更改内存阀值的程序可以有一定改善。但改动也可能带来一些问题,取决于值的设定。 那么,进程管理软件有无必要呢?有的。就是在运行大型程序之前,你可以手动关闭一些进程释放内存,可以显着的提高运行速度。但一些小程序,完全可交由系统自己管理。
android后台原理。
那么,如果不关程序是不是会更耗电。说说android后台的原理,你就明白了android的应用在被切换到后台时,它其实已经被暂停了,并不会消耗cpu资源,只保留了运行状态。所以为什么有的程序切出去重进会到主界面。但是,一个程序如果想要在后台处理些东西,如音乐播放,它就会开启一个服务。服务可在后台持续运行,所以在后台耗电的也只有带服务的应用了。这个在进程管理软件里能看到,标签是service。我们可以把带服务的进程用进程管理软件关闭就可以了。没有带服务的应用在后台是完全不耗电的,没有必要关闭这种设计本来就是一个非常好的设计,下次启动程序时,会更快,因为不需要读取界面资源,何必要关掉他们抹杀这个android的优点呢。
2. 如何解除手机设备封禁
1、首先,找到手机桌面上系统自带的【设置】功能并且点击进入设置主页面。
3. Android内存的相关排查方法
mpsys meminfo 是Android系统提供的查询内存命令,用该命令可以看到:
每个进程占用的物理内存大小
系统内存分布状态,包括
总的可用物理内存 Total RAM
当前可用物理内存 Free RAM
已用物理内存 Used RAM
不可见内存 Lost RAM
比如输入该命令后输出如下日志:
该命令打印的最后一部分,反应系统级别的内存状况:
Total RAM: 1015868 kB
Free RAM: 638914 kB (105418 cached pss + 180168 cached + 353328 free)
Used RAM: 211428 kB (186096 used pss + 8008 buffers + 520 shmem + 16804 slab)
Lost RAM: 165526 kB
Tuning: 96 (large 256), oom 20480 kB, restore limit 6826 kB (high-end-gfx)
里面某些字段的意义需要注意:
mpsys meminfo
OOM Killer(Out Of Memory Killer) 是Linux当中,内存保护机制的一种。当物理内存几乎耗尽而又需要分配新内存时,会杀掉一些优先级低的进程,释放内存。
LowMemoryKiller 是Android的内存保护机制。当物理内存低于阈值,就会杀掉一些优先级低的进程,释放内存。
联系:LowMemoryKiller 用到了 OOM Killer 的评分机制
区别:LowMemoryKiller 是通过阈值触发,OOM Killer 是分配内存失败时触发
评分原理:
oom_adj,代表进程的优先级, 数值越大,优先级越低,越容易被杀。系统分16个级别(取值范围[-16, 15]整数,不连续)
通过 cat /proc/xxx/oom_adj 查看,其中xxx是进程号
oom_score_adj: 在 oom_adj 基础上的评分,取值范围[-1000, 1000]
通过 cat /proc/xxx/oom_score_adj 查看,其中xxx是进程号
阈值查看,以98mv100为例:
cat /sys/mole/lowmemorykiller/parameters/minfree
1024,1536,2048,3072,3584,4096
cat /sys/mole/lowmemorykiller/parameters/adj
0,58,117,176,529,1000
上诉数值表示:可用内存低于 4096 4K 时,杀掉 oom_score_adj>=1000 的应用;可用内存低于 3584 4K 时,杀掉 oom_score_adj>=529 的应用,以此类推。
因此,客户可以通过调整 minfree 的阈值来触发 LowMemoryKiller 更频繁地杀应用,从而为高优先级应用省下内存。
在 mpsys meminfo 中,GPU内存被统计到了 Lost RAM 里面了。
因此,当应用占用GPU内存过高时,不会体现在 Used RAM 里面,而是体现在 Lost RAM 中。反过来,如果发现有问题的时候 Lost RAM 很高,就需要看看GPU内存使用情况了。用以下命令:�
mount -t debugfs debugfs /sys/kernel/debug/
cat /sys/kernel/debug/mali/gpu_memory
130|root@MR820:/ # cat /sys/kernel/debug/mali/gpu_memory
Name (:bytes) pid mali_mem max_mali_mem external_mem ump_mem dma_mem
其中mali_mem列就是应用占用的GPU内存