Brew Interview Preparation Guide
Download PDF

Brew job preparation guide for freshers and experienced candidates. Number of Brew frequently asked questions(FAQs) asked in many interviews

78 Brew Questions and Answers:

1 :: Explain about Binary Runtime Environment (BREW)?

Binary Runtime Environment for Wireless (Brew MP, Brew, or BREW) is an application development platform created by Qualcomm, originally for code division multiple access (CDMA) mobile phones, featuring third-party applications such as mobile games. It is offered in some feature phones but not in smartphones. It debuted in September 2001.

2 :: Explain usage or BREW?

Brew OS is used by some mobile phone manufacturers and mobile networks, however most often the end-user does not know this since mobile phones running Brew most often lack any Brew OS branding and Brew runs in the background with the custom "skins" of the mobile phone manufacturer or operator on-top. Brew OS is used by Sprint Nextel, metroPCS, Cricket Wireless, U.S. Cellular, Verizon, Syringa Wireless, and AT&T in the US and by the 3 network in much of Europe, the UK and Australia on many mobile phones produced especially for their network.

3 :: What notification events can an app register for?

An app can register for the following System notifications:

TAPI (Class ID: 0x01001007)

NMASK_TAPI_STATUS
0x0001
TAPI Status change event

NMASK_TAPI_SMS_TEXT
0x0002
Incoming SMS

NMASK_TAPI_SMS_TS
0x0004
SMS message on specific Teleservice ID

INETMGR

NMASK_OPENED
0x0001
Network layer is available

NMASK_CLOSED
0x0002
Network layer is closed

NMASK_IDLE
0x0004
Network layer available and idle

4 :: How to test application for proper handling of Suspend/Resume events on a non- provisioned phone?

On the Kyocera 3035, you can test your app's handling of Suspend/Resume events by enabling automatic Keyguard (Main Menu->Settings->Keyguard) before running your app. When the Keyguard kicks in, the running app will receive a Suspend Event. The app will receive Resume event when the screen is unlocked.

On the Sharp Z-800, you can test your app's handling of Suspend/Resume events by setting the alarm to go off a few minutes in the future (Main Menu->Setup/Tools->Alarm->Daily Alarm) and then running the BREW app. Please note that in order for the app to be suspended when the alarm goes off, BREW Priority Setting must be off (Main Menu->Setup/Tools->BREW Priority Setting).

5 :: How to recover the phone from an "UndefInst Exception"?

"Undef Inst Exception" stands for "undefined instruction exception," and means that the program pointer has jumped to a code segment that contains an undefined instruction. This can be the result of memory corruption, a stack overrun, or version-related incompatibilities between applet code and the BREW image on the phone.

Memory is tighter on the phone than when running on the emulator. Therefore, memory and stack overrun problems will be more likely to show up on the phone. You should double check memory related areas of your code, especially auto variable arrays and the maximum total size of allocated memory.

To clear the phone, pull the battery out for a few seconds.

6 :: What is a "Re-entrant Data Abort"?

The "Re-entrant Data Abort" exception is often caused by stack overrun. When an applet is running on the phone the stack size is small, and you are more likely to see stack overrun problems than when running on the emulator. Solutions to this problem are reducing the size or number of objects on the stack, and using objects allocated on the heap instead of automatic variables.

7 :: What is a "Pref Abort Exception"?

A "Pref Abort Exception" usually indicates that memory important to the phone operating system has been trashed. The two most common causes of this exception are data corruption (i.e. running off the end of an array), and stack overruns.

8 :: What is an "SWI Exception"?

An "SWI Exception" is usually related to heap memory mismanagement. The most common causes of heap memory corruption are: overwriting the bounds of your allocated arrays, freeing objects more than once, and writing to wild or NULL pointers.
In addition to the more common causes, stack overrun can also lead to SWI Exceptions.

9 :: Why does the emulator display a blank screen with my applications name when my application exits?

Problem: When an application exits while running on the emulator, instead of returning to the main menu screen, a blank screen is displayed with the application name in the upper left corner.

This behavior is caused by not freeing all allocated memory before exiting the application. Any buffer you allocate using MALLOC or IHEAP_Malloc() must be freed using FREE or IHEAP_Free(). For any instance of a BREW class that you create, you must call the corresponding release function to free that instance.

10 :: How does the memory architecture in BREW work?

BREW device has Flash RAM and Heap RAM. You can treat Flash RAM as a hard drive. Programs are stored there, but not run from it. You can treat Heap RAM as you would always treat a memory heap. Say you have an application that is 35k in size. This will take 35k from the Flash RAM to store on the device. When the application is run, the 35k will be loaded into Heap RAM in its entirety plus however much Heap RAM it needs to allocate. When the applet is released, this Heap RAM is freed. It will still occupy space on the Flash RAM until it is removed from the device.