しばらくBlueStacksを使ってみていたので、その報告。
なお、以下に注意
- BETAでなく安定版です。(BLueStacks 3。2018/2/上旬現在)
以下、試したアプリ別に状況を。
OVERDRIVE / キラ☆キラ
PCノベルゲーの移植。有償。
一見、問題なくプレイできるが……BlueStacksを一度終了させたらセーブファイルが持ち越されていなかった。
たぶんだけど、ソフト起動ごとに隔離環境を作っている→ローカル保存ファイルが持ち越されないんだと思う。
この問題は他のソフトでも発生した。
Amazon Prime Video
ちゃんとPrime情報も扱われているっぽい。ローカル保存もできているかな。
dアニメストア
ダメ。起動するしアカウント認証情報も通るが、DRMが通らないようだ。
(つまりローカル保存もストリーム配信も見られない)
後日訂正: 一度dアニメストアを終了させると、ちゃんと認証通った。今は問題なし。
QuickCrawler
一見、問題なくプレイできるが……BlueStacksを一度終了させたら再びゼロからのスタート。
考察
データが反映されてないってことは、保存ができてないものがあるのだろう。
だがこれはBlueStacks側が悪いとは限らない。
ちょっと考察してみる。
Androidのローカルデータ保存には大きく分けて3つある。開発系に触るとすぐ出てくるけど、以下の通り。
ユーザーデータ領域
パソコンで言えば、各ユーザーフォルダの中にあるアプリケーションデータ領域。
プログラムインストール領域
プログラム本体がインストールされているところ。
Androidの場合、 /プログラム名 みたいなとこだったりするかな。
システム共通領域
/Downloads みたいに、そのスマホで共通のモノ入れ。
この三点のいずれかにデータは保管されている事になる。
推測になるが、古いノベルゲーの移植であるキラ☆キラはプログラムインストール領域にデータを保存するのではないだろうか?(要確認)
QuickCrawlerもそうだが、これらのゲームはAndroid専用ではない。それにデータ保存もあまりマルチユーザーなどを意識していないだろう。
一度でも汎用モノを作るとわかるが、いろんなターゲットむけに汎用として開発する場合、一番簡単なのが実行中のプログラム本体のあるフォルダにデータも保存する方法だからだ……ただし権限が許せばだけども。
あと、おそらく技術的にいえば、BlueStacksはLXCのような仮想マシンの仕組みを利用していると思われる。
推測だが、初回起動時に時間がかかっているのはBlueStacks用のAndroidカーネルをロードしているためで、その上で各アプリケーションは小さなノードを生成し、その上で走らせているのではないか?これが最も安全でもあるし。
これはわかりやすく言うと「BlueStacksを起動すると、パソコン上に一台のスマホが作成される。しかしそのスマホはBlueStacks終了時に捨てられる」ってことになる。
一見無駄なようだけど、お行儀の悪いソフトや悪意のツールが中をグチャグチャにするのを避けられる。また、残すべきデータがあるなら、終了時にそこだけ保存すればいいわけだ。
だからおそらくだが。
BlueStacksはユーザーデータ領域以外にデータを書き込まれても、終了時にそれを破棄してしまうのだと思われる。
データが保存されないアプリがあるのはそのせいだろう。