2019年05月20日の日記です


Nexus7 (2012) 復活  2019-05-20 14:54:10  コンピュータ

2度目の復活。不死鳥のように甦る。


Nexus7 (2012) は、2012年発売の 7inch Android 端末だ。

さすがに8年も前の端末なので、今時使い物にならない…


と思って、先日代替機として Amazon FireHD 10 を購入したのだ。

そして、代替機が手に入ったので、Nexus7 はお役御免、「捨てても構わない」機械になった。


じゃぁ、捨てる前にダメもとで遊んでみよう。

…そうしたら、使える端末に復活してしまった。





ちなみに、「2度目」と書いたが、1度目の復活は1年前だ


一度は、遅すぎて使い物にならない、と思ってほったらかしになっていた機械を、ダメもとで復活させたら案外使えていた。

しかし、1年使っていたら、やっぱり使い物にならなくて、代替機を購入した、という流れだ。



1度目までの経緯を説明しよう。


Android は現在広く使われている OS だが、最初は「スマホ用」の OS だった。

タブレット端末で使うことは想定されていなかったのだ。


当時、スマホ用には Android 2 系列が使われていた。

これに対し、Google はタブレット用の「別バージョン」として、Android 3 を作る。

3 は 2 の後継ではなく、違う機能を持つ別バージョンだった。


しかし、Android 4 では、2 と 3 の両方の機能を持つ形で統合される。

ここに、現在のように幅広く使われる Android の基礎が出来上がる。


そして、これを広く宣伝するように Google が販売した「戦略機種」が Nexus7 だった。

世界初の Android 4 搭載端末で、当時の一般的なタブレット価格から見ても、驚くような低価格設定だった。


Nexus7 は大ヒットとなり、翌年には改良機種が出る。

僕は初代を買ったので、Nexus7 (2012) と書くが、この書き方は (2013) もあるためだ。



さて、「世界初の Android 4」は、初物であるがゆえにバグが多かった。

頻繁にバージョンアップされ、最終バージョンの 4.4.4 まで進み、さらに 5 系列も提供された。


しかし、5系列も真っ先に投入されたため、またバグだらけだった。

これがひどいもので、まともに使えないほど動作が緩慢だった。


頻繁にバグ修正が行われ、5.1.1 まで行ったのだが、Nexus7 (2012)のバージョンアップはこれで終了。

使い物にならないほど緩慢なままだったので、我が家では使わなくなってしまった。



そして1年前。

5 系列が緩慢なら、4 系列に戻して使ってみよう、ということで 4.4.4 に入れなおした。


ちなみに、Android の宿命として、「バージョンアップ」を提供する仕組みはあるが、バージョンダウンは難しい。

Nexus は Google 製で、開発にも使われることを想定しているため、それなりの知識があれば好きなバージョンに戻すことができる。


4.4.4 にしたら、動作が軽快になった。

古い機械なのでパワー不足は感じるが、それなりに使える状況に戻ったので使ってきた。


ところが、1年使ったある日、急によく使っていた Radiko アプリの動作が遅くなった。

やはりパワー不足か、とあきらめて代替機を先日買ったのだ。



代替機購入の際の日記には、「Radiko のアプリ動作が緩慢になったのは、Radiko のシステム更新が原因ではないか」と書いた。

しかし、これは今はちょっと違ったかな、と思っている。後で詳細書く。




さて、今回やったこと。


僕が知らなかっただけで、1年前に「復活」させた時点では、今回の方法がすでにトレンドになっていたようだ。



使いものにならないほど遅かったNexus7改善計画

Nexus 7 (2012)をAOSP 7.1.2にアップグレード


今回は、上に書かれた2つのページを参考にして、ほぼ同じことをした。



1ページ目は、Nexus7 が Android 4.0 だったころのバグの影響が後まで残り、速度低下の原因になっている…

という指摘。ただ、あとで考えると事実誤認が含まれるように思う。これは後で説明する。


事実誤認があっても、1ページ目は2ページ目の作業を行うための「事前準備」のやり方を、懇切丁寧に教えてくれる。

目は通すべき。最終結論である「Trimmer アプリの実行」も、おまじないとしてやっておいて損はないと思う。

(多分、まったく無関係なのだけど、害はない。やって何か改善したら儲けもの)



2ページ目は、非公式ではあるが、Android 7.1.2 を入れてしまおう、というもの。

非公式とはいっても、もともと Android はオープンソース…プログラムが公開され、誰でも改造できるものだ。


そこで、正式な 7.1.2 を元にして、有志が Nexus7 (2012) に対応したバージョンを公開しているので、それを入れる。


7 は、5 よりも「最適化」が進んでいる。つまり、プログラムの無駄が省かれている。

そのため、5よりも軽快に動く。



これが非公式版で、Google が著作権を持つアプリは入っていない、ということも大きいと思う。


一般に、Android 端末を購入すると、Google 製のアプリがたくさん入っている。

場合によっては、それと同等の機能を持つ、端末メーカー製のアプリもたくさん入っている。


そして、それらは消すことができない。

場合によっては動作を止めることすらできず、CPU の速度とメモリを無駄食いする。



しかし、非公式な Android には、Google が著作権を持つアプリを同梱することが禁じられている。

…いや、Google アプリが入れられないわけではない。禁じられているのは「同梱」だけで、再配布は許可されているから。


逆に言えば、非公式 Android なら、公式なものと違って、必要最低限のアプリだけ入れるようにできる。

すると、不要な機能が動かないので動作が軽快になる。


もっとも、何が不要かは人によるだろう。

