mic*_*mit 16 camera android cordova
我正在研究几个Phonegap项目.在其中一些我正在使用相机功能.
我对此问题感到困惑(来自Phonegap文档):
Android Quirks
Android使用意图在设备上启动摄像头活动以捕获图像,而在内存较低的手机上,Cordova活动可能会被杀死.在这种情况下,当cordova活动恢复时,图像可能不会出现.
我经常在我的一个测试设备上遇到这个问题(HTC One X).它非常饱满,非常适合测试.
我注意到有一个替代插件:https://code.google.com/p/foreground-camera-plugin/这个问题.但我尽可能地避免使用插件......(可以轻松地移植到其他平台).它可用于Phonegap 2.4.0,我正在使用Phonegap 2.9.0
我已经使用了文件URI而不是数据(以避免内存问题).
我的问题是:有没有人知道Android何时决定杀死其他活动(比如Cordova,这是Phonegap非常需要的).在什么级别的免费记忆?(百分比,MB).所以我可以提前检查并警告用户.
当然,我希望这个问题得到解决......但似乎不会很快得到解决......
在第一个评论后编辑
我无意解决真正的问题,我发现这不是真的可能.这是Android和Phonegap之间的事情.我只需要知道是否有可能警告用户这种情况会发生.因此,用户可以在继续之前杀死其他一些应用程序...那么这是什么时候发生的?什么时候android认为没有足够的内存来让这件事情继续下去?那是我的问题.
编辑2013年11月29日
由于AustinAllover提供的链接,我现在知道这不仅仅是一个Phonegap问题......如果内存太少,Android相机似乎会杀死所有Java应用程序...所以这个问题比Phonegap/Cordova更通用...
不确定你的问题是否有一个好的答案,但我会尝试。
当应用程序被杀死以释放内存时,这取决于很多因素。第一个也是主要因素是相机活动需要运行多少。大多数设备(尽管有所不同)上的相机应用程序本身大约为 10MB。这是内存中应用程序的大小,而不是运行活动时所需的大小,从逻辑上讲,它会更大一些。它还取决于相机本身以及存储实际照片所需的内存量,假设照片存储时约为 4MB,原始照片约为 20MB。这为我们提供了运行应用程序的大约30MB上限,尽管这只是猜测,我稍后会亲自检查并编辑它。
关于与 Android 相关的内存的很好的参考,您可以在这里找到https://01.org/android-ia/user-guides/android-memory-tuning-android-5.0-and-5.1 他们建议始终拥有500MB或更多内存可用于运行应用程序,这当然适用于您正在运行的所有应用程序,而不是某一特定应用程序。
当 GC 开始从内存中删除应用程序时,这种情况非常接近内存的实际边界,当少于 5% 仍然空闲时,这个值是根据我自己的实验得出的。首先,它会杀死仍在缓存中但不再需要的应用程序,只有作为最后的手段,它才会杀死活动的应用程序。
我的假设是,您的应用程序将在大约 50MB 可用内存以下被终止,但我必须强调,这里有很多假设,并且没有通用的方法来告诉您针对每种相机和每个版本的每种设备的良好答案安卓的。
希望有帮助,担心没有帮助。
归档时间: |
|
查看次数: |
2225 次 |
最近记录: |