SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
Getting Started with Developing for
BlackBerry Runtime for Android Apps
Kamel Lajili– RIM, Senior Application Development Consultant


DroidCon Berlin
March 14th 2012
Overview
What we will cover in this session

 Why repackage for BlackBerry
 BlackBerry Runtime for Android Apps - what it is and
  what it is not
 PlayBook development basics
 Converting existing applications
 Q&A




                                                         2
Repackage Your Android Apps
Why repackage?
BlackBerry App World

 Available in 164 markets and growing
 Averaging 174 Million downloads per month and
  growing fast, more than 6 Millions per day!
 BlackBerry App World vendor base grows by an average
  of 190% per year
 In EMEA there are Over 3K vendors from 59 countries




                                                         4
Why repackage?
 BlackBerry App World

 “BlackBerry Apps generate 40% more revenue as
 Android apps“ (Vision Mobile)




Source: Application Distribution Survey, Evans Data, Sept 2011, Vision Mobile   5
Why repackage?
BlackBerry App World

“BlackBerry App World delivered the most
revenues over the past year, and the most monthly
traffic”
     “13% of BlackBerry developers make over $100,000
      from the App World apps, which is considerably more
      than Android or Apple developers…”
     “19% of BlackBerry App World participants say they
      had 1,000 or more downloads over the 30 days”


                                                            6
Why repackage?

 Opportunity to increase revenue with minimum (couple of
  days) effort
     in 65% of the cases just repackage the existing APK – no source
      code or recompilation required
     familiar development environment is provided for the cases when
      modifications to the applications are required – Eclipse plugin on
      top of Google's ADT plugin
 Opportunity for experimenting with different business
  model and a new customer base


                                                                           7
Need a PlayBook to port your
Android Apps?
What it is?

 App1    App2       App3      App4    App5    App6      App7        App8
                                                                            • It’s an application running on Playbook
                   Application Framework
   Activity Mgr        Window Mgr       View System        Notification
                                                                            • Enables Android applications to be
                                                              Mgr           installed and run on the BlackBerry
   Package Mgr         Resource Mgr     Location Mgr
                                                                            PlayBook Tablet
              Libraries                      Java Runtime
                                                                            • Android API level 10 – Android v2.3.3
    WebKit            OpenGL ES
                                                 Core Libraries
                                                                            aka “Gingerbread” Application Framework
        SSL                SQLite                                           running on top of the PlayBook OS and
  Surface Mgr               SGL                                             Libraries.
                                             Dalvik Virtual Machine
   FreeType            Media Fwk

               libbionic


                             QNX Kernel                @twitterhandle – 9
What it is …
Under the hood

 A number of cooperating user mode processes that run
  inside a sandbox
 User mode ensures isolation from the OS kernel
     Nothing runs as root
     Applications requiring special access must have appropriate OS
      capabilities
 Sandbox ensures isolation from other native applications
     Data sharing with other native applications is possible in restricted
      fashion, e.g. photo, music, video, etc.
 More secure and robust than other Android devices
                                                                              10
What it is …
PlayBook integration
   Blends in with the rest of the PlayBook applications
       Application Launching/Minimizing/Thumbnail
   Installation
       Android applications are packaged as a BlackBerry Archive (BAR)
       Deploy through BlackBerry® App World™ like other BlackBerry PlayBook tablet
        apps
   Android Media Framework
   Graphics
       Hardware accelerated OpenGL ES and screen composition.
   Notifications
   Sensors
       Accelerometer, gyroscope, compass, etc.


                                                                               @twitterhandle – 11
What it is …
 PlayBook integration
   Networking
   Virtual keyboard
   Multi-touch – 4-finger multi-touch
   Standard public intents for launching native applications
       Email, Camera, Photo Gallery, Video Recorder, Browser, Settings, etc.
 Standard public intents for launching native file viewers
       .pdf, .doc, .xls, .ppt, .png, .jpg, .gif, audio, video, etc.
 Shared storage for public data
       /sdcard/ -> /accounts/1000/shared/misc/android/
       Accessible by other native applications and through USB
                                                                       @twitterhandle – 12
