eatmenmory android下运行的linux程序,模拟低内存环境

来源:互联网 发布:必备淘宝营销教程 编辑:程序博客网 时间:2024/05/22 08:18

为了达到测试内存紧张的目的,模拟低内存环境

需要在程序申请大块内存,把系统内存消耗掉

但是又不希望被android各种策略清理掉



eatmenmory.cpp

#include <stdio.h>  #include <cstring>char* pstr[512];int main(int argc, char** argv)  {  int a=10; scanf("%ld",&a);printf("start eatmenmory %d\n",a);int i = 512;for(i = 0; i < a; i++){        pstr[i] = new char[1*1024*1024];//(char*)malloc(sizeof(char)*1024*1024);        memset(pstr[i], 1, 1*1024*1024);printf("allocation eatmenmory %d\n",i);}printf("end eatmenmory");      for(;;);      return 0;  }  

Android.mk 不可以在windows下生产和编写,如果遇到编译不过的问题,请拷贝一个Android.mk来修改就好了

ninja: error: '/eatmemory.cpp', needed by 'out/target/product/C5_01/obj/EXECUTABLES/eatmemory_intermediates/eatmemory.o', missing and no known rule to make it

LOCAL_PATH:=$(call my-dir)  include $(CLEAR_VARS)  LOCAL_SRC_FILES:=eatmemory.cpp  LOCAL_SHARED_LIBRARIES:= libutils  LOCAL_LDLIBS    := -lm -llog #解决undefined reference to `__android_log_print'  LOCAL_MODULE_TAGS:=optional  LOCAL_MODULE:=eatmemory  include $(BUILD_EXECUTABLE)


生产出来eatmenmory bin文件可以在android运行了,想要多大内存就输入多大数值单位是M

如果是需要在开机启动就需要加入到init.rc启动就ok了

网络上提供的一个Android Low Memory 测试工具 Eat Memory 直接安装的APK,

存在被清理的情况,显示的内存剩余和free显示的不一致

下载地址:
http://blog.csdn.net/flypu/article/details/48145107








阅读全文
0 0