4.3地雷源突入

 スマホの調べ物をしていたら、ちょっとキーワードを絞るだけでうちのサイトがgoogle先生の1ページ目(10件以内)に出るようになってしまって、流石に焦りを感じた今日この頃です。
 いやだって、ただのへっぽこ日記ですもの。ブリッツウィングとかファステックたんとかが引っ掛かるのは正に想定内事故ですが、こういう実用的なのは一寸。
 そりゃまぁ検索に引っ掛かる以上は少しでも役に立つ情報が含まれていればとは思って書いては居りますが、専門的なサイトには程遠い、個人的備忘録のレベルに過ぎない訳で。ネットの片隅に溺れる浮遊大陸(いやそれ沈んでるだろ)くらいがお似合いなのに。
 そもそも日本国内でグローバル版S4(それも3Gモデル)に手を出している(諸々の事情がありまして)時点で狭い道をひた走ってはいる訳で、更に専門サイト以外の旧態依然としたblog雑記という点で、既に時代錯誤の存在なのかもしれない。

 いやまぁつまり何が言いたいかというと、適当なことばかり書いてやばいなーと(笑)。
 ウソついてたらすんません、、。

 はてさて、月末(ってか今日?)には4.4 KitKatも来るんじゃないかと噂されてるので先に書いておきますが。
 つい先週、我がGalaxyS4(GT-i9500)の4.3アップデートが来てまして。
 4.3といえば「ダウングレード」なる検索単語がうちのサイトにまで飛び火してくるレベルなので、確実に地雷源とは分かっていましたが、どうせ駄目でも4.4がすぐに来そうだしってことで突撃してみましたよ。怖い物見たさとは正にこのこと。
 というかそれくらい4.2.2のBluetoothバグには腹を立てていたので、その駄目元感が一番だった訳ですが、、、

 うん、玉砕しました(笑)

 いや何が駄目だったって、まさかの中華フォント化。
 4.2.2の時は問題なかったし、そもそもAndroid4.0以降はjaはモトヤマルベリが採用されていて、実際フォントファイルは普通に入っている。しかしどういう訳か、フォント設定ファイル(fallback_fonts.xml)のja設定がすっぽ抜けている。どういうこと、、、。
 どうせベースは4.3初版だろうし、googleが大ボケかまして直す前のものだったのか、あるいはGalaxyカスタムがある部分なのでそこで編集をしくじったのか(あんま故意犯だとかは考えたくないのですガー)、グローバル版は日本語のテストなんてしないだろうしね、、。
 うーん、ここを直すにはrootを取るしかないんだよね。

 まぁこんなこともあろうかとのカスタム仕様だ、ということでflipfontを使えばいいやと思っていたら、、、
 基本的な表示は全て切り替わるのだけど、ブラウザの類が全滅。
 開発視点で言えば、一般的なViewのフォント管理はTypefaceを通していて、flipfontはTypeface.Defaultに充てられるのだけど、WebViewは独自にフォント機構を持っていてTypefaceは使われない(デフォルトはsans-serifが参照される)。WebViewのフォント切り替えはHTML/CSSの設定の他、デフォルトはプログラムからttfで直接指定するようなので、そこでTypeface.Defaultのttfを引き当てればと思ったんだけど、そう上手くも行かないみたいね。海外はともかく国産ブラウザアプリでも長年言われたまま改善されていないようなので、素人考えで解決できるようなものではないのだろう。

 でもってこのWebViewを使ったアプリが何気に多い。ブラウザは勿論、RSSリーダーやメールソフト(HTMLメールに対応する都合上)なんかもアウト。
 この点、どう頑張ってみたところでsans-serifが基本になってしまうので、Androidでフォントを切り替える=sans-serifを直接入れ替える(root必須)、というのが唯一にして最終解ということになってしまう模様。日本語云々以前の問題。あとはWebViewを使うアプリ側でフォント指定機能を付けるしかないのだろうね。それもフォント一覧なんて便利なものはないのでttfファイル直接指定しかないような。
 元からAndroidのフォント周りはしょっぱいとは知っていたけれど、ここまでとはなぁ(苦笑)。

 しょうがないので取り敢えずWebView以外は標準のモトヤマルベリが出るようにはしておいた。
 ただ実のところ、元来のAndroidデフォルトフォント即ちsans-serifというのは、DroidSans(Roboto)に含まれない日本語文字だけモトヤマルベリ(MTLmr3m)が使われるという、実質的なハイブリッド構成になっているんだよね。でもって正直なところその方が良い(基本的にデフォルトスキー)。モトヤマルベリは何だか丸すぎて、日本語はいいんだけど、英数字はあまり好きじゃない。
 flipfontの設定でどうにかなるかなとも思ったんだけど、flipfontのapk作成がS4だと一癖あるみたいで上手く行かなかったので諦めた。どうせwebview問題は回避出来ないし、ここに時間を掛けるくらいならrootを取る方が早いということで。

 因みに、問題のBluetoothの方はちっとも改善しておりませんでした。
 最初の一発目はCPU負荷が上がらなかったように見えて「これは痛み分けか?」と期待したのも一瞬、それはたまたまだったのか二度の奇跡は起きず。そもそもバッテリ消費はまったく改善しないまま。
 完全に負け犬、とはこのことですよ。はははのは。

 そもそもド忘れしていたけど最近は社用Nexus7が手元にあるので、S4が悪いかAndroidが悪いかを調べてみたら、見事にAndroid共通の問題でしたよ。それも最新4.3.1でも全く直っておらず。もう駄目だ。(BT機器側の問題かも複数検証済み。4.1タブレットでは全て正常)
 しかしBluetooth通信なんてそこら中で使われているだろうに、その割には騒がれていないのか、いまいち検索もヒットしなかったので悩んでいたけれど、よくよく探すとやっぱりNexus4でも出ているようで、「I hate to~」とか言われてて笑うしかなかった。いやホント、自分もこれの所為でかなりゲンナリ来てるからね。基本的な機能がまともに動かないことがどれだけ忌々しいか。(追記:公式フォーラムにもあった>ここ。設定リセットで直る直らない等とも言われてるので(勿論とっくに試してるけど駄目)、ある程度は発生要因があるのだろうけれど、うーむ)
 しかし、そこでは4.2.2からおかしくなったと書いてあったけど、4.2.2なんてもう1年半年以上前の話な訳で、ここに至るまで放置(解消せず)ってどうなのかね。4.3は捨てバージョンなんだろうな感は強いけど、果たして4.4でも直るのか不安になってきましたよ(苦笑)。

 ともあれ、あとはアプリが上手く動かない云々という話になってくるのだけど、まだそんなに使ってもいないからか特にこれというのはなし。一件細かいところでアプリ側の問題くさいのがあるくらい。
 まぁぶっちゃけ、変な作りをしてるから無理が出るという話もあったりするので、ここはアプリ開発側の問題もあるにはあるんだよね、って話が最初から出来れば良かったんですが。まさかの中華フォント問題にはぐぬぬとしか言いようがない(苦笑)。