きんちゃんが見つからないゾ

愛用していたLenovoのタブレットが、おそらく満員電車の圧力に負けて、お亡くなりになってしまわれた。

dead_lenovo

あいぽんでは画面が小さすぎるので、持ち歩き用に7インチほどのタブレットが無いと不便でならない。そこでAmazonのKindle Fire HDX 7に白羽の矢を立てた。サイズもちょうどいいし、お値段もお手頃。画面もキレイと、言うことなしだ。惜しむらくは純粋なAndroidではなく、なんちゃってAndroidだということだが、root化すればなんとかなるだろうと、ワンクリックでお買い物してしまった。ついでにORIGAMIカバーもポチってしまった。

とどいたKindle (きんちゃん) は、なんちゃってな部分を除けば、期待通りのものだった。たんにWebブラウズと読書をするには申し分ない。でも、なんちゃってな部分も予想通り、使えなさすぎる。

ぼちぼちroot化かなと、情報を集めた。USB接続して、adbというツールでファイルを転送してごちょごちょするだけ。これならできそうだ。

ところが、きんちゃんが見つからない。macなのがいけないのか? げげ、このUSBケーブルは充電専用じゃないか。付属のケーブルならきちんとUSB転送ツールが使える。でも、adbで認識しない!

そういうときにはマシンを再起動するのが鉄則なので、macを再起動してみた。OK、今度は見つかった。

adb_detected