What it is …
PlayBook integration

 Security
      BlackBerry Runtime for Android Apps runs in a secure PlayBook
       OS sandbox that keeps android insulated from the rest of the
       system. It’s treated as a secure PlayBook application and is
       subject to the restrictions other native apps are subject to.
      Existing Android permission system is retained by BlackBerry
       Runtime.
      Access to system resources are further protected by PlayBook OS
       via Capabilities that need to be specified in BAR manifest.



                                                                @twitterhandle – 13
What it is not …
Things to be aware of

 Review your UI
       1024x600 screen resolution
         32 bit color depth
         xDPI, yDPI: 169.99, 169.33
       Landscape orientation is the default
       86x86 application icon
   Notifications look different
   No add-on Google libraries – Maps, C2DM, In-app billing
   No Android Market
   Limited Bluetooth support
                                                              14
What it is not …
Things to be aware of

   Limited Camera integration – invoke but don’t embed
   SIP/VOIP
   Process sharing
   Multiple entry points
   Android Home screen/Widgets
   Android NDK
   Search key
   HTTP progressive streaming

                                                          15
Online resources

 Android
     http://developer.blackberry.com/android
 Documentation:
     http://developer.blackberry.com/android/documentation
 Where to get signing keys:
     https://www.blackberry.com/SignedKeys/




                                                              @twitterhandle – 16
PlayBook development basics
BAR files
 BAR files are the native PlayBook application packaging
     What APK files are for Andorid BAR files are for BlackBerry
 BAR files contain executables, images, media, etc.




 blackberry-deploy: put a packaged app onto the device
     The device has to be in development mode


                                                                    17
PlayBook development basics
Development mode




                              @twitterhandle – 18
PlayBook development basics
Development mode




                              @twitterhandle – 19
PlayBook development basics
Signing

 BARs are either signed or unsigned
 Unsigned BAR requires Debug Token (except Simulator)
 You will need signing keys to develop on Device:
      http://developer.blackberry.com/native/signingkey
      ~1 hour turnaround
      You will get
        RDK key to sign for distribution
        PBDT key to create debug token



                                                           20
PlayBook development basics
  Debug tokens

   Debug tokens allow you to load unsigned applications
    from a specific author on a specific device
   To request a debug token from the command line:
blackberry-debugtokenrequest -cskpass **** -keystore sigtool.p12 -storepass @@@@ -deviceId 0x500C8F54 0x500C8F54
debug.bar



   To deploy a debug token on a device
 blackberry-deploy -installDebugToken 0x500C8F54debug.bar -device 169.254.0.1 -password &&&&


   Can also be requested and deployed from within the
    Eclipse
                                                                                                                   21
PlayBook development basics
Debug tokens




                              22
PlayBook development basics
Submitting to BlackBerry AppWorld

 Create an account for BlackBerry App World
      https://appworld.blackberry.com/isvportal/
          Application name, description and icon or logo
          Category in which your app should be placed
          License type (free, paid or try and buy)
          Wireless service providers your app will be available to
          Countries where your app should be distributed
          Releases and file bundles
          Screenshots
 Submit signed BAR file
                                                                      23
Converting existing applications
Choosing your method
 Online tool
 Command line
 Eclipse plugin




                                   24
Converting existing applications
Compatibility categories
 APK verifier for checking Android compatibility
 Five categories on how well an application may run on PlayBook
     Impact level 1 (minor non-compliance): Application will run just fine.
     Impact level 2: Application may run but some functionality will not work
         Unsupported features: Telephony, Camera, SIP, VOIP, etc.
     Impact level 3: Application may run but some functionality will not work
         Unsupported Google services: e.g. Google Maps.
     Impact level 4: Application will most likely not functional
       5-way navigation, h/w keyboard, C2DM
     Impact level 5 (most severe): Application will not run.
         Native libraries, dependency on 3rd party libraries
 Eclipse plugin reports compatibility levels as errors
  and/or warnings                                                                25
Converting existing applications
Using the online tool
 https://bdsc.webapps.blackberry.com/android/bpaa/




                                                      26
Demo: Converting using the online tool
Converting existing applications
Using the command line tools
1. apk2barVerifier
2. apk2bar
3. blackberry-deploy




                                   28
