Library support

The BlackBerry 10 OS supports a variety of libraries that give you access to the operating system, device hardware, and commonly used open standards and middleware. Many libraries come with the BlackBerry 10 Native SDK installation while others can be found on open source software repositories. The BlackBerry 10 OS also supports several commercial frameworks.

You can use the Add Library Wizard to add libraries to your project.

Built-in libraries that come with the Native SDK install

Open source libraries that you need to import from somewhere else

Commercial frameworks, tools, and middleware that support BlackBerry 10


Built-in

The BlackBerry 10 OS supports Posix-compliant C and C++, as well as the Dinkum C99 and C++ libraries. The following table lists the built-in libraries that are also available:

Built-in libraries

Library

Library description

Library filename

Advertising Service Provides capabilities to create and customize ad banners in your app, which you can populate with ads sourced from various ad networks. libbbads
Audio Provides an advanced Linux Sound Architecture for applications using the QNX Sound Architecture (QSA). libasound
Audio Manager Provides functions to get and set properties for audio devices, volume, routing, and concurrency. libaudio_manager
BlackBerry Platform Services Provides event handling and access to a number of BlackBerry Platform Services (BPS) on a device, such as clock, LED, orientation, camera, accelerometer, etc. libbps
BlackBerry Push Service Provides BlackBerry Push notification capabilities. libPushService
BBM Social Platform Provides the social features and functionality of BlackBerry Messenger. libbbmsp
Bluetooth Allows for the integration of Bluetooth capabilities of the device. libbtapi
bzip Provides a high-quality data compressor. libbz2
Camera Access the camera on a device to take photos and record video. libcamapi
c-ares Performs DNS requests and name resolutions asynchronously. libcares
Cascades Advertising Service Provides the ability to create and customize ad banners in your Cascades app, which you can populate with ads sourced from various ad networks. libbbcascadesadvertisement
Cascades Camera Provides functionality that allows you to access the camera and read barcodes. libbbcascadesmultimedia
Cascades Core Provides application lifecycle APIs for Cascades applications. libbb
Cascades Data Access Provides functionality for storing and accessing data in various formats, such as SQL, JSON, and XML. libbbdata
Cascades Device Info Provides access to hardware information and control, such as battery level, physical display parameters, LED, signaling, connectivity, battery, and orientation. libbbdevice
Cascades Location Provides location-based services for Cascades applications. libbblocation
Cascades Maps Provides functionality for creating and displaying maps in your application. libbbcascadesmaps
Cascades Multimedia Provides APIs for playing audio and video in a Cascades application.

libbbmultimedia

Cascades Networking Provides communication-based services, such as the Push Service. libbbnetwork
Cascades Pickers Provides several different types of pickers, including event pickers, file pickers, and contact pickers. libbbcascadespickers
Cascades PIM Provides APIs for personal information management, including Calendar, Accounts, and Contacts. libbbpim
Cascades Places Provides points of interest from the local Places database on a device. libbbcascadesplaces
Cascades Platform Provides features for the access platform specific features such as Payment Service, notifications, languages, and home screen functions. libbbplatform
Cascades System Provides access to system APIs, such as menus, dialogs, telephony, Near Field Communication, and the Invocation Service. libbbsystem
Cascades UI Provides a UI library that you can use to create a rich BlackBerry 10 user experience. libbbcascades
Cascades Utilities Provides useful utilities, such as image conversion and spell checking. libbbutility
Clipboard Provides copy and paste operations to a clipboard. libclipboard
Context Provides instrumentation capabilities for context collection. libcontext
cURL Transfers data with URL syntax, including FILE, HTTP, IMAP, POP3, FTP, telnet, and many others. libcurl
EGL Handles graphics context management, surface/buffer binding, and rendering synchronization. It also enables high-performance, accelerated, mixed-mode 2-D and 3-D rendering. libEGL
Exif Reads and writes EXIF meta-information from and to image files. libexif
Expat Provides an XML parser. libexpat
FreeType2 Provides a high-quality font engine to render text. libfreetype
Fonts Provides monotype fonts. libfont
fontconfig Provides customized font access. libfontconfig
Gestures Provides support for the interpretation of gestures on a device. libgestures
Gettext Provides string externalization. libintl
Geocoding Provides geocoding and reverse geocoding capabilities. libgeo_search
Geofencing Provides capabilities to create and monitor virtual perimeters (or regions) for real-world geographic areas. libgeomonitor
Glview Provides events-based APIs to more easily develop apps with OpenGL ES 1.1 and OpenGL ES 2.0 libglview
iConv Provides support for converting text from one character encoding to another. libiconv
ICU Provides Unicode and globalization support. libicui18n
Identity Service Provides capabilities to incorporate authentication and authorization, using an external identity provider, to your apps. libids
Image rendering Provides a common interface for loading and rendering images in various formats, such as GIF, JPEG, PNG, and BMP. libimg
Input events Receives and processes events from input devices. libinputevents
LBS Core Services Provides APIs for location-based services. libbbplatformplaces
Lib Archive Provides multi-format archive and compression capabilities. libarchive
iType Reads and writes types. libiType
JPEG Reads and writes JPEG files. libjpeg
libxml2 Provides a portable XML parsing toolkit. libxml2
libxslt Provides XSLT functionality. libxslt
Math Provides math functions. libm
Multimedia renderer Provides support for developing multimedia apps. libmmrndclient, libstrm
NCurses Provides a terminal-control library for creating textual user interfaces. libncurses
Near Field Communication Provides access to Near Field Communications(NFC) capabilities on the device. libnfc, libnfc_bps
OpenAL Allows you to create and position sounds in the 3-D space of your virtual world. libOpenAL
OpenAL Utility Toolkit Provides access for utilities to work with OpenAL. libalut
OpenGL ES 1.1, OpenGL ES 2.0, and OpenGL ES 3.0 Creates 3-D objects and stunning animations. libGLES_CM, libGLESsoftgl, libGLESv1_CL, libGLESv1_CM, libGLESv2

