ひとりぶろぐ

価値ある情報をユーザー視点で発信するブログ

iOS 4.x.x用カスタマイズ可能ステータスバー時計StatusBarCustomClock4

      2016/03/16

StatusBarCustomClockのiOS 4.x.x専用版カスタマイズ可能ステータスバー時計、StatusBarCustomClock4を作りました。(続きは[MORE]から)

履歴

  • 0.3-1 2011.02.15 iPadでの不具合を回避するため、バージョンチェック処理を削除。(ただしiPadでは動作確認していません)
  • 0.2-2 2010.08.10 パッケージ修正
  • 0.2-1 2010.08.10 CPU使用率を下げるための修正
  • 0.1-2 2010.07.16 iOS 4.0.1向けのパッケージのやり直し
  • 0.1-1 2010.07.01 初版

インストール

New野良リポジトリに置いておきました。

「StatusBarCustomClock4」で検索してください。

対応OSはiOS 4.x.xです。iOS 4.0以下のOSには対応していません。

iPhone OS 3.0〜3.2.1用のものは別にあります。
iOS 4.x.xと、それ以下とではステータスバーの構造が全然違うからです。

iPhone OS 3.0〜3.2.1用カスタマイズ可能ステータスバー時計 StatusBarCustomClock

無保証です。

設定方法

「設定>StatusBarCustomClock4」でDate FormatとLocaleを設定し、respringします。

Date Formatの書式は、Date Format Patternsを参考にしてください。

空きメモリと六曜の表示を拡張しています。空きメモリはDate Formatに「FM」(Free Memory)、六曜は「R」と書いておくと展開されます。

設定してもリアルタイムには反映されないので、修正してはrespringを繰り返す形を取ります。

テストモードを使った設定方法

Test Modeをオンにしてrespringすると、テストモードに入ります。

テストモードでは、StatusBarCustomClock4の設定ファイルをRefresh Intervalごとにリロードしているので、設定したものが(設定によっては)すぐ反映されます。

ただし、入力した後別の設定項目に移るか、ナビゲーションボタンでStatusBarCustomClock4の設定を抜けないと設定値が確定されません。

Refresh Intervalだけは、テストモードに入っても変更が反映されず、respringが必要です。

テストモードは非常に無駄な動作をしているので、設定が終わったら必ずオフにするようにしてください。

CPU使用率について

OSのデフォルトでは60秒に1回程度の更新であるのに対し、SatusBarCustomClock4では最短で0.5秒に1回という更新間隔が設定できます(設定→StatusBarCustomClock4→Refresh Interval……Ver.0.2より新設)。しかし、更新間隔が短いと、その分CPU使用率が高くなります。

更新間隔を長く取るとCPU使用率は下がり、SatusBarCustomClock4導入前のCPU使用率に近づいていきます。
メモリ残量を表示させると、少しCPU使用率が高くなります。
六曜は1日に1回しか計算しないので、表示していてもいなくてもCPUの使用率はほとんど変わらないと思います。

CPU使用率は、App StoreからダウンロードできるSysStats Liteなどで調査するとよいかと思います。
SysStats LiteでCPU使用率を調査してみました。設定の参考にしてください。

SatusBarCustomClock4が動作していない状態のCPU使用率。

デフォルトの、1秒に1回の更新間隔、メモリ残量表示あり。

デフォルトからメモリ残量表示無しにしたもの。
メモリ残量の取得にCPUを使っていることが分かります。メモリ残量の更新間隔は最短4秒に1回となっています。

0.5秒に1回の更新間隔、メモリ残量表示あり、秒の表示ありと負荷の高い設定。

更新間隔はシステムのデフォルト(恐らく1分に1回程度)、メモリ残量表示無しと負荷の低い設定。

インストールしたら他のアイコンが消えてしまったのですが、バグですか?

StatusBarCustomClock4の表示は、ステータスバー上の他の項目より優先順位が高いです。
よって、StatusBarCustomClock4の書式を長くすると、他の項目を消し去ってしまいます。
逆に、StatusBarCustomClock4の書式を短くしたらどうなるか? OS標準の項目同様にすれば、他のステータースバーの他の表示項目を消すことは無くなります。

つまり、StatusBarCustomClock4を導入して他のステータスバーの項目が消えて困った事態になったとしたら、StatusBarCustomClock4の書式を短くすれば解決します。

StatusBarCustomClock4インストール直後のデフォルトの書式は、私の責任において他の項目が消えないよう入念に健闘を重ねて決めているものではなく、キャリア名を消すなどして(次項で解説)ステータスバーが通常より広く使えるような環境での使用を想定しているため、他の項目を消すような事態は普通に起きるでしょう。