僕が軽快だと感じていても、他の人には「機能不足で使えない」と思う可能性もある。




2ページ目として紹介したページ、そのページが書かれた時点での「最新版」の 7.1.2 を使用している。

しかし、現在ではもっと新しいものがある。


紹介ページでは「2018/12/05 ~の掲示板」となっている箇所のリンク、実は掲示板の名前は、時々更新される。

現在は、日付部分が 2019/05/05 となっている。


そして、その掲示板の一番上に、最新バージョンのバイナリが置かれているので、それを取得しよう。


バージョンが違っても、どれも 7.1.2 だ。これは、「Google がつけた Android の」バージョン番号。

日付の違いは、それを Nexus 7 で動くように移植作業をした際のバージョン違いだ。


どうも、バグ取りも行われているが、セキュリティアップデートに追随するのが目的のようだ。




Nexus7 (2012) には、WiFi 版と 3G 対応版の2機種があり、名前は同じだがハードウェアが違う。

WiFi 版は Grouper 、3G 版は Tilapia というコード名がついている。どちらも魚の名前だ。


僕は Grouper の OTA-Package バイナリを選ぶ。WiFi 機種だからだ。

そして、Open GApps のバイナリも必要とする。


GApps とは Google Apps 、つまりは Gmail や Chrome などの Google 製アプリこのことだ。

Nexus7 は ARM なので、ARM - 7.1.2 - pico を選ぶ。


pico の部分は好みで変えてもいい。pico は最小セットだ。不要なものが一切入らないので動作が軽い。

その後、必要なものがあれば Google Play Store で入手すればいい。



これで、特に問題もなく、7.1.2 にすることができた。快適に動作する。

…いや、さすがに8年前のマシンなので、反応がちょっと遅い感じはあるよ?

インタラクティブに使うのは、ちょっと辛いかも。


でも、Youtube 見たり、Radiko 聞いたりといった「ストリーム再生」には問題がない。

Chrome 検索して、静的な(ゲームとかではない)ページを閲覧するのにも問題はない。




ところで、Radiko は最新版だと動かない。

旧バージョンがあるので、5.0.6 を入れると動く。

…なんか怪しげなサイトだけど、合法だと書いてあるのだから、大丈夫なのだろう。



Radiko はバージョン 6 以降でないと、タイムフリー(1週間以内ならいつでも聞ける)に対応していない。

と同時に、この機能が強力なので、放送データを録音したりできないように、動作する OS 環境がおかしなものでないかなど、厳しいチェックが入るようになったようだ。


Nexus7 (2012) で 7.1.2 なんて、「おかしい」以外の何物でもない。

最新の Radiko が動かないのは仕方がないところだろう。


#でも、先日買った Amazon Fire HD には Radiko 最新版入れられたな…

 Amazon Fire で Google Play Store アプリを入れるとか、おかしいのだけど。




さて、途中で書き逃していることを説明する。

まず、先に書いた「Trimmer には意味がなさそう」について。


SSD には TRIM という仕組みがある。

なぜ必要かは長くなるので自分で勉強してもらおう


ただ、この仕組みは最初からあったわけではないと知っておいてほしい。

当初、SSD は HDD の互換品として作られ、後に性能を上げるために TRIM という独自の仕組みが取り入れられた。



ところで、Linux という OS がある。

HDD で運用する前提で作成された OS で、いまは SSD でも使えるようになっている。


ここで、TRIM は OS そのものの仕組みとしては提供されていない。

OS 上で動作する別アプリケーションとして TRIM 動作を行うだけのものがあり、それを定期的に動かす仕組みだ。


このように機能を分離することで、OS 本体の方に HDD と SSD の違いなどを入れる必要がなくなり、プログラムが複雑になるのを避けられる。



そして、Android の中身は Linux だ。

Android は HDD を搭載しない… SSD 運用が普通なので、定期的に TRIM する必要がある。


しかし、Android 4.0 は、この「定期的な TRIM 」が動かないというバグがあったそうだ。


OS 本体が対応しないなら、アプリとして対応してやればよい。

Trimmer はそのためのアプリで、OS 内部にちゃんと持っている TRIM アプリ (fstrim という)を起動してくれる。


でも、4.0 でなければ fstrim はちゃんと起動される、らしい。

先のページがさらに参照しているページでは、「4.0 の時におかしくなったセクタが戻らない」と説明しているのだけど、fstrim の仕組みでは、そんなことにもならない。



だから、4.0 でなければ Trimmer はいらないと思う。





じゃぁ、なんで 4.4.4 を使っていても、1年の間にだんだん遅くなってきたのか、について。

Radiko のせいだと思っていたが、どうも冤罪だという件だな。


単純な話で、1年使う間にキャッシュがたまってしまったのではないか、と思っている。


前回も今回も、OS を入れなおしてすぐは、「快適動作」と感じている。

前回は、それから1年かけてだんだん遅くなっていった。


これは、入れ直しによって自然にキャッシュはクリアされてしまい、使うことで溜まっていったからではないか、という推論だ。



またしばらく使ってみて、また重くなることがあれば、まずはキャッシュクリアを試してみよう。

そうなった時には、またお知らせしたいと思う。




同じテーマの日記(最近の一覧)

コンピュータ

別年同日の日記

02年 5/20

05年 美味しいケーキ屋さん・その後

07年 ぞうが かわに おっこちた

13年 桑の実


申し訳ありませんが、現在意見投稿をできない状態にしています


戻る
トップページへ

-- share --

0000

-- follow --




- Reverse Link -