Demo: Converting using the command
line tools
Converting existing applications
Using the Eclipse plugin
 ADT Plug-in for Eclipse + BlackBerry Plug-in for ADT
     PlayBook is just another device target for your existing Android
      project
     Debugging applications on PlayBook just like on other Android
      devices
       adb, ddms, jdwp, logcat, etc.




                                                                         30
Converting existing applications
Using the Eclipse plugin
1. Install “Eclipse IDE for Java Developers” 3.7 (Indigo)
      http://www.eclipse.org/downloads/packages/eclipse-classic-37/indigor
2. Install Android SDK
      http://developer.android.com/sdk/index.html
      Also use the Android SDK manager to download the Android 2.3.3
       platform and related tool and create an Android Virtual Device (AVD)
3. Install ADT Plug-in for Eclipse
      http://developer.android.com/sdk/eclipse-adt.html
4. Install BlackBerry Plug-in for ADT
      https://bdsc.webapps.blackberry.com/android/downloads/eclipseplugin/


                                                                              31
Demo: Converting using Eclipse plugin
Detecting a PlayBook

 java.lang.System.getProperty("os.name")
     Returns “qnx”
 android.telephony.TelephonyManager.getDeviceId()
     Returns unique device serial number – e.g. 0000000000429494272343
     Same number can be found under Options -> About screen
 Browser’s user agent
     “Mozilla/5.0 (PlayBook; U; Android 2.3.3; en-us; PlayBook
      Build/<build_no>) AppleWebKit/533.1 (KHTML, like Gecko)
      Version/4.0 Mobile Safari/533.1”


                                                                          33
Recap

 BlackBerry Runtime for Android apps enables Android
  applications to run on PlayBook in a secure and robust
  environment with optimized performance
 BlackBerry Runtime for Android apps enables developers
  to monetize Android applications on PlayBook
 Minimal cost in converting your Android applications
     Majority applications (~65%) convert without any source changes




                                                                        34
Questions?



             Q&A

                   35
Online resources

 Android
     http://developer.blackberry.com/android
 Documentation:
     http://developer.blackberry.com/android/documentation
 Where to get signing keys:
     https://www.blackberry.com/SignedKeys/




                                                              @twitterhandle – 36
THANK YOU
Kamel Lajili– RIM, Senior Application Development Consultant, @klajili


DroidCon Berlin
March 14th 2012

Mais conteúdo relacionado

Mais procurados

Android Programming Seminar
Android Programming SeminarAndroid Programming Seminar
Android Programming SeminarNhat Nguyen
 
Mobile appliaction w android week 1 by osama
Mobile appliaction w android week 1 by osamaMobile appliaction w android week 1 by osama
Mobile appliaction w android week 1 by osamaOsama Ghandour Geris
 
Introduction to Android - Mobile Portland
Introduction to Android - Mobile PortlandIntroduction to Android - Mobile Portland
Introduction to Android - Mobile Portlandsullis
 
Basics of Android
Basics of Android Basics of Android
Basics of Android sabi_123
 
Android Workshop Session 1
Android Workshop Session 1Android Workshop Session 1
Android Workshop Session 1NAILBITER
 
Android Overview
Android OverviewAndroid Overview
Android Overviewatomi
 
BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10
BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10
BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10psiborg
 
Intel XDK - Philly JS
Intel XDK - Philly JSIntel XDK - Philly JS
Intel XDK - Philly JSIan Maffett
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application DevelopmentGokhan Arik
 
Build HTML5 VR Apps using Intel® XDK
Build HTML5 VR Apps using Intel® XDKBuild HTML5 VR Apps using Intel® XDK
Build HTML5 VR Apps using Intel® XDKIntel® Software
 
2011 android
2011 android2011 android
2011 androidvpedapolu
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to androidzeelpatel0504
 
Android : Architecture & Components
Android : Architecture & ComponentsAndroid : Architecture & Components
Android : Architecture & ComponentsAkash Bisariya
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorialmaster760
 
First Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionFirst Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionCesar Augusto Nogueira
 
Introduction to Android
Introduction to Android Introduction to Android
Introduction to Android Ranjith Kumar
 

Mais procurados (20)

Android Programming Seminar
Android Programming SeminarAndroid Programming Seminar
Android Programming Seminar
 
