うぃまの旅日誌

公開

Android端末の調査報告2 【Androidランタイム/Android14のメモリ消費】


( 前回の続きです )

Androidのスマホアプリは基本的に「Java」というプログラミング言語(ゲームを動かすために必要な指示のことです。)を使用して開発されています。
このJavaが少し特殊で、「Java仮想マシン(JVM)」と呼ばれるソフトウェアを介して端末にデータを送ります。(※Androidスマホの場合は、Androidランタイム[ART]が使用されています。)


【スマホの場合】
①他のプログラミング言語
    ↓
②OS上(ここではキャラストの画面)で読み取る

【Androidスマホの場合】
①Javaのプログラム
    ↓
②Java仮想マシン(≒Androidランタイム)でコードを変換
    ↓
③OS上で読み取る


※参考にしたサイト
・【Java入門】JVMとは?わかりやすく解説!
https://www.sejuku.net/blog/19871


Java仮想マシンは前述したようにソフトウェアのため、メモリ消費が比較的大きいという特徴があります。
また、上記の説明を見ていただくと分かるように、Javaのプログラムは直接ハードウェアやメモリを操作できないといったデメリットがあり、細かな制御が求められる作業は苦手なようです。
(※Androidランタイムはメモリ消費や処理の重さを改善しているそうなので、また少し違うかもしれません。)

それと、Androidランタイムはアプリのインストール時に、JavaのプログラムをOS上で読み取れるコードに変換するため、形としては【スマホの場合】に近いと思います。
キャラストでは月に数回メンテがあるので、その時の追加データも定期的にコード変換をしているのではないかと個人的には感じました。




⚠️ここからAndroid14の不具合に詳しく触れます。心の準備をしてから閲覧するようお願いします。


……○……○……○……○……
ここでAndroid14の話に戻りますが、ネット記事を見たところ、Android14はかなりメモリ消費が大きいみたいです。
Android14とAndroid13を統計調査した結果、「Android14は、Android13の2倍のメモリを消費している」とのことでした。


その記事には注意書きとして、必ずしも全ての機種でメモリ消費が2倍とは限らないと記載していました。ただ、そういった傾向はどの機種にもあり、特にメモリが不足気味の場合は、バックグラウンドのタスク落ちなどの問題が大きくなるかもしれないといった内容も書かれていました。

また、Android13の動作には、2GBのメインメモリ(RAM)と16GBのストレージ(ROM)が必要という記事も見つけました。
※追記: リンク先に記載されている「Android Go」は、軽量版Androidスマホのことです。通常のAndroidスマホはAndroid Goよりもメモリ消費が大きいです。

その内容を基準にすると、Android14が動作するためには約4GBのメインメモリは必要ということでしょうか…。(先に触れた記事には、調査結果の中に3.6GBのメモリを使用していることが記載されていました。)
※参考にしたサイト
・Xperia 5 IVは大丈夫?Android14のメモリ消費量はAndroid13の「2倍」との報告
https://sumahodigest.com/?p=25833

・Google、Android13で最小システム要件引き上げ-2GBのRAMと16GBのストレージ必須
https://www.mapion.co.jp/news/column/cobs2477399-1/#




……○……○……○……○……
これまで述べた内容をまとめると、"メモリ消費が大きい"という共通点があることが分かりました。私のイメージとしてはこのような流れになります。

①キャラストのデータ処理が重く、メモリ消費が大きい。
    +
②Androidランタイムが動作することで、メモリ消費が大きい(?)。
    +
③Android14によるメモリ消費が大きい。
    ‖
使用できるメインメモリがごく僅かになってしまう…。

また、Androidランタイムには、メモリにデータが溜まり過ぎた場合にメモリ解放(データを消去することです。)を行うガベージコレクション(GC)という機能が備わっています。


特にFull GCと呼ばれる機能はかなり処理が重く、過剰に実行するとフリーズの原因になってしまうようです。(※GCを行っている最中は、システムが一時停止します。)
この機能を先程の説明と組み合わせると、以下のようになりました。

    
使用できるメインメモリがごく僅かになってしまう…。
    ↓
メモリ解放のためにGCが作動するが、すぐにメモリを消費してしまう。
    ↓
何度もGCを実行した結果、システムの一時停止を繰り返し、アプリが無応答状態になる。(フリーズしてアプリが起動しない、ログインできない。)


私の憶測にはなりますが、フリーズを辛うじて免れたとしても、システムが一時停止する影響でかなりデータの処理速度が低くなるのではないかと思いました。
(前述した"キャッシュ競合"も発生していると仮定した場合、データの処理が完了するまでに想像もつかないほどの時間を要するのかもしれません。)



