android.com によると、Java で作業している場合、使用できる最大メモリは 16 MB です。少なくとも、それはデバイスがサポートするはずのものです。古い電話を使用している場合は、それ以上取得できないことに気付くでしょう。代わりに OutOfMemoryError が返されます。NDK を使用して同じことをしている場合は違います。私のアプリケーションでは、50MB以上を取得しようとしていますが、これまでのところAndroidはそれで問題ありませんでした.
私はandroid.comでそれに関連するものを見つけていません。
Javaのように制限はありますか?
はいの場合: 制限は何ですか?
「いいえ」の場合: そのための適切な値は何ですか?
問題は、そのサイズに応じてコードをビルドする必要があることです。
[編集:] Seva Alekseyev が提案していたことを試してみました。
root@android:/ # ulimit -a
ulimit -a
time(cpu-seconds) unlimited
file(blocks) unlimited
coredump(blocks) 0
data(KiB) unlimited
stack(KiB) 8192
lockedmem(KiB) 64
nofiles(descriptors) 1024
processes 7806
flocks unlimited
sigpending 7806
msgqueue(bytes) 819200
maxnice 40
maxrtprio 0
resident-set(KiB) unlimited
address-space(KiB) unlimited
root@android:/ # ulimit -v
ulimit -v
unlimited
root@android:/ #
(「alloc」または「new」を使用して) 要求しているメモリは、仮想メモリ (ulimit -v) です。それで、私がどれだけ得できるかを把握する機会はありませんか?!