Android Apps
Android AppsAndroid Apps
Android Apps
 
Mobile appliaction w android week 1 by osama
Mobile appliaction w android week 1 by osamaMobile appliaction w android week 1 by osama
Mobile appliaction w android week 1 by osama
 
Introduction to Android - Mobile Portland
Introduction to Android - Mobile PortlandIntroduction to Android - Mobile Portland
Introduction to Android - Mobile Portland
 
PPT Companion to Android
PPT Companion to AndroidPPT Companion to Android
PPT Companion to Android
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
Basics of Android
Basics of Android Basics of Android
Basics of Android
 
Android Workshop Session 1
Android Workshop Session 1Android Workshop Session 1
Android Workshop Session 1
 
Android Overview
Android OverviewAndroid Overview
Android Overview
 
BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10
BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10
BEF2013 - Toronto - Dev Track 2 - Migrating Apps to BlackBerry 10
 
Intel XDK - Philly JS
Intel XDK - Philly JSIntel XDK - Philly JS
Intel XDK - Philly JS
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
 
Build HTML5 VR Apps using Intel® XDK
Build HTML5 VR Apps using Intel® XDKBuild HTML5 VR Apps using Intel® XDK
Build HTML5 VR Apps using Intel® XDK
 
2011 android
2011 android2011 android
2011 android
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Android Programming
Android ProgrammingAndroid Programming
Android Programming
 
Android : Architecture & Components
Android : Architecture & ComponentsAndroid : Architecture & Components
Android : Architecture & Components
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
First Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionFirst Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting Introduction
 
Introduction to Android
Introduction to Android Introduction to Android
Introduction to Android
 

Destaque (6)

Fitness
FitnessFitness
Fitness
 
Cancer
CancerCancer
Cancer
 
342 Concepts
342 Concepts342 Concepts
342 Concepts
 
Sensory Ethnography
Sensory EthnographySensory Ethnography
Sensory Ethnography
 
Auto-Ethnography
Auto-EthnographyAuto-Ethnography
Auto-Ethnography
 
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job? Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
 

Semelhante a Getting Started with Developing BlackBerry Android Apps

Android complete basic Guide
Android complete basic GuideAndroid complete basic Guide
Android complete basic GuideAKASH SINGH
 
Seminar on android app development
Seminar on android app developmentSeminar on android app development
Seminar on android app developmentAbhishekKumar4779
 
Software training report
Software training reportSoftware training report
Software training reportNatasha Bains
 
Battle of Music: SDK from iPhone, Nokia, BlackBerry, Android, Palm
Battle of Music: SDK from iPhone, Nokia, BlackBerry, Android, PalmBattle of Music: SDK from iPhone, Nokia, BlackBerry, Android, Palm
Battle of Music: SDK from iPhone, Nokia, BlackBerry, Android, PalmBess Ho
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentIJERD Editor
 
Mobile Web Apps and the Intel® XDK
Mobile Web Apps and the Intel® XDKMobile Web Apps and the Intel® XDK
Mobile Web Apps and the Intel® XDKIntel® Software
 
Mobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdfMobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdfAbdullahMunir32
 
Introduction to Mobile Development
Introduction to Mobile DevelopmentIntroduction to Mobile Development
Introduction to Mobile DevelopmentPragnesh Vaghela
 
Crosswalk and the Intel XDK
Crosswalk and the Intel XDKCrosswalk and the Intel XDK
Crosswalk and the Intel XDKIntel® Software
 
Android and its feature
Android and its featureAndroid and its feature
Android and its featureShubham Kumar
 
Rapid Prototyping with Cordova aka Phonegap
Rapid Prototyping with Cordova aka PhonegapRapid Prototyping with Cordova aka Phonegap
Rapid Prototyping with Cordova aka PhonegapJosue Bustos
 
EMEA AppForum 2015 Android KitKat & Lollipop - new features for enterprise de...
EMEA AppForum 2015 Android KitKat & Lollipop - new features for enterprise de...EMEA AppForum 2015 Android KitKat & Lollipop - new features for enterprise de...
EMEA AppForum 2015 Android KitKat & Lollipop - new features for enterprise de...Pietro F. Maggi
 