これまでのまとめ。

  1. Android開発キットの導入(http://developer.android.com/sdk/)
  2. KindleとUSB転送ケーブルで接続
  3. adb devices で確認(認識しない時は再起動)

お楽しみはこれからだ。

中華タブレットにハマる

lenovo_a1そもそもの発端は、デバイス非依存(除くガラケー)なWebページを作ってみようというものだった。iOSの場合は320×480を基準に設計すれば良いので話しは簡単だ。厄介なのはAndroidで、機種により画面サイズもアスペクトも異なっている。これに対応するためには、まず機種判定し、JavaScriptなどで画面サイズを取得して…ということになる。

機種判定はブラウザのUser Agentで判断するのが簡単だ。たとえばPHPでは、

echo $_SERVER['HTTP_USER_AGENT'];

で取得することができる。返ってきた値から、iPhoneとか、Androidという文字列を探し出せば良い。

ちなみに、コレがおたくが今使っているブラウザでの表示結果だ。

[insert_php]
echo $_SERVER[‘HTTP_USER_AGENT’];
[/insert_php]


ところがなぜか、愛用のlenovo A1 AndroidタブレットiPadだと判定されてしまう。User Agentを見て驚いた。確かに我是iPad了!と言い張っている。

lenovo A1:
Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367 Safari/531.21.10

ちなみにiPadならぬiPhoneでの実行結果は次のとおり。

iPhone 4S:
Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25

こちらはモノホンのiPad。

iPad:
Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25

そこで快獣使いの102Pで試してみた。確かにAndroidである。

Softbank 102P:
Mozilla/5.0 (Linux; U; Android 2.3.5; ja-jp; 102P Build/GRJ90) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

ひょっとしてUser Agentを欺いているのではないだろうか。ブラウザの設定を見ると、「Support HTML5 user agent / Support play some videos of HTML5 webpage」という項目にチェックが入っている。他の項目は日本語で表記されているのに、これだけ英語だ。試しにチェックを外してみた。

lenovo A1: Support HTML5 user agent OFF
Mozilla/5.0 (Linux; U; Android 2.3.4; ja-jp; A1_07 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

期待通りの結果だ。察するところ、iPad用に書かれたオンラインビデオサイトで、「わたしゃiPadだよ」と偽って表示しようとしたのではないだろうか。

最後に、Firefoxでの実行結果はこうなった。設定にヘンなオプションは見当たらない。

lenovo A1: FireFox
Mozilla/5.0 (Android; Mobile; rv:21.0) Gecko/21.0 Firefox/21.0

あ、そういえばデバイス非依存なWebページを作るのを忘れていた。


P.S. User Agent は以下のサイトに詳しく出ていた。
http://www.openspc2.org/userAgent/

Android Tabletでもハマる

普段はLenovoのAndroidタブレットを持ち歩いている。WiFi onlyモデルではあるが、Pocket WiFiと組み合わせることで、そこそこ使える。画面も7″ XSVGA(1024×600)とまぁまぁだ。惜しむらくは、携帯電話と認識されてしまうのだろう、ブラウザでは携帯モードのstyle sheetが適用されてしまい、せっかくの画面サイズが活かせない。

これを使ってAndroidアプリを実験的に作ってみようと考えた。まずはお決まりの「Hello World」なのだが、さて、PCにつないだところでデバイスドライバが無いと言われてしまう。Lenovoのサイトに行ってみた。英語のページにドライバのダウンロードを見つけたが、ダウンロードリンクをクリックしても延々と待たされたあげく、見つかりませんと言われてしまう。wgetを使ってみると、too many hops(だったっけ?)で打ち切られてしまう。

たまたまこういう記事を見つけた。リンクが途中で切れていて、最後にドライバのファイル名を追加しないといけないという。試してみると、おお!ダウンロードできた。

ということで、Eclipseをインストールした。

Eclipse(蝕)といえば後1ヶ月ほどで金環蝕だとか。晴れるといいなぁ。

新しいおもちゃだゾ

お仕事で扱っている製品がiOSとAndroidにも対応している。iOS機器は持っているので、中身が分かっているが、droidは使ったことがないのでさっぱりわからない。営業くんがdroid phoneを持っているが、それをいじりまわすわけにもいかない。

ということで安いタブレットでも買って調査しようという話になった。安い物といえば1万円でおつりがくるようなものもあるが、タブレットのくせにWVGAだったりと、さすがに仕様がちんけだ。せめてWSVGAのものをということで見つけたのがlenovoのIdeaPad A1-07というヤツ。32GBのSDHCを追加して約2万5千円だった。ちなみに色はショッキングピンク♪ 売れ残っているのか、他の色よりも100円安かった。仕様

使った感想だが、iPad2と比べるともっさりしていてトロくさい。CPUが同じ1GHzだがシングルコアと、旧iPadと同等程度なのと、見た目の操作性を重視していて実際には時間がかかる処理であってもさっと結果がでるように見せかけているiOSの方に一日の長がある。そのうえハイエンドな単一モデル(メモリおよびWiFi/3Gの違いを除く)のiPadに対して、こちらは小型の下位モデルである。

ブラウザのユーザエージェントが携帯電話といっしょなのだろうか、ページによっては携帯用のCSSで表示されてしまう。それなりに高い解像度なのに、デカ文字で表示されてしまうのだ。幸いなことにその手のページには「PC用ページを見る」のリンクがあることが多いが、1回アクションが多くなる。

  iPad iPad2 A1-07
ディスプレイ 9.7インチ IPS 9.7インチ IPS 7インチ TFT
画面解像度 1024×768 1024×768 1024×600
プロセサ Apple A4 1Ghz
シングルコア
Apple A5 1Ghz
デュアルコア
ARM Cortex-A8 1Ghz
シングルコア
グラフィック PowerVR SGX 535 PowerVR SGX 543MP2 PowerVR SGX530
RAM 256MB 512MB 512MB
ストレージ 16 / 32 / 64GB 16 / 32 / 64GB 2 / 16GB + microSD
カメラ なし 前面 VGA / 背面 720p 前面 0.3M / 背面 3M 480p
WiFi 802.11 a/b/g/n 802.11 a/b/g/n 801.11 b/g/n
Bluetooth 2.1 + EDR 2.1 + EDR 2.1 + EDR
加速度計 3軸 3軸 3軸
ジャイロ なし 3軸 なし
環境光センサ あり あり あり
GPS あり(3Gモデル) あり(3Gモデル) あり
サイズ 242.8 x 189.7 x 13.4mm 241.2 x 185.7 x 8.8 195 x 125 x 11.95
重さ 680g 601g 400g
バッテリー 6613mAh 約10時間 6613mAh 約10時間 3550mAh 約7時間

WiFiモデルでの比較

終電が快速であり、我が家への最寄り駅は快速停車駅の一つ手前ということで、1駅分を歩かざる得なくなったので、GPSのテストという訳ではないがナビゲーション機能を試してみた。なかなかの性能だ。誤差1〜2mといったところか。住宅街で遮蔽物が少ないこと、その時間帯は天頂付近にGPS衛星が4つ集結していたことも好結果をもたらしてくれたのだろう。右はその時間頃の衛星の位置。
ちなみに徒歩ルートで指示されたコースが山あり谷ありでいい運動になった。もう二度と使うものか。