写一个demo使得android开机自启动不断的申请内存

来源:互联网 发布:如何做淘宝直通车推广 编辑:程序博客网 时间:2024/05/08 15:06

由于在android上层中如果去不断的申请内存,会被kill调,无奈只能在kernel中申请。
在kernel-3.10.14/kernel/power/main.c中添加如下代码

static ssize_t get_memory_store(struct kobject *kobj, struct kobj_attribute *attr,const char *buf, size_t n){               unsigned long vaddr = 0;       vaddr = __get_free_page(GFP_KERNEL | __GFP_ZERO);//申请4k物理空间}static ssize_t get_memory_show(struct kobject *kobj,      struct kobj_attribute *attr, char *buf){   return 0;}power_attr(get_memory); #ifdef CONFIG_PM_WAKELOCKS        &wake_lock_attr.attr,        &wake_unlock_attr.attr,+       &get_memory_attr.attr,

这样在文件系统中的/sys/power/ 下生成get_memory 节点
写一个shell脚本加入的android自启动服务中。

  1 #!/system/bin/sh  2 while :   3   4 do  5 echo 0 > /sys/power/get_memory  6 done

死循环,每echo一个就申请4k内存。这样就可以不断的申请内存,当内存不够用时,android会kill掉相关进程来获取空间。最终android会重新启动。然后申请完,依次循环。获取kmsg信息

  1 #!/system/bin/sh                                                                                                                           2 cat /proc/kmsg >> /sdcard/Movies/diff
0 0
原创粉丝点击