Firefox OS - Hive Pilani 2015
Firefox OS - Hive Pilani 2015Firefox OS - Hive Pilani 2015
Firefox OS - Hive Pilani 2015Nilay Binjola
 
Androidoverview 100405150711-phpapp01
Androidoverview 100405150711-phpapp01Androidoverview 100405150711-phpapp01
Androidoverview 100405150711-phpapp01Santosh Sh
 

Semelhante a Getting Started with Developing BlackBerry Android Apps (20)

Mobile Web Apps
Mobile Web AppsMobile Web Apps
Mobile Web Apps
 
Getting Started with BB Development..
Getting Started with BB Development..Getting Started with BB Development..
Getting Started with BB Development..
 
Android complete basic Guide
Android complete basic GuideAndroid complete basic Guide
Android complete basic Guide
 
Seminar on android app development
Seminar on android app developmentSeminar on android app development
Seminar on android app development
 
Software training report
Software training reportSoftware training report
Software training report
 
Battle of Music: SDK from iPhone, Nokia, BlackBerry, Android, Palm
Battle of Music: SDK from iPhone, Nokia, BlackBerry, Android, PalmBattle of Music: SDK from iPhone, Nokia, BlackBerry, Android, Palm
Battle of Music: SDK from iPhone, Nokia, BlackBerry, Android, Palm
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and Development
 
Mobile Web Apps and the Intel® XDK
Mobile Web Apps and the Intel® XDKMobile Web Apps and the Intel® XDK
Mobile Web Apps and the Intel® XDK
 
Mobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdfMobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdf
 
Introduction to Mobile Development
Introduction to Mobile DevelopmentIntroduction to Mobile Development
Introduction to Mobile Development
 
Crosswalk and the Intel XDK
Crosswalk and the Intel XDKCrosswalk and the Intel XDK
Crosswalk and the Intel XDK
 
Android and its feature
Android and its featureAndroid and its feature
Android and its feature
 
The Blackberry Opportunity (RIM) 160612
The Blackberry Opportunity (RIM) 160612The Blackberry Opportunity (RIM) 160612
The Blackberry Opportunity (RIM) 160612
 
Rapid Prototyping with Cordova aka Phonegap
Rapid Prototyping with Cordova aka PhonegapRapid Prototyping with Cordova aka Phonegap
Rapid Prototyping with Cordova aka Phonegap
 
PPT on Android
PPT on AndroidPPT on Android
PPT on Android
 
Gl android platform
Gl android platformGl android platform
Gl android platform
 
Introduction to Android
Introduction to AndroidIntroduction to Android
Introduction to Android
 
EMEA AppForum 2015 Android KitKat & Lollipop - new features for enterprise de...
EMEA AppForum 2015 Android KitKat & Lollipop - new features for enterprise de...EMEA AppForum 2015 Android KitKat & Lollipop - new features for enterprise de...
EMEA AppForum 2015 Android KitKat & Lollipop - new features for enterprise de...
 
Firefox OS - Hive Pilani 2015
Firefox OS - Hive Pilani 2015Firefox OS - Hive Pilani 2015
Firefox OS - Hive Pilani 2015
 
Androidoverview 100405150711-phpapp01
Androidoverview 100405150711-phpapp01Androidoverview 100405150711-phpapp01
Androidoverview 100405150711-phpapp01
 

Mais de Droidcon Berlin

Droidcon de 2014 google cast
Droidcon de 2014   google castDroidcon de 2014   google cast
Droidcon de 2014 google castDroidcon Berlin
 
Android programming -_pushing_the_limits
Android programming -_pushing_the_limitsAndroid programming -_pushing_the_limits
Android programming -_pushing_the_limitsDroidcon Berlin
 
Android industrial mobility
Android industrial mobility Android industrial mobility
Android industrial mobility Droidcon Berlin
 
From sensor data_to_android_and_back
From sensor data_to_android_and_backFrom sensor data_to_android_and_back
From sensor data_to_android_and_backDroidcon Berlin
 
new_age_graphics_android_x86
new_age_graphics_android_x86new_age_graphics_android_x86
new_age_graphics_android_x86Droidcon Berlin
 
Testing and Building Android
Testing and Building AndroidTesting and Building Android
Testing and Building AndroidDroidcon Berlin
 
Matchinguu droidcon presentation
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentationDroidcon Berlin
 
Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Droidcon Berlin
 
The artofcalabash peterkrauss
The artofcalabash peterkraussThe artofcalabash peterkrauss
The artofcalabash peterkraussDroidcon Berlin
 
Raesch, gries droidcon 2014
Raesch, gries   droidcon 2014Raesch, gries   droidcon 2014
Raesch, gries droidcon 2014Droidcon Berlin
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Droidcon Berlin
 
20140508 quantified self droidcon
20140508 quantified self droidcon20140508 quantified self droidcon
20140508 quantified self droidconDroidcon Berlin
 
Tuning android for low ram devices
Tuning android for low ram devicesTuning android for low ram devices
Tuning android for low ram devicesDroidcon Berlin
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradioDroidcon Berlin
 
Droidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon Berlin
 

Mais de Droidcon Berlin (20)

Droidcon de 2014 google cast
Droidcon de 2014   google castDroidcon de 2014   google cast
Droidcon de 2014 google cast
 
Android programming -_pushing_the_limits
Android programming -_pushing_the_limitsAndroid programming -_pushing_the_limits
Android programming -_pushing_the_limits
 
crashing in style
crashing in stylecrashing in style
crashing in style
 
Raspberry Pi
Raspberry PiRaspberry Pi
Raspberry Pi
 
Android industrial mobility
Android industrial mobility Android industrial mobility
Android industrial mobility
 
Details matter in ux
Details matter in uxDetails matter in ux
Details matter in ux
 
From sensor data_to_android_and_back
From sensor data_to_android_and_backFrom sensor data_to_android_and_back
From sensor data_to_android_and_back
 
droidparts
droidpartsdroidparts
droidparts
 
new_age_graphics_android_x86
new_age_graphics_android_x86new_age_graphics_android_x86
new_age_graphics_android_x86
 
5 tips of monetization
5 tips of monetization5 tips of monetization
5 tips of monetization
 
Testing and Building Android
Testing and Building AndroidTesting and Building Android
Testing and Building Android
 
Matchinguu droidcon presentation
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentation
 
Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3
 
The artofcalabash peterkrauss
The artofcalabash peterkraussThe artofcalabash peterkrauss
The artofcalabash peterkrauss
 
Raesch, gries droidcon 2014
Raesch, gries   droidcon 2014Raesch, gries   droidcon 2014
Raesch, gries droidcon 2014
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014
 
20140508 quantified self droidcon
20140508 quantified self droidcon20140508 quantified self droidcon
20140508 quantified self droidcon
 
Tuning android for low ram devices
Tuning android for low ram devicesTuning android for low ram devices
Tuning android for low ram devices
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradio
 
Droidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicro
 

Último

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 

Último (20)

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 

