Professional Documents
Culture Documents
development
Getting started guide
BlackBerry device application development Getting started guide
At the time of publication, this documentation is based on the BlackBerry Java Development Environment version 4.7.0.
©2008 Research In Motion Limited. All rights reserved. BlackBerry®, RIM®, Research In Motion®, SureType® and related trademarks, names,
and logos are the property of Research In Motion Limited and are registered and/or used as trademarks in the U.S., Canada, and countries
around the world.
Microsoft, ActiveX, Internet Explorer, and Windows are trademarks of Microsoft Corporation. Sun, and Java are trademarks of Sun
Microsystems, Inc. .All other trademarks are the properties of their respective owners.
The BlackBerry smartphone and other devices and/or associated software are protected by copyright, international treaties, and various
patents, including one or more of the following U.S. patents: 6,278,442; 6,271,605; 6,219,694; 6,075,470; 6,073,318; D445,428; D433,460;
D416,256. Other patents are registered or pending in the U.S. and in various countries around the world. Visit www.rim.com/patents for a list of
RIM (as hereinafter defined) patents.
This documentation including all documentation incorporated by reference herein such as documentation provided or made available at
www.blackberry.com/go/docs is provided or made accessible "AS IS" and "AS AVAILABLE" and without condition, endorsement, guarantee,
representation, or warranty of any kind by Research In Motion Limited and its affiliated companies ("RIM") and RIM assumes no responsibility
for any typographical, technical, or other inaccuracies, errors, or omissions in this documentation. In order to protect RIM proprietary and
confidential information and/or trade secrets, this documentation may describe some aspects of RIM technology in generalized terms. RIM
reserves the right to periodically change information that is contained in this documentation; however, RIM makes no commitment to provide
any such changes, updates, enhancements, or other additions to this documentation to you in a timely manner or at all.
This documentation might contain references to third-party sources of information, hardware or software, products or services including
components and content such as content protected by copyright and/or third-party web sites (collectively the "Third Party Products and
Services"). RIM does not control, and is not responsible for, any Third Party Products and Services including, without limitation the content,
accuracy, copyright compliance, compatibility, performance, trustworthiness, legality, decency, links, or any other aspect of Third Party Products
and Services. The inclusion of a reference to Third Party Products and Services in this documentation does not imply endorsement by RIM of
the Third Party Products and Services or the third party in any way.
EXCEPT TO THE EXTENT SPECIFICALLY PROHIBITED BY APPLICABLE LAW IN YOUR JURISDICTION, ALL CONDITIONS, ENDORSEMENTS,
GUARANTEES, REPRESENTATIONS, OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, ANY
CONDITIONS, ENDORSEMENTS, GUARANTEES, REPRESENTATIONS OR WARRANTIES OF DURABILITY, FITNESS FOR A PARTICULAR
PURPOSE OR USE, MERCHANTABILITY, MERCHANTABLE QUALITY, NON-INFRINGEMENT, SATISFACTORY QUALITY, OR TITLE, OR ARISING
FROM A STATUTE OR CUSTOM OR A COURSE OF DEALING OR USAGE OF TRADE, OR RELATED TO THE DOCUMENTATION OR ITS USE,
OR PERFORMANCE OR NON-PERFORMANCE OF ANY SOFTWARE, HARDWARE, SERVICE, OR ANY THIRD PARTY PRODUCTS AND
SERVICES REFERENCED HEREIN, ARE HEREBY EXCLUDED. YOU MAY ALSO HAVE OTHER RIGHTS THAT VARY BY STATE OR PROVINCE.
SOME JURISDICTIONS MAY NOT ALLOW THE EXCLUSION OR LIMITATION OF IMPLIED WARRANTIES AND CONDITIONS. TO THE EXTENT
PERMITTED BY LAW, ANY IMPLIED WARRANTIES OR CONDITIONS RELATING TO THE DOCUMENTATION TO THE EXTENT THEY CANNOT
BE EXCLUDED AS SET OUT ABOVE, BUT CAN BE LIMITED, ARE HEREBY LIMITED TO NINETY (90) DAYS FROM THE DATE YOU FIRST
ACQUIRED THE DOCUMENTATION OR THE ITEM THAT IS THE SUBJECT OF THE CLAIM.
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW IN YOUR JURISDICTION, IN NO EVENT SHALL RIM BE LIABLE FOR ANY TYPE
OF DAMAGES RELATED TO THIS DOCUMENTATION OR ITS USE, OR PERFORMANCE OR NON-PERFORMANCE OF ANY SOFTWARE,
HARDWARE, SERVICE, OR ANY THIRD PARTY PRODUCTS AND SERVICES REFERENCED HEREIN INCLUDING WITHOUT LIMITATION ANY
OF THE FOLLOWING DAMAGES: DIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, INDIRECT, SPECIAL, PUNITIVE, OR AGGRAVATED
DAMAGES, DAMAGES FOR LOSS OF PROFITS OR REVENUES, FAILURE TO REALIZE ANY EXPECTED SAVINGS, BUSINESS INTERRUPTION,
LOSS OF BUSINESS INFORMATION, LOSS OF BUSINESS OPPORTUNITY, OR CORRUPTION OR LOSS OF DATA, FAILURES TO TRANSMIT OR
RECEIVE ANY DATA, PROBLEMS ASSOCIATED WITH ANY APPLICATIONS USED IN CONJUNCTION WITH RIM PRODUCTS OR SERVICES,
DOWNTIME COSTS, LOSS OF THE USE OF RIM PRODUCTS OR SERVICES OR ANY PORTION THEREOF OR OF ANY AIRTIME SERVICES,
COST OF SUBSTITUTE GOODS, COSTS OF COVER, FACILITIES OR SERVICES, COST OF CAPITAL, OR OTHER SIMILAR PECUNIARY LOSSES,
WHETHER OR NOT SUCH DAMAGES WERE FORESEEN OR UNFORESEEN, AND EVEN IF RIM HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW IN YOUR JURISDICTION, RIM SHALL HAVE NO OTHER OBLIGATION, DUTY,
OR LIABILITY WHATSOEVER IN CONTRACT, TORT, OR OTHERWISE TO YOU INCLUDING ANY LIABILITY FOR NEGLIGENCE OR STRICT
LIABILITY.
THE LIMITATIONS, EXCLUSIONS, AND DISCLAIMERS HEREIN SHALL APPLY: (A) IRRESPECTIVE OF THE NATURE OF THE CAUSE OF
ACTION, DEMAND, OR ACTION BY YOU INCLUDING BUT NOT LIMITED TO BREACH OF CONTRACT, NEGLIGENCE, TORT, STRICT LIABILITY
OR ANY OTHER LEGAL THEORY AND SHALL SURVIVE A FUNDAMENTAL BREACH OR BREACHES OR THE FAILURE OF THE ESSENTIAL
PURPOSE OF THIS AGREEMENT OR OF ANY REMEDY CONTAINED HEREIN; AND (B) TO RIM AND ITS AFFILIATED COMPANIES, THEIR
SUCCESSORS, ASSIGNS, AGENTS, SUPPLIERS (INCLUDING AIRTIME SERVICE PROVIDERS), AUTHORIZED RIM DISTRIBUTORS (ALSO
INCLUDING AIRTIME SERVICE PROVIDERS) AND THEIR RESPECTIVE DIRECTORS, EMPLOYEES, AND INDEPENDENT CONTRACTORS.
IN ADDITION TO THE LIMITATIONS AND EXCLUSIONS SET OUT ABOVE, IN NO EVENT SHALL ANY DIRECTOR, EMPLOYEE, AGENT,
DISTRIBUTOR, SUPPLIER, INDEPENDENT CONTRACTOR OF RIM OR ANY AFFILIATES OF RIM HAVE ANY LIABILITY ARISING FROM OR
RELATED TO THE DOCUMENTATION.
Prior to subscribing for, installing, or using any Third Party Products and Services, it is your responsibility to ensure that your airtime service
provider has agreed to support all of their features. Installation or use of Third Party Products and Services with RIM's products and services
may require one or more patent, trademark, copyright, or other licenses in order to avoid infringement or violation of third party rights. You are
solely responsible for determining whether to use Third Party Products and Services and if any third party licenses are required to do so. If
required you are responsible for acquiring them. You should not install or use Third Party Products and Services until all necessary licenses
have been acquired. Any Third Party Products and Services that are provided with RIM's products and services are provided as a convenience to
you and are provided "AS IS" with no express or implied conditions, endorsements, guarantees, representations, or warranties of any kind by
RIM and RIM assumes no liability whatsoever, in relation thereto. Your use of Third Party Products and Services shall be governed by and
subject to you agreeing to the terms of separate licenses and other agreements applicable thereto with third parties, except to the extent
expressly covered by a license or other agreement with RIM.
The terms of use of any RIM product or service are set out in a separate license or other agreement with RIM applicable thereto. NOTHING IN
THIS DOCUMENTATION IS INTENDED TO SUPERSEDE ANY EXPRESS WRITTEN AGREEMENTS OR WARRANTIES PROVIDED BY RIM FOR
PORTIONS OF ANY RIM PRODUCT OR SERVICE OTHER THAN THIS DOCUMENTATION.
Published in Canada
Contents
1 Tools for creating a BlackBerry device application........................................................................................ 7
Using the BlackBerry Java Development Environment................................................................................7
Prerequisites for using the BlackBerry Java Development Environment...........................................7
Using the BlackBerry JDE Plug-in for Eclipse ...............................................................................................7
Prerequisites for using the BlackBerry JDE Plug-in for Eclipse.......................................................... 8
Development tools............................................................................................................................................ 8
BlackBerry simulators....................................................................................................................................... 9
The BlackBerry Smartphone Simulator .................................................................................................. 9
The BlackBerry MDS simulator................................................................................................................ 9
The BlackBerry email server simulator..................................................................................................10
Development tools
The BlackBerry® Java® Development Environment (JDE) and BlackBerry® Java® Development Environment Plug-
In for Eclipse™ include multiple tools that you can use to develop BlackBerry device applications. You can also
obtain these tools by downloading the BlackBerry Java Development Environment Component Package..
Tool Description
RAPC Use the RAPC command prompt compiler to compile .java and .jar files into .cod files that you
can run in the BlackBerry Smartphone Simulator or load onto a BlackBerry smartphone. When
you invoke RAPC, use the "-import=" option to specify the net_rim_api.jar file as an input file.
For example, the following command prompt instruction compiles the SampleApp.jar file into a
.cod file of the same name:
rapc import=net_rim_api.jar codename=SampleApp\SampleAppDriver -
midlet SampleApp.jad Samples\SamplaApp.jar
JavaLoader From a command prompt, use the JavaLoader tool to:
"Add, update, or remove a BlackBerry device aplication on a BlackBerry smartphone for testing
purposes. For production BlackBerry device applications, use the BlackBerry Desktop Software.
"View information about BlackBerry device application .cod files.
To run the JavaLoader tool, type a command with the following format:
javaloader [-u] [-p<port>|<pin>] [-b<baud>] [-d0|-d1] [-w<password>]
[-q] <command>
Signature Tool Use the Signature Tool application to send code signature requests to the BlackBerry Signing
Authority Tool. Send code signature requests when your BlackBerry device application code
requires access to controlled APIs, classes, and methods.
Preverify Use the Preverify tool to partially verify your classes before loading your BlackBerry device
application onto a BlackBerry smartphone. Completing this step will reduce the amount of
processing the smartphone must perform when you load your BlackBerry device application.
The Preverify tool receives a class path as input and produces new classes in an output directory
that you specify.
To run the Preverify tool, from the command prompt, type a command in the following format:
preverify [-d] output -classpath <directory> input; <directory>
8
1: BlackBerry simulators
Tool Description
JDWP The Java Debug Wire Protocol (JDWP) program lets you debug BlackBerry device applications
using third-party IDEs. The BlackBerry JDE Component Package includes the files that JDWP
requires to debug BlackBerry device applications:
• DefaultBuild.rc: a configuration file
• "FixedBuild.rc: a configuration file
• "Launcher.exe: a utility tool
• "focusFlipper.exe: a utility tool
• RimUsbJni.dll: a helper file that permits the JDWP program to communicate with a
BlackBerry smartphone through a USB port
BlackBerry simulators
The BlackBerry® Java® Development Environment (JDE) and the BlackBerry® Java® Development Environment
Plug-In for Eclipse™ include three different simulators you can use to create and test a BlackBerry device
application for a BlackBerry smartphone. See the BlackBerry Simulator Guide for more information on how to use
BlackBerry Smartphone Simulators.
9
Getting started guide
10
2
Creating a BlackBerry device application
Create a basic BlackBerry device application
Create a BlackBerry device application with advanced UI features
Set the information and type for the project for the HelloWorld application
1. In the Navigator view, select a BlackBerry project.
2. Right-click the project and select Properties.
3. In the Properties for pane, select BlackBerry Project Properties.
4. Click the General tab.
5. In the Title field, type Hello World Sample.
6. In the Version field, type a version number.
7. In the Vendor field, type a vendor name, for example, Research In Motion Ltd.
8. Click the Application tab.
9. In the Project type drop-down list, select the CLDC option.
10. Click OK.
Getting started guide
Add .java source files to the project for the HelloWorld application
The .java source file name must match the name of the public class or interface in the file. It must also be located
in a folder structure that matches its package name.
For example, if the workspace file is C:\name\ws.jdw and it contains a com.mycompany.MyClass class, then you
must name the project (.java) source file MyClass.java, and store it in C:\name\com\mycompany\MyClass.java.
1. In the Navigator view, select a BlackBerry project.
2. Right-click the project and select Add File to Project.
3. In the File Name field, type HelloWorld.
4. Click Open.
Allow the HelloWorld application start sending and receiving events when the
application starts
The UiApplication class is the base class for all BlackBerry® device applications that provide a UI.
12
2: Create a basic BlackBerry device application
For a BlackBerry device applicaion to provide a UI, the BlackBerry device application must extend the
net.rim.device.api.ui.UiApplication class. This class provides methods for BlackBerry device applications
to register event listeners, manage threads, and manage UI components.
A UI maintains a stack of Screen objects. As it pushes screens onto the stack, it draws them on top of any other
screens already on the stack. When a BlackBerry device application pops a screen off the stack, it redraws the
underlying screens as necessary. Only the screen on the top of the stack receives input events.
See UiApplication in the API Reference for more information.
1. Create a main method for the BlackBerry device application. When you start a BlackBerry device application,
program exectution starts at the main() method.
public static void main(String[] args){
}
2. Within the main() method, add the following code:
HelloWorld theApp = new HelloWorld();
theApp.enterEventDispatcher();
When you invoke the enterEventDispatcher() method using an instance of the BlackBerry device
application, the BlackBerry device application enters the event thread which runs all drawing and event-
handling code and waits for events on the BlackBerry device application queue.
13
Getting started guide
14
2: Create a basic BlackBerry device application
Example: /**
* HelloWorld.java
* Copyright (C) 2001-2008 Research In Motion Limited. All rights reserved.
*/
package com.rim.samples.helloworld;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.system.*;
/*
* BlackBerry device applications that provide a UI
* must extend the UiApplication class.
*/
public class HelloWorld extends UiApplication
{
public static void main(String[] args)
{
//Create a new instance of the BlackBerry device pplication
//and start the BlackBerry device application on the event thread.
HelloWorld theApp = new HelloWorld();
theApp.enterEventDispatcher();
}
public HelloWorld()
{
//Display a new screen.
pushScreen(new HelloWorldScreen());
}
}
15
Getting started guide
//To display a dialog box to a BlackBerry smartphone user with the text
//"Goodbye!" when the BlackBerry smartphone user closes the BlackBerry device
application, override the onClose() method.
public boolean onClose()
{
Dialog.alert("Goodbye!");
System.exit(0);
return true;
}
}
Set the information and type for the project for the CityInfo application
1. In the Navigator view, select a BlackBerry project.
2. Right-click the project and select Properties.
3. In the Properties for pane, select BlackBerry Project Properties.
4. Click the General tab.
5. In the Title field, type City Info Sample.
6. In the Version field, type a version number.
7. In the Vendor field, type a vendor name, for example, Research In Motion Ltd.
8. Click the tab.
9. In the Project type drop-down list, select the CLDC option.
16
2: Create a BlackBerry device application with advanced UI features
Add .java source files to the project for the CityInfo application
The .java source file name must match the name of the public class or interface in the file. It must also be located
in a folder structure that matches its package name.
For example, if the workspace file is C:\name\ws.jdw and it contains a com.mycompany.MyClass class, then you
must name the project (.java) source file MyClass.java, and store it in C:\name\com\mycompany\MyClass.java.
1. In the Navigator view, select a BlackBerry project.
2. Right-click the project and select Add File to Project.
3. In the File Name field, type CityInfo.
4. Click Open.
Allow the CityInfo application start sending and receiving events when the
application starts
1. Create a main method for the BlackBerry® device application.
public static void main(String[] args){
}
17
Getting started guide
Allow the CityInfo application use a screen that displays a drop-down list of
city names
1. In the class that extends the MainScreen class, create the following instance variables.
private InfoScreen _infoScreen;
private ObjectChoiceField choiceField;
private int select;
2. In the constructor for the extension of the MainScreen class, replace the String information in the
constructor for the LabelField with "City Information Kiosk".
LabelField title = new LabelField("City Information Kiosk",
LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
setTitle(title);
3. In the constructor for the extension of the MainScreen class, change add(new RichTextField("City
Info")) to add(new RichTextField("Major U.S. Cities")).
4. In the constructor for the extension of the MainScreen class, create a drop-down list that displays three cities
as choice items. An ObjectChoiceField is a UI field that displays a list of objects that a BlackBerry®
smartphone user can choose from.
String choices[] = {"Los Angeles", "Chicago", "New York"};
choiceField = new ObjectChoiceField("Select a City", choices);
5. Add the choiceField to the Manager object of the CityInfoScreen screen.
add(choiceField);
You can use an ObjectChoiceField to display a list of choices in a field on the UI of a BlackBery device
application. See ObjectChoiceField in the API Reference for more information.
Create a menu item that a BlackBerry smartphone user clicks to display more
information about a city they select
When a BlackBerry® smartphone user selects a menu item from the menu of a BlackBerry device application, the
code in the run() method for the menu item executes. See MenuItem in the API Reference for more information.
18
2: Create a BlackBerry device application with advanced UI features
The choiceField.getSelectedIndex()method lets a BlackBerry device application retrieve the index number
for the choice item that a BlackBerry smartphone user selects from a choiceField drop-down list. Invoking
UiApplication.getUiApplication.pushScreen(_infoScreen) lets a BlackBerry device application use an
instance of itself to display a screen with information on the city a BlackBerry smartphone user selects from a
choiceField drop-down list.
1. In the CityInfoScreen class, create a MenuItem with text that reflects the action that occurs when a
BlackBerry smartphone user selects the menu item.
private MenuItem _viewItem = new MenuItem("More Info", 110, 10) {
2. In the CityInfoScreen class, create a run() method for the MenuItem that displays information about a city
a BlackBerry smartphone user selects.
public void run() {
//Store the index for the city a BlackBerry smartphone user selects
select = choiceField.getSelectedIndex();
//Create an instance of the screen that displays information about a city the BlackBerry
smartphone user selects
_infoScreen = new InfoScreen();
//Push the screen with information on the city the BlackBerry smartphone user selects to
the display stack and paint this screen
UiApplication.getUiApplication.pushScreen(_infoScreen);
}
19
Getting started guide
20
2: Create a BlackBerry device application with advanced UI features
Allow the CityInfo application set the values of UI fields with city information
> In the constructor for the inner class, use a select clause to control the actions that the BlackBerry® device
application performs when a BlackBerry smartphone user selects a city from the menu of the BlackBerry
device application. Invoke BasicEditField.setText() to set the text value of a BasicEditField.
if (select == 0) {
lf.setText("Los Angeles");
popField.setText("3,694,820");
stateField.setText("California");
sightsField.setText("Hollywood");
} else if (select == 1) {
lf.setText("Chicago");
popField.setText("2,896,016");
stateField.setText("Illinois");
sightsField.setText("Blues Clubs");
} else if (select == 2) {
lf.setText("New York");
popField.setText("8,008,278");
stateField.setText("New York");
sightsField.setText("Broadway");
}
}//close the constructor code block
}//close the InfoScreen class code block
}//close the CityInfoScreenclass code block
21
Getting started guide
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.system.*;
import net.rim.device.api.i18n.*;
public CityInfo()
{
//Display a new screen.
pushScreen(new CityInfoScreen());
}
}
public CityInfoScreen()
{
//Invoke the MainScreen constructor.
super();
//Add a drop-down list with the names of three cities as choice items:
22
2: Create a BlackBerry device application with advanced UI features
//Create a menu item for BlackBerry smartphone users to click to see more
information about the city they select.
private MenuItem _viewItem = new MenuItem("More Info", 110, 10) {
public void run() {
//Store the index of the city the BlackBerry device user selects
select = choiceField.getSelectedIndex();
}
};
//Create a menu item for BlackBerry smartphone users to click to close the
BlackBerry device application.
private MenuItem _closeItem = new MenuItem("Close", 200000, 10) {
public void run()
{
onClose();
}
};
//To add menu items to the menu of the BlackBerry device application, override the
makeMenu method.
protected void makeMenu( Menu menu, int instance )
{
menu.add(_viewItem);
menu.add(_closeItem);
}
23
Getting started guide
//Populate fields with data for the city the BlackBerry smartphone
user
//selects. The 'select' variable stores the value for the city.
if (select == 0) {
lf.setText("Los Angeles");
popField.setText("3,694,820");
stateField.setText("California");
sightsField.setText("Hollywood");
} else if (select == 1) {
lf.setText("Chicago");
popField.setText("2,896,016");
stateField.setText("Illinois");
sightsField.setText("Blues Clubs");
} else if (select == 2) {
lf.setText("New York");
popField.setText("8,008,278");
stateField.setText("New York");
sightsField.setText("Broadway");
}
}
}
}
24
3
Testing a BlackBerry device application
Obfuscating a BlackBerry device application
Preverifying a BlackBerry device pplication
Testing a BlackBerry device application
If a BlackBerry device application contains more than 64 KB of bytecode or resource data, the BlackBerry® Java®
Development Environment or the BlackBerry® JDE Plug-in for Eclipse™ creates a .cod file that contains sibling
.cod files. To determine if a .cod file contains sibling .cod files, extract the contents of the .cod file. Any .cod files
within the original .cod file are the sibling files.
Parameter Description
port A BlackBerry smartphone PIN if the BlackBerry smartphone connects to a USB port. You must also specify the -usb
option.
password This paramter specifies the password for the BlackBerry smartphone, if a password for the BlackBerry smartphone is
set.
filename The name of the .cod file for the BlackBerry device application.
Task Steps
Load a BlackBerry device application .cod file on > Issue a command using the following format:
the BlackBerry smartphone. javaloader [-u] load .cod file
For example: javaloader.exe -u load My.cod
JavaLoader loads the .cod files listed in the .jad file on the BlackBerry smartphone
and stores the .cod files in a CodeModuleGroup.
26
3: Testing a BlackBerry device application
Task Steps
Load BlackBerry device application .cod files > Issue a command using the following format:
listed in the same .jad file on the BlackBerry javaloader [-u] load .jad file
smartphone.
For example: javaloader.exe -u load My.jad
Javaloader loads the .cod files listed in the .jad file onto the BlackBerry
smartphone.
Remove a BlackBerry device application .cod file > Issue a command using the following format:
from the BlackBerry smartphone. javaloader [-u] erase [-f] module
For example: javaloader.exe -u erase My
Save a BlackBerry device application .cod file > Issue a command using the following format:
from the BlackBerry smartphone to your javaloader save .cod file
computer.
For example: javaloader.exe save My.cod
Save BlackBerry device application .cod files > Issue a command using the following format:
listed in the same .jad file from the BlackBerry javaloader save .jad file
smartphone to your computer.
For example: javaloader.exe save My.jad
Save BlackBerry device application .cod files > Issue a command using the following format:
stored in the same CodeModuleGroup from the javaloader save [-g] module
BlackBerry smartphone to your computer.
For example: javaloader.exe save -g My
27
Getting started guide
28
4
Distributing a BlackBerry device application
Application distribution through a computer connection
Application distribution over the wireless network
30
©2008 Research In Motion Limited
Published in Canada.