Note: To use OpenGL ES 3.0, include the libGLESv2 library.

OpenSSL Provides a full-strength cryptography library to help implement the SSL v2/v3 and TLS v1 protocols. libssl
PackageInfo Provides access to the BAR application descriptor file metadata. libpackageinfo
Peripheral Discovery Provides capabilities for your apps to receive notifications about the insertion or removal of peripheral devices. libperipheral_discovery
PlayReady Provides support for Microsoft PlayReady version 1.2. Microsoft PlayReady DRM technology provides a comprehensive content delivery and management solution for entertainment products and services. libplayready_dpk_v1.2
PNG Reads and writes PNG files. libpng, libpng14, libpng16
Qt4 Provides a cross-platform application and UI framework. The framework comes with APIs for C++ programming and Qt Quick for rapid UI creation.
  • libQtCollator
  • libQtCore
  • libQtDeclarative
  • libQtGui
  • libQtMultimedia
  • libQtMultimediaKit
  • libQtNfcSubset
  • libQtNetwork
  • libQtScript
  • libQtScriptTools
  • libQtSensors
  • libQtSql
  • libQtSvg
  • libQtTest
  • libQtXml
  • libQtXmlPatterns
Scoreloop Provides the next generation technology that enables mobile social gaming. libscoreloopcore
Screen and Graphics Subsystem Provides a UI framework for apps to run on BlackBerry 10 OS. libscreen
Security Builder Provides cryptographic support from the BlackBerry 10 Cryptographic Kernel. libhuapi
Security Builder Engine for OpenSSL Allows the use of cryptographic functionality from Security Builder instead of OpenSSL's native implementations. libsbengine, libloadsbengine
Sensor Provides control over the sensors on the device. libsensor
Socket Provides support for basic sockets and TCP/IP functionality. libsocket
Spellcheck Performs spell checks and provides spelling suggestions. libspellcheck_client
SQLite Provides a serverless, transactional SQL database engine that you can include in your apps. libsqlite3
String Pattern Provides functions to register strings containing regular expressions, recognizers, and handlers, which perform actions based on those strings. libstrpattern
Slogger2 Provides system logging using the Slogger2 service. libslog2
Unified Data Source Provides functions to integrate your app with the BlackBerry Hub. libunifieddatasourcec
Universal Compression Library Provides Universal Compression Library(UCL) portable, lossless compression. libucl
VPN Extensions Allows apps create and manage VPN connections on behalf of the user. libvpn_ext
Wi-Fi Allows apps to determine the current Wi-Fi state and allows for limited control of the Wi-Fi module. In addition, this library supports hotspot aggregator capabilities that allows apps to configure Wi-Fi profiles and connect to Wi-Fi hotspots on behalf of the user. libwifi
WordType Layout Engine Provides composing, positioning, and rendering of text in multiple languages. libWTLE
World Magnetic Model Provides functions to determine the geomagnetic field with respect to the device's location on Earth. libwmm
XMP Provides access to Adobe's Extensible Metadata Platform(XMP) technology, which allows you to embed data about a file, known as metadata, into the file itself. libxmp
ZIP/GZIP (zlib) Provides a general purpose, lossless data compression library that is supported on many platforms. libz
ZXing Provides a 1-D and 2-D barcode image processing library that supports multiple formats. It uses the built-in camera to scan and decode barcodes on the device. libzxing

