
Binary Runtime Environment for Wireless ( BREW 、 Brew MPまたはQualcomm BREWとも呼ばれる) は、Qualcommが開発した旧式のアプリケーション開発プラットフォームで、元々はコード分割多重アクセス(CDMA)携帯電話向けで、モバイルゲームなどのサードパーティ製アプリケーションに対応していました。一部のフィーチャーフォン(主にミドルレンジからハイエンドの携帯電話と同等の仕様) やスマートフォンにも搭載されていました。

1999 年に CDMA ベースの携帯電話のワイヤレス アプリケーション用プラットフォームとして初めて開発され、2001 年 9 月にデビューしました。ゲームをプレイしたり、メッセージを送信したり、写真を共有したりするための小さなプログラムをダウンロードして実行できるソフトウェア プラットフォームとして、Brew MP の主な利点は、標準化されたアプリケーション プログラミング インターフェイスのセットを提供することで、アプリケーション開発者がすべての Brew MP デバイス間でアプリケーションを簡単に移植できることでした。Brew MP 対応ハンドセット用のソフトウェアは、無料でダウンロードできる Brew MPソフトウェア開発キット(SDK)を使用してCまたはC++で開発できます。 [ 1 ] BREWランタイム ライブラリは、プログラマがシステム インターフェイスをコーディングしたり、ワイヤレス アプリケーションを理解したりすることなくアプリケーションを開発できるように、ワイヤレス デバイスのオン チップファームウェアまたはオペレーティングシステムの一部です。BREW は擬似オペレーティングシステムと説明されていますが、真のモバイル オペレーティングシステムではありません。BREW はコードをネイティブに実行するため、Java MEのような仮想マシンではありませんでした。
ソフトウェア開発者にとって、Brew MP は、 C、C++、Javaでソフトウェアやアプリケーションを作成できる完全なアプリケーション プログラミング インターフェイス(API) のセットであり、アプリケーション固有集積回路(ASIC)によってサポート (プラットフォーム) されていました。メモリ フットプリントは約 15,900 KB (15.9 MB) です。バージョン 1.x から 2.x (2004 年以前) では、メモリ フットプリントは約 60 KB と小さくなっていました。BREW はハードウェアへの直接アクセスも特徴としています。Brew MP より前のバージョンはREX OS (Qualcomm 独自の RTOS)で動作/依存していましたが、Brew MP は Brew RTOS (高度なフィーチャー フォン向けの別の RTOS) を使用しました。BREW は、インタプリタ ベースのコードを使用する代わりに、独自のモバイル ハードウェアにも依存していました。

2001 年に登場した BREW の最初の実際のバージョンです。元々は、京セラ QCP-3035 (市販されている最初の BREW 対応携帯電話) とシャープ Z-800 用に作られました。パーソナル デジタル アシスタント レベルの機能 (通常は一部のアプリケーションと BREW アプリケーションを実行する機能) を利用しました。ただし、後のバージョンで利用可能になった高度なマルチメディア機能と Java ME のサポートがありません。モノクロ スクリーンのサポートは BREW 2.0 で削除されたため、モノクロ スクリーンをサポートする唯一の BREW バージョンでした。BREW 1.1 は、Java ME アプリケーションを実行できる最初の Brew バージョンです。2002 年と 2003 年初頭に一部の BREW 対応携帯電話で利用可能でした。
2002年半ばにリリースされたこのバージョンは、2002年後半から2009年後半にかけて、BREW対応のほとんどの携帯電話にインストールされました。高度なマルチメディア再生(ビデオファイルやオーディオファイルの再生、3GPPマルチメディアフォーマットのサポート)、EV-DOおよびBluetooth接続のサポート、スクリーンセーバー、その他の改良が含まれています。また、BREW 2.1ではMIDP 2.0をサポートし、BREW 1.xアプリケーションとの下位互換性も備えています。
2004年以降、インドネシア、中国、その他の国々のほとんどのフィーチャーフォンに搭載され、2017年まで一部の通信事業者によってサポートされていた。

2002年半ばにリリースされたこのバージョンは、2004年後半から2012年初頭にかけて、BREW対応のほとんどの携帯電話にインストールされました。これは、BREWの中で初めて大幅な変更が加えられたバージョンであり、WiFi接続、OpenGL ES 1.0、3G、GPS、QWERTYベースのキーパッドのサポート、176x220を超えるモバイル画面のサポートなど、携帯電話向けの機能の大部分を備えています。BREW 2.xアプリケーションとの下位互換性がありますが、BREW 1.xアプリケーションとの下位互換性はありません。
また、これはBREWの最初のバージョンとして3Dグラフィックスレンダリングをサポートしていますが、ソフトウェアレンダリングのみを使用しています(Java MEゲーム用のJSR 184もサポートしています)。ハードウェアアクセラレーションもOpenGL ES 1.0を介してネイティブにサポートされています(3Dアクセラレーションチップが利用可能な場合)。
2005年以降、米国をはじめとする多くの国のフィーチャーフォンに搭載され、現在でも一部の通信事業者によってサポートされている。
2007年から2011年にかけてリリースされたこのアプリは、ごく一部の携帯電話(LG enV TouchやLG Versaなど)にのみ搭載されていました。改良点はわずかで、後にBrew MPに取って代わられました。加速度センサーのサポートなど、Brew MPにも搭載されている追加機能も備えています。
メキシコとブラジルで販売されているZeeboコンソールにも使用されています。

Brew 5.0は2009年にリリースされ、SVG画像を含むいくつかの新機能が追加されました。また、BREW 3.xおよび4.xとの下位互換性も維持されました。このバージョンでは、一部の旧バージョンのAPIが廃止されました。さらに、このリリースでは、QualcommのREX OSを使用する代わりに、BREW独自のリアルタイムカーネルへの移行も行われました。
Brew MPの開発者ページは、8年間の活動停止を経て、2021年7月23日に閉鎖されました。
開発プロセス中にアプリケーションをテストするために、SDK には BREWエミュレータ、または BREW バージョン 1.1 以降ではBREW シミュレータが含まれています。BREW 環境では、複数のレベルのアプリケーション署名が提供されます。1 つの署名は開発者を認証します。もう 1 つの署名は、アプリケーションが True BREW テストに合格し、Intertek を通じて付与されたことを検証します。個々の通信事業者は、この 2 番目の署名の存在と検証を強制するか無視するかをハンドセットに設定します。BREW 対応のハンドセットには、アプリケーションが署名の検証をバイパスできるテスト モードがあります。Qualcomm は、テストに合格したアプリケーションを BREW 対応の無線ネットワーク事業者に提供します。事業者は、これらのアプリケーションの中から、エンド ユーザーにカタログで提供するものを選択できます。
BREW独自の署名は、電子シリアル番号(ESN)とモバイル機器識別子(MEID)によって保護されています。これにより、BREWアプリケーションが通信事業者ではなく第三者に不正に配布/サイドロードされることを防ぎます。BREWベースの通信事業者を介してアプリケーションがOTAでダウンロードされると、.sigファイルによってインストールされた端末に電子シリアル番号が自動的に生成されます。
BREWエミュレーター(BREW Simulator)は、端末ハードウェアをエミュレートしません。代わりに、BREWアプリケーションはネイティブコードにコンパイルされ、互換性のあるBREWランタイムライブラリとリンクされます。そのため、テストモードで動作するBREW端末がないと、メモリアライメントに関連するプラットフォームのバグや、ファームウェア関連のさまざまな不具合についてアプリケーションをテストすることはできません。
テスト目的で、BREW アプリケーションは、 Qualcomm のBREW App Loaderを使用して、USB またはシリアルケーブル経由で BREW 互換のハンドセットに転送できます。BREW アプリケーションには、いくつかのコンポーネントが含まれており、これらが存在しない場合、または有効でない場合、再起動時にアプリケーションが自動的に削除されます。これには、コンパイル済みのバイナリ ファイル、アプリケーション、使用する機能、要求される権限を記述したファイル、必要に応じて文字列および画像リソースを含むファイル、およびアプリケーションのデジタル署名を含むファイルが含まれます。
BREW アプリケーションは、端末のメモリ容量を節約するために、一般ユーザー向け端末からアンロードされる場合があります。これは「無効化/復元」と呼ばれ、True BREW テスト プロセスの要件です。無効化/復元を使用しても保存されたファイルはそのまま保持され、再度料金を支払うことなくアプリケーションを再インストールできます。「無効化」の場合、端末からすべての .bar、.mod、および .sig ファイルが削除されますが、その他のファイルは元の場所に残ります。「復元」操作中は、.bar、.mod、および .sig ファイルが通信事業者のモバイル ストアからダウンロードされ、以前に無効化されたアプリケーションは完全な機能を維持します。無効化/復元プロセスは、端末のメモリがいっぱいになった場合にのみ、一般ユーザーが利用できます。
2008年5月28日、クアルコムとアドビは、 Adobe Flash LiteをBREWのサポート対象ユーザーインターフェースとして統合するための提携を発表した。
2006年3月以降、開発者向けの最も安価なデジタル署名パッケージは、100件の申請提出で400米ドルとなっています。[ 2 ]
厳密に言えば、Qualcomm BREWの厳格な認証要件のため、BREWではJava MEよりも市場投入までの時間が長くなる可能性があります。この認証プロセスは、テストや開発コストに伴う困難さから、予算や時間の少ない開発者にとって参入障壁が高くなり、市場の希薄化が抑制されるため、既存のソフトウェア開発者にとっては利点と捉えられるかもしれません。特に、カジュアルゲームの開発者は、趣味で開発・公開されたフリーウェアの類似品と競合するリスクが低くなります。しかし、これはエンドユーザーにとってコスト増につながります。エンドユーザーにとって最適なソリューションを最低価格で開発するための競争が少なくなるためです。
現在、ほとんどの開発者はJava MEとBREWの両方をサポートするか、Java MEのみをサポートするかのいずれかを選択しています。Java MEは、ほとんどの通信事業者が非認証のJava MEアプリケーションを自社の携帯電話で実行することを許可しているため、市場にとってより低コストになる可能性があります。Java ME搭載携帯電話は、BREW対応端末よりも大きな市場シェアを占めています。Java MEはヨーロッパで広く使用されていますが、BREWは主に米国と日本で使用されています。BREWの初期の利点の1つは、Verizonが携帯電話からアプリケーションを簡単に購入できるようにしたのに対し、ほとんどのJava ME通信事業者はそうではなかったことです。しかし、現在ではほとんどのJava ME携帯電話の通信事業者が、簡単にアクセスできる購入ポータルを提供しています。
Java ME は、その異なる API のため、Java の仮想マシン (インタプリタベースのコード) に依存しており、ネイティブ C/C++ プラスと直接ハードウェア アクセス (特にゲームの場合) を使用する BREW よりも技術的に遅い。[ 3 ] Java ME は、限られたサブセットの API (アプリケーションとゲームの両方) を持っています。ただし、サードパーティの API と実装 ( HI CORPORATION のMascotCapsule (3D レンダリング API) や NTT ドコモのDoJa / Starなど) は利用可能ですが、日本以外 (特にデバイスの採用) では人気がなく成功していません。一方、BREW (は、独自の API と直接ハードウェア アクセスに依存しています。
Java ME アプリケーションやゲームのパフォーマンスは BREW より遅い。3D ゲームの場合、Java ME は JSR 184 (M3G) を使用するため、Java ME で開発された 3D ゲームは動作が遅く (ほとんどの端末で 1 秒あたり 10 フレームになる)、グラフィックも制限される。一方、BREW はソフトウェア レンダリング (BREW 端末に 3D アクセラレーション チップがない場合) または OpenGL ES (パフォーマンスを活用できる) を使用する。[ 4 ]
Java ME とは異なり、BREW アプリケーションがクラッシュすると、BREW がアプリケーションがクラッシュした際に処理および復旧できないため、電話が再起動します。アプリケーションがクラッシュすると、ディレクトリのルートにある「except」フォルダに「$SYS.EXCEPT_(4 桁の数字)」が作成され、電話は自動的に再起動します。BREW で Java ME アプリケーションがクラッシュすると、Java ME が正しく処理し、電話の再起動から復旧します。
一部の携帯電話メーカーは、自社の一部の機種においてJava MEの仮想マシンの統合を許可していません。
現在では、Java MEからBREWへの移植を完全に自動化する商用技術が存在します。これにより、JavaとC/C++の両方で同じアプリケーションの2つのバージョンを開発する必要がなくなり、BREWアプリケーション開発への参入障壁が低減されます。
BREW のシステム障害は、コンポーネントが正常に動作しなくなった、BREW アプリケーションに必要なファイルが見つからない、アプリケーションがクラッシュした、またはその他のエラーによって発生します。これにより、ディレクトリのルートにある「except」フォルダ内に「$SYS.EXCEPT_XXXX」ファイルが作成されます。BREW のシステム障害には、コンポーネントエラーと再起動による強制終了の 2 つの種類があります。


コンポーネントエラーとは、コンポーネントが正常に動作しなくなった場合に、約5秒間、黒、白、または青の画面にエラーテキストが表示され、その後電話機が自動的に再起動するエラーです。このエラーは、アクティビティによって異なる場合があります。例:
この変異が発生する確率は非常に低く、再起動や死亡の方が一般的です。この変異を引き起こす可能性のある活動の例を以下に示します。

再起動エラーとは、テキストが表示された黒、白、または青の画面ではなく、電話機が自動的に再起動してしまうエラーです。このタイプのエラーが発生する頻度は非常に低いですが、実際にはもっと頻繁に発生します。このタイプのエラーを引き起こす可能性のある操作の例を以下に示します。

Qualcomm BREW は一部の携帯電話メーカーや携帯電話ネットワークで使用されていますが、BREW を搭載した携帯電話には Qualcomm BREW のブランド表示がないことが多く、BREW は携帯電話メーカーや通信事業者のカスタム「スキン」が上に重ねられた状態でバックグラウンドで動作するため、エンドユーザーはほとんどの場合、このことを知りません。Qualcomm BREW は、米国ではSprint Nextel、metroPCS、US Cellular、Verizon、Syringa Wireless、Cricket Wireless、AT&T (HTC Freestyle 内) 、日本ではKDDI、韓国ではKTとSK Telecom 、中国ではChina Telecom、ラテンアメリカではMOVILNETと BellSouth Chile 、インドではSistema Shyam (現在の MTS) 、ヨーロッパ、英国、オーストラリアの大部分では3ネットワークが自社ネットワーク向けに特別に製造した多くの携帯電話で使用しています。
BREWはCDMA方式で動作するモバイルネットワークでのみ提供されるため、その他の国々(ヨーロッパの一部、英国、3ネットワーク経由のオーストラリア、インド、日本、中国を除く)ではCDMAネットワークが存在しないため、BREWは利用できません。
Huawei、INQ Mobile、Amoi、LG、Samsung Mobile、ZTE、HTCなどのメーカーは、一部の携帯電話にQualcomm BREWを使用しており、3 Skypephone、INQ1、ZTE Z431、Huawei u7510 (3 Touch)などの英国製携帯電話にも搭載されています。TectoyのZeeboは、BREWを使用する唯一のゲーム機です。MotorolaのT720とRAZR V3mもQualcomm BREWを使用しています。