安卓堆栈大小

4

我该如何获取和更改我的Android应用程序的堆栈大小(即使是主线程)。

2个回答

2

主线程栈大小是在固件中设置的,除非修改自己手机的固件,否则无法进行修改。正如Strong先生所指出的那样,对于您分叉的线程,您可以设置自己的堆栈大小。


1
我该如何获取当前线程(特别是主线程)的堆栈大小? - Arutha
1
我不相信在运行时有这样的方法。根据Google员工的说法,至少截至去年4月,主应用程序线程堆栈大小为8KB:http://groups.google.com/group/android-developers/browse_thread/thread/d880c3d5777127d9/f7465bd649f641cd - CommonsWare
似乎在1.6版本中有所改变,因为我在1.5中遇到了StackOverFlowError,但在1.6中没有。我没有找到任何关于堆栈大小增加的信息。 - Arutha
2
栈大小可能保持不变,但在Android中使用了更多的堆栈空间。这也发生在1.5版本中。如果StackOverflowException在Android绘制UI时出现,则视图层次结构太深。使用hierarchyviewer工具检查层次结构并减少深度。10应该是安全的,15可能会引发异常。 - CommonsWare

1

据我所知,-Xss可以用作命令行来更改主线程的堆栈大小。如果不使用命令行,则应用程序框架将使用默认大小。在这种情况下,如果您需要更多的堆栈,您需要启动一个线程(使用此ctor)来完成工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接