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
2developer.blackberry.com/android
3. 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
3developer.blackberry.com/android
What is BlackBerry 10?
BlackBerry Z10
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
Deep integration with BB native
framework to make Android apps
indistinguishable from native apps
Repackaging your Android app can
take as little as 3 minutes
4developer.blackberry.com/android
BlackBerry 10 OS
QNX
Android Runtime
Dalvik VM
5. BlackBerry Runtime for Android Apps
5
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.
14. Unsupported APIs
14
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
15. 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
15developer.blackberry.com/android/apisupport/creating_push-enabled_android_apps.html
<?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>
16. 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
Transactions are not signed
java.lang.System.getProperty("os.name") returns ("qnx")
android.os.Build.DEVICE returns “Q10”, “Q5”, “Z10”, or “Z30”
16developer.blackberry.com/android/apisupport/apisupport_inapp_payments_support.html
17.
18. 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 libc (C library) headers
o libm (math library) headers
o JNI interface headers
o libz (Zlib compression) headers
o liblog (Android logging) header
o OpenGL ES 1.1/2.0
o libjnigraphics (Pixel buffer access) header
o A Minimal set of headers for C++ support
o OpenSL ES native audio libraries
o Android native application APIS
18developer.blackberry.com/android/
19. 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 New toolset to account for various IDEs via Device Profiler
o Simple GUI
o Tooling will no longer report *.WRN file errors related to
Native code, Bluetooth or Google Maps v1
o Native on-device debugging
Support
o Same level support for libraries as Google publicly offers (9)
19developer.blackberry.com/android/apisupport/unsupported_api_android_ndk.html
20.
21. Verify Repackage Deploy
Repackaging Android Apps
developer.blackberry.com/android
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
22. 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
- test your app
22
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
Repackaging APK Files
► Option 1: Command-line SDK
23. 23
bin>blackberry-apkpackager –gui
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!
Repackaging APK Files
► Option 2: GUI-based SDK
25. 25
bin>blackberry-signer -gui
Signing Your Application
Sign your resultant BAR file, or configure your BlackBerry ID signing account
Repackaging APK Files
► Option 2: GUI-based SDK
26. 26
bin>blackberry-signer -gui
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
Repackaging APK Files
► Option 2: GUI-based SDK
27. 27
bin>blackberry-deploy -gui
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
Repackaging APK Files
► Option 2: GUI-based SDK