Android to BB in 3 minutes

  • 846 views
Uploaded on

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.

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.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
846
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
6
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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
  • 6. The Android Runtime In Action ► Songza 6
  • 7. The Android Runtime In Action ► Flipboard 7
  • 8. The Android Runtime In Action ► Deezer & WordPress 8
  • 9. Android Roadmap 10.2 - August 2013   Android 4.2.2 (Jelly Bean/API 17) Improved Stability  Support for the end-user to hide/show back bar 10
  • 10. Android Roadmap 10.2.1 Gold– January 2014 11
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. BlackBerry 10 Devices ► BlackBerry Z10  Icon: 114 x 114 pixels  Resolution: 1280 x 768 (15:9)  Screen size: 4.2” diagonal  Project structure: res/drawable-xhdpi  Current OS: BlackBerry 10.2.1  Testing: BlackBerry 10 Device Simulator developer.blackberry.com/android/documentation/port_android_app_to_bb_device.html
  • 23. BlackBerry 10 Devices ► BlackBerry Z30  Icon: 114 x 114 pixels  Resolution: 1280 x 720 (16:9)  Screen size: 5” diagonal Super AMOLED  Project structure: res/drawable-xhdpi  Current OS: BlackBerry 10.2.1  Testing: BlackBerry 10 Device Simulator developer.blackberry.com/android/documentation/port_android_app_to_bb_device.html
  • 24. BlackBerry 10 Devices ► BlackBerry Q10  Icon: 114 x 114 pixels  Resolution: 720x 720 (1:1)  Screen size: 3.1” diagonal  Project structure: res/drawable-square  Current OS: BlackBerry 10.2.1  Testing: BlackBerry 10 Device Simulator developer.blackberry.com/android/documentation/port_android_app_to_bb_device.html
  • 25. BlackBerry 10 Devices ► BlackBerry Q5  Icon: 114 x 114 pixels  Resolution: 720x 720 (1:1)  Screen size: 3.1” diagonal  Project structure: res/drawable-square  Current OS: BlackBerry 10.2.1  Testing: BlackBerry 10 Device Simulator developer.blackberry.com/android/documentation/port_android_app_to_bb_device.html
  • 26. Additional Resources  Device OS autoloaders https://developer.blackberry.com/blackberry10devalphas/update/  Simulator & SDK download https://developer.blackberry.com/android/tools/  Pulling Android logs http://devblog.blackberry.com/2013/11/pull-android-logs-from-your-blackberry/  Programmatically disabling the back bar http://devblog.blackberry.com/2013/12/android-developers-eliminate-the-back-bar-inyour-10-2-1-app/ developer.blackberry.com/android/