Open Source

Explore and use the following open source libraries to add rich features to your app without doing all the work. Instructions on how to use them are available at the provided links.

Open source

Library

Description

Where to find it

Boost Provides a collection of peer reviewed and portable C++ source libraries. Boost on BlackBerry GitHub
Box2D Provides a feature-rich, rigid body, 2-D physics engine for games. Box2D on BlackBerry GitHub
Bullet Physics Provides a physics engine featuring 3-D collision detection, soft body dynamics, and rigid body dynamics. Bullet Physics on BlackBerry GitHub
Cocos2D-X Provides a C++ port of the lightweight, multi-platform Cocos2D-X game engine. Cocos2D-X on BlackBerry GitHub
CouchDB Provides an Erlang-based port of the Apache CouchDB document-oriented database. CouchDB on BlackBerry GitHub
CppUnit Provides a C++ unit testing framework that you can use to determine whether your code is working. CppUnit on BlackBerry GitHub
Erlang-OTP Provides a programming language used to build massively scalable, soft real-time systems with requirements for high availability. Erlang-OTP on BlackBerry GitHub
gameplay Provides a cross-platform, 3-D native gaming framework that makes it easy to learn and write mobile and desktop games. gameplay project home page
GetOpt Provides help for shell scripts to parse command-line parameters. GetOpt on BlackBerry GitHub
JSON_parser Provides a fast, C-based JSON parser. JSON_parser on BlackBerry GitHub
Lua Provides an embeddable scripting language. It combines simple procedural syntax with powerful data-description constructs, based on associative arrays and extensible semantics. Lua on BlackBerry GitHub
NME Provides a game and application framework that targets multiple platforms with the same source code. NME on BlackBerry GitHub
OpenCV Provides a computer vision and machine learning library. OpenCV on BlackBerry GitHub
OpenTTD Provides a simulation game based on Transport Tycoon Deluxe(TTD). OpenTTD on BlackBerry GitHub
PCRE Provides a set of functions that allows you to use regular expressions. The Perl Compatible Regular Expressions (PCRE) library is a set of functions that implements regular expression pattern matching using the same syntax and semantics as Perl 5. PCRE on BlackBerry GitHub
Quake 3 Allows you to use a popular first-person shooter game engine. This is a port of the multiplayer, first-person shooter, Quake III Arena game engine. Quake 3 on BlackBerry GitHub
RecastNavigation Allows you to use a mesh construction toolset. Recast is a navigation mesh construction toolset for games. RecastNavigation on BlackBerry GitHub
SBuilder SBuilder is a tool for browsing and editing SQLite databases. SBuilder on BlackBerry GitHub
SDL Provides a standard mechanism for accessing multimedia. Simple DirectMedia Layer(SDL) is a cross-platform multimedia library that is designed to provide low level access to audio, keyboard, mouse, joystick, 3-D hardware via OpenGL, and 2-D video framebuffers. SDL on BlackBerry GitHub
Skia Provides a complete 2-D graphics library for drawing text, geometries, and images. Skia on BlackBerry GitHub
SpiderMonkey Provides access to use Mozilla's JavaScript engine. This library is written in C/C++. SpiderMonkey on BlackBerry GitHub
V8 Provides a JavaScript engine to use in app development. V8 on BlackBerry GitHub

Commercial frameworks

The following table lists application middleware components and frameworks that support BlackBerry 10.

Commercial frameworks, tools, and middleware

Product

Description

FMOD

Provides a library and toolkit for the creation and playback of interactive audio.

Marmalade

Provides a cross-platform, C++, 2-D and 3-D game development framework that offers unified tooling, support for open standards, and compliance with many popular platforms.

ShiVa3D

Provides a complete authoring, game engine, and multiplayer server framework that lets you create 3-D, realtime applications for many popular platforms.

Unity

Allows you to bring your Unity-authored app to the BlackBerry 10 platform.

Last modified: 2014-04-10

comments powered by Disqus