2014年9月27日土曜日

スマホ・タブレット:一部のアプリが動作しないか、不安定な挙動をする

症例:
  • アプリストアで購入したスマホ OS 向けアプリが起動しない
  • アプリを起動すると動きがおかしい、十分に動作しない
チェックするポイント:
  • 端末がアプリの動作保証品か
  • 端末の基本ソフトが必須・推奨バージョンか
  • バックグラウンドのアプリが干渉していないか(特にメモリクリーナー、省電力補助系)
  • ウィジェットなどの常時起動アプリがメモリを圧迫していないか
  • インストール済みの同種・類似アプリとの相性問題がないか
  • Wi-Fiやモバイル回線の切断が頻発していないか
  • 不審なアプリがインストールされていないか
  • 端末やアプリのサポート情報に障害発生の告知がないか
  • (デバッグ版のみ)許容されている範囲を超えるデータが使用されていないか
説明:

 スマホなどで多いのが、「OOというアプリがXXという端末で動作しない/不安定な動きをするがどうすればよいか」という質問です。

自身もアプリ開発を試してみようと色々調べていたのですが、PC 以上に端末(のOS)とアプリ、アプリ間の相性問題が大きいようです。
もちろんそういった基本的な相性問題のほかにも、端末の使い方の問題だったり、アプリの入れ方だったりといったユーザー操作の問題というのもあるようです。


<アプリと端末の相性>

 まず真っ先に確認するのは、「使用している端末がアプリの動作保証品か」と「端末の基本ソフトが必須バージョン以上・推奨バージョン以下か」ということです。
これはアプリストアやアプリメーカーのサイトなどで確認できます。
また一般のクリエーターがリリースしているものなどは、ブログや Facebook、Twitter といった双方向性のあるメディアを通して情報公開していることもあります。

いくら性能の良い端末を使用していても、それがアプリの動作保証外ならまともに動く可能性は低くなります。
とはいえ、最近では余程古い端末でない限り最低動作保証バージョン未満のものはありません。
もし動作必須以上のバージョンに出来ない場合は、端末を買い換えたほうが良いでしょう。

しかし逆に、新しすぎると搭載されている基本ソフトにアプリの方が追いつかないという残念な状態になることがあります。
そうなると、パソコンと違って基本ソフトのダウングレードには対応していませんので、うっかりアップグレードしてしまうとアプリを動かせない端末が出来上がってしまう可能性があります。
一応端末のリカバリ機能で古いバージョンに戻せる可能性はありますが、正しく出荷直後の状態に戻せる保証はありません。


<常時起動アプリ、状況監視アプリの影響>

 端末や基本ソフトに問題ないなら、次に疑うのはウィジェットなどのスタートアップアプリやメモリクリーナーなどの状況監視アプリです。

ウィジェットなどは画面が華やかになったり便利な機能が追加されたりといいことづくめのようですが、起動すればしただけ端末のメモリを消費します。
これは動く壁紙などでも同じことが言えます。(あれも一応アプリの一種なので)
またレアケースではありますが、不具合などによって強制終了してしまった際に不正なデータをメモリに残してしまい、その残骸がメモリを圧迫してしまうこともあります。
当然ながら、このリスクは起動させるアプリを増やせば増やすほど高まります。

なお、特にそういったものを起動していないのに異常な動作を繰り返す場合、どこかで不審なアプリを拾ってきてしまった可能性があります。
念のため、信頼できるセキュリティソフトでアプリスキャンをしておいたほうが良いでしょう。
その際は、セキュリティ上問題ないのに「ウィルス、トロイ発見」と騙るJAROアプリには注意です。

 「それならメモリクリーナーを入れれば良いんじゃ?」と思うでしょうが、それらの状況監視アプリにもリスクが有ります。

常駐型のメモリクリーナーや省電力補助アプリの多くは、上記のメモリ圧迫を監視してこまめに解消してくれます。
しかし反面、メモリ解放をしてほしくないアプリ、例えばゲームや動画再生アプリなどについても「悪影響を与える」と判断されれば容赦なくメモリ解放の対象になってしまいます。
その結果、アプリの表示データが崩れたり、ハングアップや強制終了といった最悪の状況に陥ることがあるのです。

一応それらのアプリには「監視対象から除外するリスト登録」という機能があるので、監視アプリを導入後にアプリ動作に影響が出た場合はそのリストに登録して様子を見てみましょう。
ほとんどのケースでは、それによって動作不具合が解消できます。

ちなみに、同じ性質を持つ状況監視アプリが複数入っているとそれらが「食い合い」をして暴走の元になることがあります。
さらにアプリの中には、1つインストールしていると許可無く別のアプリを追加してしまう不届き千万なものもあります。
セキュリティソフトやメモリクリーナーを導入する場合は同一メーカーのものを使用し、すでにプリインストールアプリがあるならそれを使用した方が良いでしょう。
もし万が一プリインストールのものを使用したくないなら、必ず設定画面で該当アプリを「無効」にしておきましょう。


<外部環境の障害などの影響>

 もし端末側に以上が見られない場合は、Wi-Fi通信やモバイル回線などの通信回線、通信相手のサーバーなどに障害が発生している可能性があります。

念のため通信回線のOFF/ONを行って端末の通信モジュールを再起動してみましょう。
Wi-Fi回線であれば、端末ではなくアクセスポイントなどの中継機器の再起動が必要な場合もあります。

それでも解消しない場合、通信端末キャリアやアプリメーカーのサポート情報を調べてみましょう。
もしそちら側に障害が発生していた場合は、何らかの障害情報がアナウンスされているはずです。
特に昨今はサイバー攻撃などの事案もあるため、
ただし障害発生が局所的であったり、そもそもアナウンスするサイトそのものへの攻撃だったりした場合、情報が掲示されるまでにかなりの時間を要することもあるので注意が必要です。


<開発版アプリの問題>

 通常はありえないケースですが、アプリのプログラムや内蔵データの問題で異常動作をすることもあるようです。

これはアプリ開発者側が遭遇する問題で、パソコン向けソフトと同じように設計開発してしまったために起きてしまう問題が多いようです。
いくらモバイル端末の性能が高くなったとは言え、そもそも基本ソフトが異なるのでパソコン(もしくは同じ基本ソフトで動くタブレット端末)向けソフトと同じようには動かせません。
同様に、パソコン上では許容されるデータがモバイル端末上では異常動作の原因になる、ということもなくはありません。

通常はリリースビルドを行う際に弾かれる(アプリが作れない)のでわかるのですが、デバッグビルドと呼ばれる開発版ではほとんど弾かれません。
もし個人がリリースしているアプリを導入する場合、この点がクリアされていない可能性があるので注意しましょう。
通常はストアを経由しないアプリを導入することはできませんが、端末設定で許可していると導入できてしまうので注意しましょう。
ちなみにこの設定だと、マルウェアやウィルス拡散アプリなどを導入してしまうリスクも上げてしまいます。

0 件のコメント: