Home > Developer > What's BREW

SophiaFramework : BREW  C++ Class Library & GUI Framework & XML Middleware

What's BREW

BREW: Binary Runtime Environment for Wireless

BREW was released by QUALCOMM in January 2001, it enables a single application to function on many different mobile handsets, even if the operating systems differs. BREW applications are developed in C/C++. BREW has an application delivery and billing system called BREW Distribution System ( BDS ).

KTF, Korea's second largest mobile phone carrier, offered BREW services for the first time worldwide in November 2001. KDDI, Japan's second largest carrier, started its BREW service called EZ Appli(BREW) in February 2003, and BREW is used worldwide by 60+ device manufacturers and 60+ carriers in 25+ countries. ( as of March 2009 )

What is BREW?

Application developers are now able to develop highly compatible e-mailers, browsers and phone books for BREW enabled handsets worldwide. BREW permits mobile handset makers to concentrate solely on hardware functions, allowing them to outsource application development. An added benefit for the carrier is the collection of fees when applications are purchased from the BDS.

Initially, BREW was middleware working on an RTOS (Real-Time Operating System), called REX (Real-Time Executive). It was intended as an internal library for developing software for Qualcomm's handset hardware components.

When first released, the CDMA 2000 was the only chip platform to have adopted BREW. But now, BREW enabled chips are available on W-CDMA/GSM/GPRS/EDGE/HSPDA platforms.

 The introduction of BREW to the World

What is BDS?

BDS distributes BREW applications and bills wireless subscribers. It also has a system for distribution and billing through a BREW API unit known as "Extension". If some bugs are discovered in the application, it can be updated through the wireless network. There is no need to recall any of the mobile handsets.

Objective of BREW

Embedded software developers face two big challenges during application development for mobile handsets.

One is the need to develop many versions of the same application for different mobile operating systems. The other is the huge size of the software needed to run all the added functionalities of increasingly sophisticated hardware. BREW answers both these challenges with a new type of platform.

With the release of BREW 4.0, expected in 2007, all of mobile handsets applications (web browsers, media players, etc) will be made with BREW. BREW will establish itself as a standard in the world of mobile OS.

Strengths of BREW


Because the BREW environment layer takes such little memory space, even low-end handsets are compatible with BREW.


BREW is in essence a collection of APIs, and new APIs can be added through extensions. Third parties may provide these extensions.


BREW's API specification is set to a global standard. Thus, applications developed with BREW will works on most BREW enabled handsets worldwide.


BREW applications can take full advantage of handset functions, through assembler intelligence programming functions of hardware control.


QUALCOMM offers a SDK with source code to migrate BREW onto devices such as PDA, car navigations, etc.


With the availability of TCP/IP, "Push" information delivery and "PtoP" applications, such as instant messenger, can be developed.

Problems and Solutions with BREW


A BREW application is not ZIP compressed like Java.


There is no BREW profiler that automatically collects data on speed and memory of an application at its run time.

Static and Global Variables

In BREW programming, global variables and static variables can not be used.

SDK Switcher

When there are multiple versions of BREW SDK in one PC, environment path for SDK and extensions such as .mif, .bri, .qsc will be associated with newly installed version of SDK.

Camera Emulator

BREW Emulator does not have camera emulation function, so programmers who develop application which uses camera interface have to do debugging on the actual mobile phone.

Floating Point Operation and Mathematical Function

The biggest restrictions on BREW are that global and static variables cannot be used. And also there are almost no mathematical functions availabale for BREW.

C++, GUI and XML

C++ class libraries, GUI framework and XML middleware are not included in BREW SDK.