2015年5月5日火曜日

スマホ・タブレットトラブル:Androidアプリの動作がおかしいケースの対処

 色々と便利で重宝するスマホやタブレット端末。
さまざまなツールやゲームなどのアプリをインストールして活用している人も多いかと思います。
しかし、よく使うがゆえに遭遇しやすいのが「アプリ動作がおかしくなる」「アプリが起動しなくなる」という動作トラブルです。


<原因はさまざま>

その原因は、事故などによる物損を除いた場合、以下のものが考えられます。
  • アプリ自体のバグや仕様不備による動作不良
  • 偶発的なデータ書き込みミス
  • ゴミデータなどの容量圧迫に伴うメインデータの断片化
理由の大半を占めると思われるのが、アプリバグ・仕様不備によるものです。
これは言うまでもなく、アプリプログラムが本来の想定と異なる動作をし、システムクラッシュやデータの誤記を行ってしまう、というものです。
状況を改善するには、修正されたアプリを配信してもらう以外にありません。

なお厄介なことに、「アプリを動かすためのアプリ」の方に不具合が起きていても、実行中のアプリに不具合があったと報知されるケースも有ります。
例えばGoogle Playアプリは動作させるために「開発者サービス」というプログラムが必要ですが、これが破損していたり何らかの理由で更新されず古いままだったりすると最新のアプリがうまく動作しなくなります。
特に最新の動作環境で開発を行う余裕のある大手メーカーアプリの場合、すべてが最新の状態でのみ動作保証をしていますので、「アプリ更新直後に動かなくなった」などのケースが起こりやすい傾向にあります。

残りの2つは、余程のことがない限りは遭遇しないと思われるものです。
前者はシステム負荷が高かったり通信状況が悪かったりといった要因によって必要なデータの修得や書き込みに失敗し、あとでそのデータにアクセスしてエラーになる、というものです。
後者は端末をとっかえひっかえするスマホなどではほぼ無いでしょうが、同じ端末を長年にわたって使用するとデータの消し書きで出来た穴に新たなデータが書き込まれ、読み出しでトラブルが起きやすくなる、というものです。


<問題を解消するには>

 まずは「アプリの更新」です。

気まぐれな機能追加や諸々の都合による仕様変更などがない限りは、ほとんどが不具合修正です。
煩わしいかもしれませんが、出来る限り更新しておくようにしましょう。
まれにそれが原因で別の不具合が起きるようになることもありますが、それはそれで割り切るしかないでしょう。

ただ、破損アプリの修復やプリインストールアプリの再更新などの場合に、アプリが正しく入っていると勘違いされて再インストールできなくなることがあるようです。
こういった場合でも、余程変なところからインストールを行っていない限りは再インストールできるルートが残っています。

例えばGoogle Playの場合、スマホアプリの方では更新できない状態でもウェブサイト、特にパソコン用ページからはインストールできるようです。
通常はパソコンなどからのリカバリ用ですが、スマホ用ブラウザの多くにはパソコン向けページを閲覧できる設定がありますので、その状態でページを開けばスマホからでも再インストールができます。
(設定によっては、そこからさらにスマホ用Playストアを開かないと更新されないこともあるようですが)

ちなみにiPhoneなどのiOS端末では、パソコンなどに連携アプリの「iTunes」をインストールして端末を同期しておけば、そこからアプリデータを書き戻すことができます。
iTunesにはストア機能もあるので、そこから購入/ダウンロード済みのアプリを再取得することも可能、なはずです。


<予防するにはどうするか>

もしデータに異常が発生した場合、対処方法はほとんどありません。
アプリの書き戻しにせよ、データの書き戻しにせよ、そのほとんどはデータ同期したパソコンやサーバーからの再コピーになります。
そういった対応をしていない場合、スマホなどの端末単体だとほとんど不可能に近いと言って良いでしょう。

もし仮に端末が動作不良になっても良いように、端末単体でできる最低限度の対処をしておきましょう。
  • パソコンなどに端末をメンテナンスするアプリを導入し、同期しておく
  • アカウントデータ管理サーバーと定期的に同期しておく
とにかく、バックアップは基本中の基本です。
通常はサーバー上にアプリやアカウントのデータを同期保存する設定となっているはずですので、基本はその設定を有効のままにしておきましょう。
またパソコンなどと連携させるデータ管理アプリがある場合は、それを導入して定期的にバックアップをとっておくのも良いでしょう。

ただアプリデータのなかには、端末にしか保存せずサーバー上にはバックアップしないようなものもあるようです。
可能なら複数のバックアップ手段を用意して、確実にリカバリできるようにしておきましょう。

 データの破損や断片化情報をチェックしたい場合は、パソコンのシステムチェックツールを使うと良いでしょう。
システム以外のデータ領域であれば、端末をUSBリムーバブルディスクモードで接続してやればパソコンとおなじ感覚でシステムチェックができます。
この辺りの方法についてはさまざまなサイトで詳しい情報が解説されているので、ここではあえて書きませんが、以下の方法があります。
  • ディスクデフラグして断片化修復
  • USBデータをPCへバックアップ後、ディスク領域をフォーマットして再度書き込む
  • システムスキャンしてエラー情報を修正
  • ディスクチェックで回復されたデータを破損データと置き換えてデータ復旧
