当前位置 博文首页 > 长歌:使用Qpython编写Python程序“耗尽”安卓设备内存
博文参考:https://blog.csdn.net/kongxx/article/details/51668547 感谢博主:kongxx
为了手机设备的稳定性,是不会允许耗尽内存这种操作的。因为有Android lowmemorykiller机制https://blog.csdn.net/u011733869/article/details/78820240,
感兴趣的同学可以了解一下这个机制。
内容来自百度百科:
《QPython》是一个脚本引擎,他整合了Python解释器、Console、编辑器和SL4A库。可以让你在Android设备上运行Python语言开发的程序。它就是Android上的Python!此外,它提供了开发工具能让你在Android设备上方便地开发Python项目。
一般手机应用商店会有该应用,直接去应用商店下载即可。
# -*-coding:utf8;-*-
# qpy:console
# qpy:2
import sys
import re
import time
import androidhelper
def print_help():
print 'Usage: Input Memory Size'
print 'For Example: 10MB'
print 'For Example: 1GB'
if __name__ == "__main__":
#下面两行代码可以看Qpython自带的程序里面的Helloworld.py
droid = androidhelper.Android()
target = str(droid.dialogGetInput().result)
if target:
pattern = re.compile('^(\d*)([M|G]B)$')
match = pattern.match(target.upper())
if match:
num = int(match.group(1))
unit = match.group(2)
if unit == 'MB':
s = ' ' * (num * 1024 * 1024)
else:
s = ' ' * (num * 1024 * 1024 * 1024)
time.sleep(10000)
else:
print_help()
else:
print_help()
支持输入GB和MB两种方式,没有空格比如直接输入 :1GB 或者1024MB,核心代码如下:
s = ' ' * (num * 1024 * 1024)
原理就是,空格占一个字节,字符串乘法是python的特性,通过申请一个多少GB或MB的字符串占用相应的内存。
操作前剩余内存有1.6GB,使用程序吃掉1G,剩余600MB左右,这里博主没有输入更多,因为手机安全策略问题,当内存不够时会Kill掉同步工具。