Getting Started with Developing BlackBerry Android Apps

  • 1. Getting Started with Developing for BlackBerry Runtime for Android Apps Kamel Lajili– RIM, Senior Application Development Consultant DroidCon Berlin March 14th 2012
  • 2. Overview What we will cover in this session  Why repackage for BlackBerry  BlackBerry Runtime for Android Apps - what it is and what it is not  PlayBook development basics  Converting existing applications  Q&A 2
  • 4. Why repackage? BlackBerry App World  Available in 164 markets and growing  Averaging 174 Million downloads per month and growing fast, more than 6 Millions per day!  BlackBerry App World vendor base grows by an average of 190% per year  In EMEA there are Over 3K vendors from 59 countries 4
  • 5. Why repackage? BlackBerry App World “BlackBerry Apps generate 40% more revenue as Android apps“ (Vision Mobile) Source: Application Distribution Survey, Evans Data, Sept 2011, Vision Mobile 5
  • 6. Why repackage? BlackBerry App World “BlackBerry App World delivered the most revenues over the past year, and the most monthly traffic”  “13% of BlackBerry developers make over $100,000 from the App World apps, which is considerably more than Android or Apple developers…”  “19% of BlackBerry App World participants say they had 1,000 or more downloads over the 30 days” 6
  • 7. Why repackage?  Opportunity to increase revenue with minimum (couple of days) effort  in 65% of the cases just repackage the existing APK – no source code or recompilation required  familiar development environment is provided for the cases when modifications to the applications are required – Eclipse plugin on top of Google's ADT plugin  Opportunity for experimenting with different business model and a new customer base 7
  • 8. Need a PlayBook to port your Android Apps?
  • 9. What it is? App1 App2 App3 App4 App5 App6 App7 App8 • It’s an application running on Playbook Application Framework Activity Mgr Window Mgr View System Notification • Enables Android applications to be Mgr installed and run on the BlackBerry Package Mgr Resource Mgr Location Mgr PlayBook Tablet Libraries Java Runtime • Android API level 10 – Android v2.3.3 WebKit OpenGL ES Core Libraries aka “Gingerbread” Application Framework SSL SQLite running on top of the PlayBook OS and Surface Mgr SGL Libraries. Dalvik Virtual Machine FreeType Media Fwk libbionic QNX Kernel @twitterhandle – 9
  • 10. What it is … Under the hood  A number of cooperating user mode processes that run inside a sandbox  User mode ensures isolation from the OS kernel  Nothing runs as root  Applications requiring special access must have appropriate OS capabilities  Sandbox ensures isolation from other native applications  Data sharing with other native applications is possible in restricted fashion, e.g. photo, music, video, etc.  More secure and robust than other Android devices 10
  • 11. What it is … PlayBook integration  Blends in with the rest of the PlayBook applications  Application Launching/Minimizing/Thumbnail  Installation  Android applications are packaged as a BlackBerry Archive (BAR)  Deploy through BlackBerry® App World™ like other BlackBerry PlayBook tablet apps  Android Media Framework  Graphics  Hardware accelerated OpenGL ES and screen composition.  Notifications  Sensors  Accelerometer, gyroscope, compass, etc. @twitterhandle – 11
  • 12. What it is … PlayBook integration  Networking  Virtual keyboard  Multi-touch – 4-finger multi-touch  Standard public intents for launching native applications  Email, Camera, Photo Gallery, Video Recorder, Browser, Settings, etc.  Standard public intents for launching native file viewers  .pdf, .doc, .xls, .ppt, .png, .jpg, .gif, audio, video, etc.  Shared storage for public data  /sdcard/ -> /accounts/1000/shared/misc/android/  Accessible by other native applications and through USB @twitterhandle – 12
  • 13. What it is … PlayBook integration  Security  BlackBerry Runtime for Android Apps runs in a secure PlayBook OS sandbox that keeps android insulated from the rest of the system. It’s treated as a secure PlayBook application and is subject to the restrictions other native apps are subject to.  Existing Android permission system is retained by BlackBerry Runtime.  Access to system resources are further protected by PlayBook OS via Capabilities that need to be specified in BAR manifest. @twitterhandle – 13
  • 14. What it is not … Things to be aware of  Review your UI  1024x600 screen resolution  32 bit color depth  xDPI, yDPI: 169.99, 169.33  Landscape orientation is the default  86x86 application icon  Notifications look different  No add-on Google libraries – Maps, C2DM, In-app billing  No Android Market  Limited Bluetooth support 14
  • 15. What it is not … Things to be aware of  Limited Camera integration – invoke but don’t embed  SIP/VOIP  Process sharing  Multiple entry points  Android Home screen/Widgets  Android NDK  Search key  HTTP progressive streaming 15
  • 16. Online resources  Android  http://developer.blackberry.com/android  Documentation:  http://developer.blackberry.com/android/documentation  Where to get signing keys:  https://www.blackberry.com/SignedKeys/ @twitterhandle – 16
  • 17. PlayBook development basics BAR files  BAR files are the native PlayBook application packaging  What APK files are for Andorid BAR files are for BlackBerry  BAR files contain executables, images, media, etc.  blackberry-deploy: put a packaged app onto the device  The device has to be in development mode 17
  • 18. PlayBook development basics Development mode @twitterhandle – 18
  • 19. PlayBook development basics Development mode @twitterhandle – 19
  • 20. PlayBook development basics Signing  BARs are either signed or unsigned  Unsigned BAR requires Debug Token (except Simulator)  You will need signing keys to develop on Device:  http://developer.blackberry.com/native/signingkey  ~1 hour turnaround  You will get  RDK key to sign for distribution  PBDT key to create debug token 20
  • 21. PlayBook development basics Debug tokens  Debug tokens allow you to load unsigned applications from a specific author on a specific device  To request a debug token from the command line: blackberry-debugtokenrequest -cskpass **** -keystore sigtool.p12 -storepass @@@@ -deviceId 0x500C8F54 0x500C8F54 debug.bar  To deploy a debug token on a device blackberry-deploy -installDebugToken 0x500C8F54debug.bar -device 169.254.0.1 -password &&&&  Can also be requested and deployed from within the Eclipse 21
  • 23. PlayBook development basics Submitting to BlackBerry AppWorld  Create an account for BlackBerry App World  https://appworld.blackberry.com/isvportal/  Application name, description and icon or logo  Category in which your app should be placed  License type (free, paid or try and buy)  Wireless service providers your app will be available to  Countries where your app should be distributed  Releases and file bundles  Screenshots  Submit signed BAR file 23
  • 24. Converting existing applications Choosing your method  Online tool  Command line  Eclipse plugin 24
  • 25. Converting existing applications Compatibility categories  APK verifier for checking Android compatibility  Five categories on how well an application may run on PlayBook  Impact level 1 (minor non-compliance): Application will run just fine.  Impact level 2: Application may run but some functionality will not work  Unsupported features: Telephony, Camera, SIP, VOIP, etc.  Impact level 3: Application may run but some functionality will not work  Unsupported Google services: e.g. Google Maps.  Impact level 4: Application will most likely not functional  5-way navigation, h/w keyboard, C2DM  Impact level 5 (most severe): Application will not run.  Native libraries, dependency on 3rd party libraries  Eclipse plugin reports compatibility levels as errors and/or warnings 25
  • 26. Converting existing applications Using the online tool  https://bdsc.webapps.blackberry.com/android/bpaa/ 26
  • 27. Demo: Converting using the online tool
  • 28. Converting existing applications Using the command line tools 1. apk2barVerifier 2. apk2bar 3. blackberry-deploy 28
  • 29. Demo: Converting using the command line tools
  • 30. Converting existing applications Using the Eclipse plugin  ADT Plug-in for Eclipse + BlackBerry Plug-in for ADT  PlayBook is just another device target for your existing Android project  Debugging applications on PlayBook just like on other Android devices  adb, ddms, jdwp, logcat, etc. 30
  • 31. Converting existing applications Using the Eclipse plugin 1. Install “Eclipse IDE for Java Developers” 3.7 (Indigo)  http://www.eclipse.org/downloads/packages/eclipse-classic-37/indigor 2. Install Android SDK  http://developer.android.com/sdk/index.html  Also use the Android SDK manager to download the Android 2.3.3 platform and related tool and create an Android Virtual Device (AVD) 3. Install ADT Plug-in for Eclipse  http://developer.android.com/sdk/eclipse-adt.html 4. Install BlackBerry Plug-in for ADT  https://bdsc.webapps.blackberry.com/android/downloads/eclipseplugin/ 31
  • 32. Demo: Converting using Eclipse plugin
  • 33. Detecting a PlayBook  java.lang.System.getProperty("os.name")  Returns “qnx”  android.telephony.TelephonyManager.getDeviceId()  Returns unique device serial number – e.g. 0000000000429494272343  Same number can be found under Options -> About screen  Browser’s user agent  “Mozilla/5.0 (PlayBook; U; Android 2.3.3; en-us; PlayBook Build/<build_no>) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1” 33
  • 34. Recap  BlackBerry Runtime for Android apps enables Android applications to run on PlayBook in a secure and robust environment with optimized performance  BlackBerry Runtime for Android apps enables developers to monetize Android applications on PlayBook  Minimal cost in converting your Android applications  Majority applications (~65%) convert without any source changes 34
  • 35. Questions? Q&A 35
  • 36. Online resources  Android  http://developer.blackberry.com/android  Documentation:  http://developer.blackberry.com/android/documentation  Where to get signing keys:  https://www.blackberry.com/SignedKeys/ @twitterhandle – 36
  • 37. THANK YOU Kamel Lajili– RIM, Senior Application Development Consultant, @klajili DroidCon Berlin March 14th 2012