Library support

The BlackBerry 10 OS supports various libraries that give you access to the operating system, device hardware, and commonly used standards and middleware. Many libraries are included with the BlackBerry 10 Native SDK, while others can be found in 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 are included with the Native SDK

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

Description

Library file name

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, and so on

libbps

Push Service

Provides Push Service notification capabilities

libPushService

BBM Social Platform

Provides the social features and functionality of BBM

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

Camera Features

Provides functions to work with high dynamic range (HDR) photos

libcamerafeatures

c-ares

Performs DNS requests and name resolutions asynchronously

libcares

Advertising Service

Lets you create and customize ad banners in your 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 apps

libbblocation

Cascades Maps

Provides functionality for creating and displaying maps in your app

libbbcascadesmaps

Cascades Multimedia

Provides APIs for playing audio and video in a Cascades app

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 the Payment Service, notifications, languages, and home screen functions

libbbplatform

Cascades System

Provides access to system APIs, such as menus, dialog boxes, telephony, Near Field Communication, and the invocation framework

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

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 Graphics Subsystem

Provides a UI framework for apps to run on the 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 native implementations

libsbengine, libloadsbengine

Sensor

Provides control over the sensors on the device

libsensor

Smart Card

Allows an application to access to the smart card functionality on a device

libscs

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 to 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 allow apps to configure Wi-Fi profiles and connect to 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 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 and 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 libraries

Library

Description

Where to find it

Boost

Provides a collection of peer reviewed and portable C++ source libraries

Boost on GitHub

Box2D

Provides a feature-rich, rigid body, 2-D physics engine for games

Box2D on GitHub

Bullet Physics

Provides a physics engine featuring 3-D collision detection, soft body dynamics, and rigid body dynamics

Bullet Physics on GitHub

Cocos2d-x

Provides a C++ port of the lightweight, multi-platform Cocos2d-x game engine

Cocos2d-x on GitHub

CouchDB

Provides an Erlang-based port of the Apache CouchDB document-oriented database

CouchDB on GitHub

CppUnit

Provides a C++ unit testing framework that you can use to determine whether your code is working

CppUnit on GitHub

Erlang-OTP

Provides a programming language used to build massively scalable, soft real-time systems with requirements for high availability

Erlang-OTP on 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 GitHub

JSON_parser

Provides a fast, C-based JSON parser

JSON_parser on GitHub

Lua

Provides an embeddable scripting language, combining simple procedural syntax with powerful data-description constructs, based on associative arrays and extensible semantics

Lua on GitHub

NME

Provides a game and application framework that targets multiple platforms with the same source code

NME on GitHub

OpenCV

Provides a computer vision and machine learning library

OpenCV on GitHub

OpenTTD

Provides a simulation game based on Transport Tycoon Deluxe (TTD)

OpenTTD on GitHub

PCRE

Provides a set of functions that allows you to use regular expressions using the same syntax and semantics as Perl 5

PCRE on GitHub

Quake 3

Allows you to use a port of the multiplayer, first-person shooter Quake III Arena game engine

Quake 3 on GitHub

RecastNavigation

Allows you to use the Recast mesh construction toolset for games

RecastNavigation on GitHub

SBuilder

SBuilder is a tool for browsing and editing SQLite databases

SBuilder on GitHub

SDL

Provides a standard mechanism for accessing multimedia using Simple DirectMedia Layer (SDL), which is a cross-platform multimedia library that's designed to provide low-level access to audio, keyboard, mouse, joystick, 3-D hardware via OpenGL, and 2-D video framebuffers

SDL on GitHub

Skia

Provides a complete 2-D graphics library for drawing text, geometries, and images

Skia on GitHub

SpiderMonkey

Provides access to use the Mozilla GitHub engine, written in C/C++

SpiderMonkey on GitHub

V8

Provides a JavaScript engine to use in app development

V8 on GitHub

Commercial frameworks

The following table lists application middleware components and frameworks that support BlackBerry 10. Some of these frameworks let you build projects for multiple platforms, including BlackBerry 10.

Commercial frameworks, tools, and middleware

Framework

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, real-time applications for many popular platforms

Unity

Allows you to bring your Unity app to the BlackBerry 10 platform

Last modified: 2014-06-24



Got questions about leaving a comment? Get answers from our Disqus FAQ.

comments powered by Disqus