Android上のアプリケーションはJava言語で開発できるが、PCやサーバー向けのJava仮想マシンとは異なる「Dalvik仮想マシン」上で動作する。Dalvik仮想マシンは、モバイル向けに特化されているのが特徴である。 Androidアプリケーションの開発では、Javaの開発現場で培ってきた資産やノウハウを生かすことができる。だが、基本的にPC上で動作させるJavaアプリケーションと同様に考えてしまうと、思わぬ落とし穴に陥ることになる。 そこで、主にメモリー管理の面からJava仮想マシンとDalvik仮想マシンの違いを見ていくことにする。 両者とも、メモリー管理はガベージコレクタ(GC)が担当する。ヒープ領域に空きがない場合、不必要なオブジェクトを回収して空き領域を作るのがGCの役割である。Java仮想マシンでは「世代別GC」という方式を採用しているが、Dalvik仮想マシンは「マーク
![[Android編]短命なオブジェクトを作ってはいけない](https://images.weserv.nl/?url=https%3A%2F%2Fcdn-ak-scissors.b.st-hatena.com%2Fimage%2Fsquare%2Fbed39b5962a5d552c95b6d796db8f55e72d32943%2Fheight%3D288%3Bversion%3D1%3Bwidth%3D512%2Fhttps%253A%252F%252Fxtech.nikkei.com%252Fimages%252Fn%252Fxtech%252F2020%252Fogp_nikkeixtech_hexagon.jpg&q=12&output=webp&max-age=110%3F20220512)