Home > Developer > BREW and Mobile Java

BREW and Mobile Java

Preface - Embedded Software -

Recently, mobile phones have added new functions such as media player and digital terrestrial broadcasting ( TV ). As these phones become more highly functional, the development volume of embedded software grows exponentially.

Embedded software is closely coupled to the device's chipset and other electronic components. Therefore, embedded software development requires highly specific skills and knowledge. The development entails a huge amount of man hours, and the resulting software is likely to be "closed".

To correct these inefficient development practices, an open and object-oriented embedded platform is required.

BREW, and mobile Java (MIDP and J2ME) are the solutions the cellular world desperatly needs.

BREW / mobile Java and Embedded Software

Embedded software controls a device's hardware. On a mobile phone, the"hardware" components are liquid crystal displays, sound circuits, etc.

Since embedded software directly controls chipsets and components , generally C or assembler is used for its coding.

Mobile phone software can be divided into two layers. The embedded part is the operating system layer ( dependant on hardware ) and the application layer ( independent of hardware ).

BREW and mobile Java are object-oriented software platforms for the application layer.

Embedded Software BREW or mobile Java application
Programming Language Assembler / C C / C++, Java
Data structure Low Level High Level
Dependence on specific hardware Dependent Independent
Real time processing Required Not required

BREW and mobile Java

The following table shows the main characteristics of BREW and mobile Java.

BREW mobile Java
Environment AEE Java virtual machine
OSREX Independent of OS
API BREW API Java API
Language C/C++ Java Language
Boot up speed Fast Slow
Execution speed Fast Slow
Memory management Need to be conscious No need to be conscious (Because garbage collection does it automatically)
Processing strings Implementation required Use String class
Data management Implementation required Several collection classes
*1 Thread Cooperative /
Single Thread
Preemptive /
Multi Thread
Network Asynchronous communication Synchronous communication
Event handling Manual Auto
Signature Required Not required ( some required)
Security Verification by Qualcomm or Carrier Sandbox
*2 Communication TCP/IP, UDP, HTTP/HTTPS, FTP, POP/SMTP etc. HTTP/HTTPS
GUI Implementation required Use GUI componets
Application Compression None JAR Compression
Profiler None Included in SDK

*1 Network communication is very simple with mobile Java, loop instructions ( while or if ) are used until all data is loaded. BREW uses callbacks for network communication. When some portion of data is received/sent, a message saying that BREW has "succeeded in receiving/sending data" comes in as a callback. Programming with callbacks is more difficult than loop controls, since there is no way of knowing when the events will occur.

*2 POP / SMTP is available through middleware products such as SophiaFramework.