( 続きは明日に投稿します )




うぃま

コメント

1

1000いいね達成

夢子

ID: h66whv8i62c6

私はアンドロイド13(14アップデート前)も即落ち、4月初めに14アップデートしてそれからも即落ちしました

メモリは12GB ストレージは100GB以上開いていて、CPUはsnapdragon 8gen2です
一時、10月11月ごろは非常に快適だったんですけどね

あのメンテ後からはもうスマホからは入れないです
即落ちするゲームは今のところ、キャラスト以外ありません

したがってOS上だけの問題とは言い難く、もともとメモリをがっつりくうゲームではあるのかもしれないです 

デバックかけてみないとわかりませんが、JVMとキャラストゲーム展開して、その状態で今のスマホをことごとく落とすだけメモリを使うとなると、
PC上で仮想環境の状態でも 結構いいゲーミングPCでしかデバックできないくらいになりそうですけどそれなら 原因がすぐわかりそうなんですよね・・・

2

雪風

ID: q2f6ujspqbeu

私はAndroid13 スナドラ8Gen1
メモリは8GBストレージは60以上空いてます
メンテ後がにログイン画面で固まり何度トライしても入れません
ログインのコツは一度スマホの電源を落としてからキャラストログインするとうまく行きますがプレイ中はしばしば固まります
メンテから数日経つと安定してプレイ出来るようになります

11月12月快適で今年に入ってあの長いメンテから入れなくなり始めましたね

夢子さんと同じく他ゲーム
例えば原神も快適です
他ゲームで固まるバグは今まで無いです

3

旅日誌ビギナー

❄葬送の莉莉絲❄

ID: g9frswtys4cu

Xperia 1 IV プログラムを開けません
(Android 14 バージョン)

4

老舗人

キキナク

ID: 23rjmi8ftjsw

私はAndroid14で入れなくなり、Android9.0、空きメモリ2.2Gの古いスマホで無事入れて落ちる事なく問題無く動いてます。処理落ちは酷いですが……

5

うぃま

ID: rsdex3kt8uak

>> 1
夢子さんコメントありがとうございます。
確かにスペックの高いAndroid端末でも不具合が起きているとのことだったので、私も不思議に思いました。

キャラスト以外のゲームは問題なく開けるということは、キャラスト側で何か起きていますよね、きっと…。

もし、Androidの環境を準備したゲーミングPCではっきりとした結果が得られなかった場合は、スペック以外の問題もありそうですね。

調査していて思ったのは、不具合の症状の出方がユーザーさんによってかなり差があるので、それも原因究明を困難にさせている気がします。
今日の夜に投稿する旅日誌で、その辺りに触れているので何か参考になればいいのですが…。

6

うぃま

ID: rsdex3kt8uak

>> 2
雪風さんコメントありがとうございます。
メンテが絡むと不具合が起きやすいんですね…。ただ、打開策があるのは救いにも感じます。

以前、iPhoneの方でフリーズが頻発したのも長期メンテの直後でした。
何か関係性があるのかもしれません。

他のゲームは問題なく遊べるというのが、キャラストの処理の重さを際立たせてしまっていますね…。
内容自体は面白いと思うので、少しでも多くの方が快適に遊べるようになってほしいです。

7

うぃま

ID: rsdex3kt8uak

>> 3
❄葬送の莉莉絲❄さんコメントありがとうございます。
どうしても、Android14だとログインは厳しいんですね…。
うーん…、何か根本的な解決策があるといいのですが。

8

うぃま

ID: rsdex3kt8uak

>> 4
キキナクさんコメントありがとうございます。
Android9では問題なくログインできるんですね…!
貴重な情報ありがとうございます!

Android9ではメモリが控えめでもなんとか動かせるということは、Android14がそれだけ重いということに感じます…。
今回、不具合が起きているのもその影響のような気がします。

9

りっくん

ID: d24ueah4wn7i

動かないという報告ではないのですが…
android12 スナドラ865 メモリ8GB
android14 スナドラ888 メモリ8GB(3月末辺りまではandroid13で運用)
どちらもストレージの空が約30GB
今のところどちらでも性能相応・快適にプレイ出来ています

10

うぃま

ID: rsdex3kt8uak

>> 9
りっくんさんコメントありがとうございます。
現在の対応状況に"一部の端末でログインできない"と記載されていましたが、問題ない方は軽度の症状も見受けられなかったりするんですね…。

Snapdragon 8 Gen 〜を搭載した性能が高い端末でも不具合が起きているので、型番による差も一つの可能性としてあるのかもしれません。Snapdragon 888みたいな3桁数字だと大丈夫…のような。