Update on latest BB10 support for Android apps (big one: native library support!). Overview of process, tools and a live demo on stage moving the Nest app to BlackBerry Z10 in under 3 minutes.
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Android to BB in 3 minutes
1. Reach A New Market
In 3 Minutes (or less!)
developer.blackberry.com/android
Larry McDonough
Principal Evangelist
@LMCDUNNA
2. Android Onboarding & Virtual Office Hours
What is BlackBerry 10?
How does BlackBerry 10 run Android apps?
Repacking & testing your Android app on
BlackBerry 10
Submitting your Android app to BlackBerry
World
developer.blackberry.com/android
2
3. BlackBerry 10
What is BlackBerry 10?
New mobile computing platform and hardware
Brand new hardware/software based on QNX
Best-in-class browser (491 HTML5 Test score)
Cutting-edge multimedia capabilities
More apps than any first-generation platform at launch
Full-touchscreen and keyboard-based smartphones
Bringing your Android app to BlackBerry 10 can take as little as
3 minutes
BlackBerry Z10
developer.blackberry.com/android
3
4. BlackBerry Runtime for Android Apps
Open-source Jelly Bean (Android
4.2.2) Application Framework running
on top of BlackBerry 10 OS and
Libraries
Enables repackaged Android apps to
be installed and run inside it
C++
Deep integration with BB native
framework to make Android apps
indistinguishable from native apps
WebKit
Dalvik
VM
Repackaging your Android app can
take as little as 3 minutes
developer.blackberry.com/android
4
5. BlackBerry Runtime for Android Apps
Increased Compatibility: Over 80% of converted Android
apps work without any changes to source code
Support for Android Native, Accessibility, Bluetooth,
MapView v1, Share Framework, Spellcheck, Wi-Fi Scanning
Broader Reach
Integrate with the BlackBerry ecosystem and get access
to the BlackBerry World distribution channel, more
customers, and additional revenue opportunities.
5
13. Unsupported APIs
Around 80% of all Android apps are compatible today on
BlackBerry 10.2.1 requiring no changes to source code
Not all Android APIs are supported
Hardware and OS dependencies
Limited to the personal perimeter
Full compatibility list is available at
developer.blackberry.com/android/apisupport
13
14. Push Support
Both c2dm and GCM are supported:
Client
Register with BlackBerry Push Services
Create android.cfg file
Package the android.cfg file within BAR
Sign app
Server
Push JSON payload to both Google &
BlackBerry app servers
Pushes are queued until app is open
<?xml version="1.0" encoding="utf-8"?>
<android>
<push>
<appid>some_appID</appid>
<ppgurl>http://cpXXX.pushapi.eval.blackberry.com</ppgurl>
<tokenprefix>bb-</tokenprefix>
</push>
</android>
developer.blackberry.com/android/apisupport/creating_push-enabled_android_apps.html
14
15. In-App Billing Support
Test using BlackBerry World sandbox
Use the same ItemID values for your
digitalSKU items in vendor portal
One-time purchases, no subscriptions, no
refunds through API
Which OS? Which Device?
java.lang.System.getProperty("os.name") returns ("qnx")
android.os.Build.DEVICE returns “Q10”, “Q5”, “Z10”, or “Z30”
developer.blackberry.com/android/apisupport/apisupport_inapp_payments_support.html
15
16.
17. Android Native Code
Android NDK lets you write parts of your app in C/C++
Meant for self-contained, CPU-intensive operations, shared x-platform libraries, third-party libraries
When moving between Java and Native code, the Java Native Integration (JNI) bridge is crossed,
requiring Android system resources
Android only provides header support for the following:
o
o
o
o
o
o
o
o
o
o
libc (C library) headers
libm (math library) headers
JNI interface headers
libz (Zlib compression) headers
liblog (Android logging) header
OpenGL ES 1.1/2.0
libjnigraphics (Pixel buffer access) header
A Minimal set of headers for C++ support
OpenSL ES native audio libraries
Android native application APIS
developer.blackberry.com/android/
17
18. Android Native Code
BlackBerry 10.2.1 OS
o
Both the ARMv5TE and ARMv7-A machine code instruction
sets are supported
Android Tooling 2.0
o
o
o
o
New toolset to account for various IDEs via Device Profiler
Simple GUI
Tooling will no longer report *.WRN file errors related to
Native code, Bluetooth or Google Maps v1
Native on-device debugging
Support
o
Same level support for libraries as Google publicly offers (9)
developer.blackberry.com/android/apisupport/unsupported_api_android_ndk.html
18
19.
20. Repackaging Android Apps
Verify
Repackage
Deploy
Verify
- Run blackberry-apkpackager to generate a *.WRN file which will call out unsupported
APIs and repackage the APK to a BAR file
Repackage
- Run blackberry-signer to sign the BAR file
Deploy
- Run blackberry-deploy on an up-to-date OS, testing functions called out in the *.WRN file
developer.blackberry.com/android
21. Repackaging APK Files
► Option 1: Command-line SDK
Repackage your APK to a BAR file in 3 easy steps…
1) blackberry-apkpackager
- runs a compatibility check on your APK file
- packages your APK file as a BAR file
2) blackberry-signer
- sign your application
3) blackberry-deploy
C:Androidandroid-sdkbin>
blackberry-apkpackager
HelloWorld.apk
C:Androidandroid-sdkbin>
blackberry-signer –storepass
pass123 HelloWorld.bar
C:Androidandroid-sdkbin>
blackberry-deploy –installApp –
device 169.254.0.1 –package
HelloWorld.bar –password pass123
- test your app
21
22. Repackaging APK Files
► Option 2: GUI-based SDK
Append the –gui parameter to use a GUI
window for point-and-click repackaging
blackberry-apkpackager –gui
Provide the APK file location, target
location and select Package
Sign and deploy within the same step!
bin>blackberry-apkpackager –gui
22
23.
24. Repackaging APK Files
► Option 2: GUI-based SDK
Signing Your Application
Sign your resultant BAR file, or configure your BlackBerry ID signing account
bin>blackberry-signer -gui
24
25. Repackaging APK Files
► Option 2: GUI-based SDK
Setting Up Your BlackBerry ID Signing Account
From the BlackBerry Signer window, select Configure Signing
Provide what will be your CSK Password (signing password)
and Author Name
Select Request and log into/create your BlackBerry ID account
Select Create
bin>blackberry-signer -gui
25
26. Repackaging APK Files
► Option 2: GUI-based SDK
Deploying Your App
Deploy your resultant BAR file to a
BlackBerry 10 simulator or device
Provide the BAR file location, device IP
address and password10 simulator or device
Ensure that your physical device has
Development Mode enabled
bin>blackberry-deploy -gui
26