システム領域にあるデータやOSが破損してしまった場合は、ユーザーデータごと端末を初期化してしまう以外に手がありません。
その場合、OSのリカバリ機能やメーカー提供の初期化ツールなどを使用することになります。
これらのプログラムは端末を工場出荷状態、つまり文字通りの「まっさら」な状態に戻してしまうため、購入後のアレヤコレヤは完全に消え失せてしまうのです。

スマホやタブレットといったモバイル端末は持ち運ぶのが前提ですので、いつ何時壊れるとも限りません。
こまめにバックアップしておくほうが良いでしょう。


<意外な理由:アプリが勝手に増える!?>

 実はデータ破損以外にも、思わぬ横槍でシステムが不安定になることもあります。
それが、「ユーザー許可を取らないアプリのインストール」です。

「ユーザー承認無しでアプリをインストールできるわけ無い」と思われるでしょう。
しかし、一部のマイナーキャリア端末の中にはそういった悪さをするプリインストールアプリが仕込まれていることがあるのです。
プリインストール、つまり「同意してインストールしたと同義」の状態なら、好き勝手にアプリ追加や改変ができてしまう、ということなのです。

もし急にシステムの動作が不安定になったと感じたら、一度インストール済みのアプリリストを確認してみると良いかもしれません。
特にストアから直接インストールしていないアプリ、それもシステム管理系のものが増えているなら、すみやかに削除したほうが良いでしょう。
もしも消したそばから復活してくるようなら、プリインストールアプリを含むシステムそのものにマルウェアが仕込まれている可能性があるので、機種変更を考えたほうが良いでしょう。


<おまけ:中古端末の注意点>

 中古品上等・激安バンザイというスタンスの人は、購入直後に一度端末初期化を行っておくことをおすすめします。

中古「買い取り」専門店であれば通常、端末を初期化した状態で店頭に並べます。
個人情報の完全消去というのはもちろんでしょうが、個人情報抜き取りなどの不正プログラムの混入を阻止する、というのもあるかもしれません。
こういったところで購入した場合、基本的には新品と同様の感覚で使いはじめることができます。

しかし、客の「買い戻し」前提の(再使用できるよう現状維持する)店舗や、コストカットのために最低限の動作確認と外装の手入れしかしない店舗などでは、買い入れた状態のまま並べているところもあるようです。
こういった場合、もし前のユーザーが端末に問題を抱えた状態で売りに出しているとすれば、購入直後に使用を始めるとそれをそのまま引き継いでしまうことになります。
またたとえ問題がないとしても、使い込んだ状態から重ねて使用することになるので、思いの外早く「ゴミ」が溜まってしまう可能性もあります。


以下四方山。。。
 実は、この記事を掲載するほんの数時間前にGジェネレーションフロンティアのゲームデータ(しかもアカウント情報)が破損していました orz
もちろん、こんな記事を書けるということは復旧できたということなのですが、破損したことがわかった当初は正直絶望的な心境になっていました。

 自身がとった手段は「長年PCを使っていた人なら思いつくけど、そうはやらない方法」でした。
ちなみにその手順は。。。
  1. USBリムーバブルモードで端末を接続。
  2. 症例が明らかにデータ破損だったため、システムスキャンを「システム回復あり・不良セクタ回復あり」のオプションで実施。エラーありとの情報を確認。
  3. ファイル内容を確認し、破損データ(0KBで中身の無いもの)を調査。この時点でアカウント情報関係のファイル2つが破損していると判明。
  4. 回復されたデータ(FOUND.XXX)を調査し、上記2ファイルが回復されていることを確認。
  5. 破損データと回復データをPCにコピー後、バイナリエディタで回復データの中身を破損データに書き戻し。別にリネームでも問題なさそうだったが、ブランク部分がかなりあったので念のため。
  6. PCとの接続を解除後、Gジェネレーションフロンティアのアプリを起動。
  7. 無事に起動を確認。しかもデータは無事 ^v^;
この方法は、スキャンディスク後に生成される「FOUND.XXX」というファイルが元データを回復したもの、ということを知らなければできない方法です。
もっと詳しい方ならいくつかの手順をまとめたり省略したりできるかもしれませんが、正直内心穏やかでない状態だったので、笑って見逃していただければ、と。

 もちろんこんな方法を使わなくても、サーバー上にデータを保存しておく設定にしておけばローカルデータ以外はダウンロード復旧できます。
また仮にデータが完全破損していても、ユーザーIDなどの引き継ぎ情報を控えているユーザーであればユーザー情報登録画面でユーザー引き継ぎの操作をすれば簡単に復旧できます。

ただし、アプリをアンインストールした場合はサーバーからデータが消されるおそれがあるようなので、慌ててアンインストールしてしまわないよう注意してください。

0 件のコメント: