開発パネル内のFirefox OS設定(Setting)アプリについて。このパネルFirefox OS上であなたのオープンウェブアプリのデバッグをより簡単にします。この記事では使用できるオプションと使用方法を網羅します。
この開発オプションの設定パネルは、わざと深く埋められています。
それは、このオプションが不要なエンドユーザーが、不注意で有効にして、端末の動作が遅くなったり、画面に変なエフェクトがかかってしまうのを防ぐためです。パネルは下記のようなものです。(下記はGeeksphone Keonで2014年4月のFirefox OS 2.0ビルドで、別バージョンを実行している場合、異なることもあります。):
開発者パネルには、下記の方法でたどり着きます:
- Firefox OS 1.4未満では、Settings > Device information > More Information > Developer として開発者パネルを開きます。
- Firefox 1.4以降では、 Settings > Device information > More Information > Check the Developer Menu checkbox としないと有効化できません、一度これを終えると、 Settings > Developer として開発者バネルにアクセスできます。
下記の節は、開発者パネルの各オプションについて網羅し、それが何をして何に役立つかを説明します。
重要: このツールは役立ちますが、通常使用ではバグを起こします。バグを起こすと分かっている機能はデフォルトで無効になっています。問題を経験している時は、有効にしていた開発機能の無効化を試して下さい。
開発ツールの設定
USB経由のデバッグ
"Remote debugging"オプションでFirefox OS端末のリモートデバッグ のサポートが有効になります。合わせてADBコマンドも使用できるようになります。Firefox 1.4より前では単一のチェックボックスでしたが、Firefox 1.4ではセレクトポックスで3つのオプションを選択できます:
- Disabled: リモートデバッグを切ります (デフォルト)
- ADB only: ADBによる端末アクセス許可
- ADB and Devtools: ADBと、アプリマネージャなどFirefox開発ツール両方のアクセス許可
Developer HUD
Firefox OS 1.4以降では、このセクションをタップすると、開発者 HUD セクションが見えるようになります。
上2つの (常に有効な) チェックボックスは:
- Frames per second: 秒間フレーム(fps)を表示し、これは下記の節で Frames_per_second 説明します。
- Time to load: ロード時間を表示し、これは下記の節で Time_to_load 説明します。
次に、開発者オプション('Developer Tools')を有効化/無効化するのに使うスライダーがあり、その次に有効化/無効化するチェックボックスがいくつかあります:
- Developer tools
- Log changes in adb: 端末の変化を adb logcat にログ出力するのを有効化します。
- Show system HUD: チェック時に、いくつかの情報の断片を端末のディスプレイの上に重ねて表示します。
- Problems
- Warnings: コンソール警告を表示します。
- Errors: コンソールエラーを表示します。
- Security issues: 潜在的なセキュリティ問題を表示します。
- Performance
- Reflows: リフローの発生を表示します。
- Jank/Jank threshold: 受け入れられない高い jankを電話機のユーザに通知し、閾値をカスタマイズできます。
- Memory
- Unique set size: アプリ毎に、アプリが使用するメモリを計測するものです。これはメモリ使用を最適化する(アプリが使うメモリを削減する試み)のに最も重要な計測です。しかしその他もあります。詳細は パフォーマンステスト 節を見て下さい。
- App memory: アプリがどれだけメモリを使用しているかの情報を表示して、色々なメモリ使用要因を有効化/無効かできます。詳細は下記の App_memory 節を見て下さい。
- JS objects: A measure of the memory the app is using on JS objects.
- JS strings: A measure of the memory the app is using on JS strings.
- JS other: A measure of the memory the app is using on other JS code features.
- DOM: A measure of the memory the app is using on its DOM.
- Style: A measure of the memory the app is using on CSS.
Frames per second(秒間のフレーム)
このオプションを有効化すると Firefox OS ディスプレイの左上に3つの数字が報告されます; つまり報告される値はスライドしたwindowの最近の平均した結果で、"瞬間的" だがかなり正確です。同様に全ての数字は "推測値" です:
- 左の数字は 構成比率 : Firefox OS が毎秒ハードウェアフレームバッファに書き込んでいるかを見積もった数です。これはユーザが知覚するフレームレートの見積もりで、それはただの見積もりに過ぎません。例えば、カウンターは実際にスクリーンが変化していなくすも、毎秒60回の構成と報告することがあります。その場合、ユーザが知覚できるフレームレートは0でしょう。しかしながら、この警告を頭に入れてその他の測定値と連携する時は、このモニタ値は便利でシンプルなツールたりえます。
- 真ん中の番号はレイアトランザクション率で、ブロセスが再描画して構成者に通知した毎秒あたりの見積もり数です。この数値はGecko プラットフォームのエンジニアにとって最も便利ですが、左の構成率以下になるはずです。
- 右手の番号はスクリーンサイズに対して、描画されたピクセル数を計測したパーセンテージです。273という数字はスクリーンが2.73 回描画された事を意味します。理想的にはこの数値は 100 になるべく近くなるべきです。
Time to load(ロード時間)
Firefox OS には起動時間、特に "初回描画" 時間を計るツールもあります。ツールにより(Firefox OSディスプレイの右上に)表示される値は最も最近アプリが起動された時からの経過時間と、アプリがUIを描画してからの見積もり時間(ミリ秒)です。こり数字は実際の"初回描画" 時間"を概算しただけで、とりわけ低く見積もられます。しかしながら、この数字を低くするのは、実際の起動時間を改善するのとほぼ常に相関しており、なので最適化のアイデアを簡単に計測するのに役立ちます。
App memory(アプリのメモリ)
アプリがどれくらいのメモリを使っているかを表示し、今のアプリのどの項目でたくさん使っているかを表示する様々な項目を有効化/無効化します。例えば、下記のスクリーンショットではApp memory(アプリメモリ) と JS objects(JSオブジェクト) だけがチェックされていて、右下の指示はSetting(設定)アプリがJSオブジェクト用に 414.77KB 使っているのを表示します。
疑似的ローカライズ
有効にした時、アクセントをつけられた英語と、鏡で反転された英語のような疑似原語をSettings > Languagesで選択できるようになります。擬似的ローカライズで、言語リソースの追加や、外国語を話したりできなくても、通常のGaiaビルドでローカライズ性をテストできます。例えば、長い文字でもレイアウトがスケールするか確かめたり、右から左の仮言語のプレビューをしたり、data-l10n-id
属性 (通常の英語の中に表示されます)のないHTML要素を置いたりできます。
擬似的ローカリゼーションをデフォルトでつけるには、ガイアをビルドする時に gaia/build/config/common-settings.json の中に下記の行を追加します:
"devtools.qps.enabled": true
記: 擬似的ローカリゼーションは、アプリが起動するたびに、完全に動的に生成されます。パフォーマンスとメモリ特性は通常のローカリゼーションと異なる可能性があります。英語以外の言語の特定のパフォーマンステストをしたい場合は、本物のロケールで複数ロケールGaiaをビルドします。
グラフィックの設定
Flash repainted area(再描画エリアの点滅)
このモードでは、画面領域がGeckoによって描画される毎に、Geckoは描画領域の上に、ランダムに半透明な色を転送します。理想的には、フレーム間で見た目が変わった画面の一部分だけが、新しい色で"点滅"します。しかし時々、必要以上の領域が再描画され、大きな領域の"点滅"を引き起こします。この現象はアプリケーションのコードがシーンの更新を強制しすぎているのを示す可能性があります。Gecko自体のバグを示す可能性もあります。
Overscrolling(過度のスクロール)
これは Firefox 2.1+ で、スクロールがページの終わりを過ぎた時にしなやかな作法でディスプレイを広げて、次にディスプレイのドラッグを停止した時にまた縮める動作をオンオフします。この振る舞いのフルネームは elastic overscroll(しなやかな過度のスクロール)です。
Tiling (以前は Layers: Enable tiles)(タイリング)
Firefox OS 1.4で導入され、この機能はコンテンツをスクリーンに描画するのに、スクリーン全体を一度に描かずに、より小さな塊(タイル)毎に描くのを有効化します。これは主にプラットフォームQAがチェッカーボードを削減したり、退行ウィンドウを発見したりする時に役立ちます。
Low-precision painting(正確度の低い描画)
このオプションを有効にすると、Gecko はスクロールが実に速い時に、コンテンツを低い正確度で (ぼやけて) 描画します。これは描画が速いために便利で、よってスクロールが速い時に空白領域を描画する (つまり チェッカーボード) のを防ぎます。これは一時的にユーザに見えるだけです; いったんユーザがスクロールを止めると、精密度の低い領域は精密度の高いコンテンツで埋められます。
Low-precision transparency(正確度の低い透過)
これは正確度の低い描画向けの追加フラグで、半分透過した低い正確度のコンテンツができます。これはユーザにとって、より微妙で不快さの少ないものでしょう。
Hardware composer (以前は Enable hardware compositing)
有効にされると、この設定は端末が画面の視覚要素(表面)を構成するのに、Hardware Composerを使用するようにします。
Draw tile borders (以前は Layers: Draw tile borders)(タイル境界の描画)
これは Draw layer borders のオプションとよく似ていて、違いはレイヤーの境界と同様に個々のタイルの境界も描くことです。
Draw layer borders(レイヤー境界の描画)
有効にされると、画面に描かれる全レイヤーの周りに明るい境界が追加されます — レイアウトの問題の解析用に素晴らしいものです。
Dump layers tree(レイヤーツリーのダンプ)
このオプションでは layers.dumpが有効化されます、これは
compositorのレイヤーツリーを、画面にフレームが構成される毎にlogcatにダンプするようにします; これは、通常のweb開発よりは、主にプラットフォームのグラフィックパフォーマンスが動作するのに便利です。
Dump layerscope(レイヤースコープのダンプ)
有効になると、この設定は端末からのレイヤースコープをダンプ出力するのを可能にします、その結果デスクトップでインストールされたアプリのレイヤー情報を見られます。この機能の使用方法のより詳細は Mozilla Wikiのレイヤースコープ を見て下さい。
Cards View: Screenshots(カードビュー: スクリーンショット)
有効になると、open アプリがカードビューで表示された時、アプリのスクリーンショットが撮られます。無効になると、カードビューの代わりの空白のカードの中央にアプリアイコンが表示されます。
ウィンドウ管理の設定
Software home button(ソフトウェアのホームボタン)
このオプションを有効にした場合、ハードウェアホームボタンと同様な機能を提供するソフトウェアホームボタンが作成されます。これはタブレットのように、ハードウェアホームボタンを持たないであろう将来の端末使用に狙いを向けています。
Home gesture(ホームジェスチャー)
このオプションを有効にした場合、スクリーンの外から中央に向かって上向きにスワイプするとホームスクリーンが表示されます。さらに、ハードウェアホームボタンが利用できない場合は、この機能がハードウェアホームボタンと同じ機能を提供しえます。この機能は将来、タブレットのようなハードウェアホームボタンがないデバイスで使われることが計画されています。
Continuous transition
This setting allows you to decide whether app keyboards open immediately or continuously (with a transition). Disabling such transition effects are useful on low end devices, when they cause performance to suffer.
App transition(アプリのトランザクション)
Turn this on and then off again and you will disable all app closing/opening transitions: all apps will now just show immediately, without the smooth animation, and keyboards will also open/close without animation. Like "Continuous transition enabled", this is meant for improving performance on low end devices, but it has more of an effect.
App suspending(アプリのサスペンド)
If enabled, this specifies that when an app is killed in the background, it will be kept in history and reopened when you open it from homescreen/card view. If disabled, such apps are not kept in history/card view.
デバッグ設定
Log slow animations(遅いアニメをログ出力)
This tool tries to help developers understand why animations are not offloaded to the compositor to be run efficiently as possible. It reports "bugs" like trying to animate elements that are too large, or trying to animate CSS properties that can't be offloaded. The messages you'll get on the device will look like the following:
I/Gecko ( 5644): Performance warning: Async animation disabled because frame size (1280, 410) is bigger than the viewport (360, 518) [div with id 'views']
Geolocation output in ADB(ADBで位置情報を出力する)
Enables logging of geolocation data to adb logcat. This helps with debugging both the GPS stack (namely we get NMEA callback) and MLS use.
Wi-Fi output in adb(adbでWi-Fiを出力する)
Enabling this option adds information about Wi-Fi to the adb logs (error logs from the console can be accessed using adb logcat | grep "Error"
in the Terminal.)
Bluetooth output in adb(adbでBluetoothを出力する)
Enabling this option adds information about Bluetooth to the adb logs (error logs from the console can be accessed using adb logcat | grep "Error"
in the Terminal.)
NFC output in ADB
Enabling this option adds information about NFC to the adb logs (error logs from the console can be accessed using adb logcat | grep "Error"
in the Terminal.)
Console enabled(コンソールの有効化)
When enabled, this option lets you use the Web Console in Firefox to remotely access the console output on the device; without this option enabled, the console.log()
function does nothing.
Gaia debug traces(Gaiaのデバッグトレース)
Enabling this directly enables DEBUG traces in Gaia; see バグ 881672 for more details.
Note: Unfortunately, not every app supports this mechanism to print their debug log. Instead, they control a "DEBUG" flag in code directly, so enabling this flag does NOT ensure that you'll see all debug logs.
Show accessibility settings(アクセシビリティの設定を表示)
This enables the accessibility settings menu, subsequently found at Settings > Accessibility. The options contained within the accessibility settings are as follows:
Screen reader(スクリーンリーダー)
Enabling this option turns on Firefox OS's screen reader. This is technology that allows a blind person to use a Firefox OS device. Currently at a very early stage, it changes the way the standard touch events work. When the screen reader is on, you must interact with the screen as follows:
- Touch somewhere to focus that app (or whatever) and be alerted as to what it is. This is indicated both by audible speech output and a rectangle around the selected item. Double tap anywhere on the screen (two taps in rapid succession) to activate the item that has the rectangle around it.
- Swipe from left to right to move sequentially through items on the screen. Items are moved through from left to right, then top to bottom, including scrolling the screen vertically if there are more items to display, and you will be alerted as to each one's name via speech output and a rectangle. Swiping right to left moves through the items in reverse order. Again, double-tap the screen to execute the currently highlighted item.
- Do a swipe with two fingers — left, right, up or down — to scroll the screen in that direction. This is equivalent to swiping one finger across the screen in the given direction when the screen reader is not running. For example, a two-finger swipe left on the first home screen will flip to the second one, and a two-finger swipe upwards on a home screen or browser would cause the screne to scroll downwards to show more content.
Note: If you have turned the screen reader on and wish to disable it again, you must navigate back to the setting via these new gestures and double-tap the checkbox once it is highlighted to turn it off again. That will restore the touch screen functionality to its default behaviour.
Note: In Firefox 1.4 and above, there is a quick toggle for the screen reader. Press volume up, then down, three times (up, down, up, down, up, down). The screen reader will instruct you to perform this same action again (volume up, down, up, down, up, down) to turn it on if it is not running, or to turn it off if it is already running. If you do not want to change the current toggle state, simply do something else. That way, you can turn it on and off at will to test your web application for accessibility without having to navigate the accessibility settings menu each time.
Speech volume(読み上げ音量)
A slider that controls how loud the speech is delivered.
Speech rate(読み上げの速さ)
A slider that controls how fast the speech is delivered.
Use Marketplace reviewer certs
TBD
Shake to save system log
Note: Introduced in Firefox 2.2
Enables Logshake, which polls the phone for high-acceleration movements. Upon detecting such a movement — i.e. when you shake the phone — it logs contents of the system log/logcat to the device's SD card, at logs/<datetime>. See バグ 1019816 for more information.
Verbose app permissions
Note: Introduced with Firefox 2.1
When this is enabled, developers (and privacy enthusiasts) may modify all permissions granted to installed privileged apps, using The "App Permission" pane in the Settings app. The app sub-pages under here are updated upon enabling the setting to provide a list of each API permission is requested for in the app's manifest file, along with choices to set that permission to. For example, "Schedule Alarms" appears with choices of Ask, Deny and Grant. Note that some apps may be unable to deal with changed permissions. If you experience any odd behavior, consider resetting the permission or re-installing the app.
Launch first time use
The "Launch first time use" button runs the "First-Time Use" (FTU) program; this lets you go through the initial setup and tutorial process, and is useful when trying to debug that process, or if you want to re-configure your device from scratch.
Unlock privileges
Reset and enable full DevTools
Note: Introduced in Firefox 2.2
This button allows you to enable unrestricted devtools mode where you can debug and override system applications from WebIDE. For security reasons, enabling this mode is going to wipe device data. Note that once this mode is enabled, it is highly suggested to setup a pincode to unlock your device as this features enables easy access to internal data of your system applications (private informations, passwords, ...).
ソフトウェア更新
Update channel(更新チャンネル)
Enables you to specify different update channels to get software updates from when your device receives OTA updates. Options are nightly
, aurora
... (others?)
Update URL(更新URL)
Enables you to specify different URLs from which to receive your updates.
古い設定
This section lists settings that are no longer provided, or no longer exist in the same state, but might still be interesting if you are running an older version of Firefox OS.
Accessibility(アクセシビリティ)
In versions of Firefox earlier than newer 1.4 versions, this controls the accessibility settings, as explained in the Show_accessibility_settings section above.
Grid(グリッド)
The "Grid" option, when enabled, causes the Firefox OS display to be overlaid with a grid pattern to help you gauge positioning and alignment of items. For example, below we see the Browser app running with the Grid option enabled:
The grid's heavier lines are 32 pixels apart, both horizontally and vertically.
Show frames per second(秒間のフレームを表示)
In Firefox OS versions older than newer 1.4, enabling this displays frames per second, as explained in the Frames_per_second section above.
Show time to load(ロード時間を表示)
In Firefox OS versions older than newer 1.4, enabling this displays time to load information, as explained in the Time_to_load section above.
Rocketbar enabled(ロケットバー有効)
In Firefox OS versions older than newer 1.4, this option enables the new Firefox Rocketbar on your device, which provides a useful new way to switch between apps, search, and more. When enabled, you'll find a search icon at the top left of the device, and the RocketBar can be brought up by swiping from the top left of the device towards the bottom left.
Note: In newer versions of Firefox OS, Rocketbar is enabled automatically and cannot be turned off.
Contacts debugging output in adb(adbのデバッグ出力に接触)
Enabling this option adds debugging information about contacts to the adb logs (error logs from the console can be accessed using adb logcat | grep "Error"
in the Terminal.)
Progressive paint (以前は Layers: Progressive paint)(進歩的な描画)
This was introduced to help with debugging of the Async Panning/Zoom module (APZ) during its implementation. Now APZ implementation is complete, this option is deprecated, and will be removed from future versions (see バグ 1003228).
Displayport Heuristics
- Default
- Center displayport
- Assume perfect paints
- Taller displayport
- Faster paints
- No checkerboarding
These options were introduced to help with debugging of the Async Panning/Zoom module (APZ) during its implementation, specifically to allow QA to experiment with different repainting heuristics to see which resulted in the least amount of checkboarding.. Now APZ implementation is complete, these options are deprecated, and will be removed from future versions (see バグ 1003228).
Enable APZ for all content (Async Pan/Zoom)
When enabled, the Async Pan/Zoom module allows panning and zooming to be performed on asynchronously, on another thread, with some noticeable differences to rendering behaviour. To find out more, read the MozillaWiki APZ article. Now APZ implementation is complete, this option is deprecated, and will be removed from future versions (see バグ 1003228).
Edges gesture()
Enabling this option allows you to swipe left and right from outside the screen towards the center, to navigate to the next and previous sheets (either web pages in the browser, or views inside another app.) This basically works like the browser navigator bar in Firefox, but is enabled by default in Firefox 2.1+.
Keyboard layouts(キーボードレイアウト)
上記の開発者固有オプションに加え、Firefox OS 1.4より前の開発者設定はキーボードレイアウトオプション機能がありました。これらにより実験的な中国語入力のオプションのオンオフ切り替えができます。
Firefox 1.4では、これらのオプションは削除されました。これは中国語キーボードレイアウト実装 (zhuyin と pinyin) が今や完了したためです。
記: 日本語といった、まだ開発中のキーボードレイアウトのため、オプトインするビルド時の設定があります。