従って、「StatusBarCustomClock4をインストールしたら他の項目が消えた、どうしたらいいですか?」という質問に対しては「書式を短くするか、キャリア名を消したり、バッテリーのパーセンテージ表示を消すなどして干渉しないようにしてください」が答えとなります。

カスタマイズできるステータスバー時計なのですから、カスタマイズしてください。

デフォルト値を短く設定して、このような質問が起こらないようにする選択もあると思いますが、今度は「メモリ残量を表示するのはどうやるのか?」などの質問が予想されるので、長めの書式にしてあります。新たに書式を追加するより、削除する方が簡単だと思うからです。

iPhone 3.0〜3.2.1用のStatusBarCustomClockでできるように、フォントや色、表示位置を変更したいと思い、plistに書き込んだのですが反映されません。バグですか?

不思議に思うかもしれませんが、できません。

iOS4.x.x以降とそれ以前とでステータスバーの見た目はほとんど変わっていないので理不尽に感じるかもしれませんが、中身は大きく変わっています。

方法がわかりません。方法を教えてください。

キャリア名を消す

StatusBarCustomClock4を使うとステータスバーが手狭になり、他の表示項目、キャリア名、Wi-Fiアイコン、ネットワーク接続中インジケータなど、StatusBarCustomClock4以外のすべての項目と干渉します。前述のように、干渉するとStatusBarCustomClock4が勝ち、他の表示項目が消えます。

StatusBarCustomClock4の書式を長くするために、キャリア名を消すのはいい手となります。
キャリア名をカスタマイズして別の文字列等にするのは、カスタマイズ好きな人にとって譲れないポイントのようなので、そこは好き好きですが、キャリア名を消す以外にスペースを稼ぐ手がほぼ無いのもまた事実です。
MakeItMineというCydiaからインストールできるアプリケーションでキャリア名を消すことができます。

これは、/var/mobile/Library/Preferences/com.apple.springboard.plistに以下を追加する、ということをやっています。<string></string>の中身を空にすればキャリア名が消せます。

SBFakeCarrier
hoge

StatusBarCustomClockとの違い

iPhone OS 3.0〜3.2.1用のStatusBarCustomClockとは設定項目の点で大きく違います。

今回のStatusBarCustomClock4は、スタイルの設定が一切できなくなっています。
本当はできるのに、plistの設定をすれば実は設定できる、知る人ぞ知る隠し機能にしているのではありません。
iOS4.x.xではステータスバーの構造が変わっているので、方法が分からくなりました。

アンインストールしたのですが、ステータスバーがデフォルトに戻りません。バグですか?

SBCC4はインストールしている間だけ効果があります。
アンインストールした後も変更が残り続けるようなシステムファイルの書き換えはしないので安心してください。

SBCC4以外のステータスバーを変更するソフトウェアとして
SBSettings、WinterBoardなどがあります。これらの影響が疑われます。

SBCC4のアンインストールの失敗というのは考えにくいですが、少なくとも

/Library/MobileSubstrate/DynamicLibraries/StatusBarCustomClock4.dylib

が存在せず、存在しないことを確認した後で一度でもリスプリングしていれば影響を残していることは絶対にありえません。

StatusBarCustomClock4をインストールすると以下のファイルがインストールされます。
Cydiaから見られるパッケージ一覧でStatusBarCustomClock4を選択し、「Filesystem Content」という項目を選択すると、インストールされるファイルの一覧が見られます。以下は書いたっきり更新するつもりはないので「Filesystem Content」を見てほしいのですが、一応現時点でのファイル一覧は下記のようになっています。

/Library/MobileSubstrate/DynamicLibraries/StatusBarCustomClock4.dylib
/Library/MobileSubstrate/DynamicLibraries/StatusBarCustomClock4.plist
/Library/PreferenceLoader/Preferences/StatusBarCustomClock4.plist
/Library/PreferenceLoader/Preferences/StatusBarCustomClock4.png
/var/mobile/Library/Preferences/com.hitoriblog.statusbarcustomclock4.plist

最後の初期設定ファイルは「設定」で設定をすると作られます。アンインストール時に削除されます。
StatusBarCustomClock4から電波が発されている疑いが晴れないということならば、「Filesystem Content」を参照しつつ実際のシステム上のディレクトリにファイルが残っていないか確認してください。
もちろん、通常はこんなことをする必要は無く、Cydiaからアンインストールすればすべては済みます。

 - iPhone, Jailbreak, ガジェット