SlideShare a Scribd company logo
1 of 34
Develop Android Application
  with Mono for Android
      Nicko Satria Utama
          Level 100
What is Android
• It is an Operating System derived from Linux
  that is developed by Open Handled Alliance
  led by Google
• Run on Smartphone to Tablet to Netbooks
• It has Apache license 2.0
• Based on Linux kernel 2.6
• Support ARM and x86 Architechture
What is Dalvik VM
• Commonly used Virtual Machine on Android
• Convert from Java byte code to Dalvix
  Executable on installation
• It is installed in the handset.
Mono for Android
• It is developed by Xamarin.
• It is an alternate implementation using Mono
  in Android environment
• It is not installed in the handset.
• It is used by Microsoft and other big vendors
  to develop Android Apps.
• It is a paid license. A trial license will run on
  emulator only.
Mono for Android
• It uses C# as development language
• It uses .NET Base Class Library
• It can be developed using Visual Studio 2010
  or MonoDevelop as an IDE
• The code will compiled into Mono IL
• It can interopt between Dalvik and Mono via
  Mono Callable Wrapper and Android Callable
  Wrapper
Architecture
Architecture
• Mono and Dalvik has access directly and
  independently to Linux so there is no stacking
  between Mono and Dalvik
Mono for Android Interested Feature
• Simple installation compare to use another
  tool.
• Using C# 3.0
• Support SQL Lite
• Consume web service and WCF directly
  through basicHttpBinding
• Can run and debug on Visual Studio 2010
Mono for Android Interested Feature
• Design UI directly using axml (Android XML)
  by drag and drop from Visual Studio 2010
  toolbox
• Simple project assets/artifacts.
• All Mono shared runtime and user assembly
  will be compiled and package into one file.
Mono for Android Performance
• It is faster than using Java.
• It is a bit slower than Java in the startup since
  the size is bigger than Java
• An article for perfomance comparison
  between Dalvik and Mono
  http://www.koushikdutta.com/2009/01/dalvik
  -vs-mono.html
Mono for Android Software
             Requirement
• Windows XP SP2 or latest or Windows Server
  2003 or latest.
• IIS installed for web service or WCF project.
• Visual Studio 2010 at least Professional
  edition with Service Pack 1.
Installation (trial license)
• Goto http://xamarin.com/trial
• Fill it everything and then click Mono for
  Android for Windows.

• It will download setup.exe and then run it
Installation (trial license)
• Just follow the installation wizard
Installation (trial license)
• Just follow the wizard. This screen checks if
  components is installed. VS 2010 instance
  must be turn off
Installation (trial license)
• The required component will be displayed.
Installation (trial license)
• Just follow the wizard. It will download all
  required component.
Installation (trial license)
• After it finished, Please restart the Windows.
  It is useful for setting environments like
  JAVA_HOME or else to be recognized by
  Windows.
Installation Android SDK
• Mono for Android will install some of Android
  SDK from API 8, 10, 12 and 14 in the
  installation with default configuration.
• Developers can download another API for
  another Android target.
Configure Android Virtual Device
• Mono for Android will configure some Android
  Virtual Device with default configuration from
  API 8, 10, 12 and 14
• Developers can make a new Android Virtual
  Device with own configuration.
Creating first project in VS 2010
• Start Visual Studio 2010
• Create a new project type of mono droid. For
  example: Android Application
Creating first project in VS 2010
• Run on debug configuration
Creating first project in VS 2010
• Choose one of started device from the list.
  The developer can start a new device if
  nothing started.
Creating first project in VS 2010
• This is a the display of Android emulator.
Creating first project in VS 2010
• Select a started emulator.
Creating first project in VS 2010
• This is the application inside Android
  emulator.
Creating first project in VS 2010
• Developers can debug directly in VS 2010
Installation Troubleshooting
• Unautorized Access on
  c:usersEmric02AppDataLocalTempMonofor
  Droidinstaller_r20.exe. This file can be
  deleted, Add “Everyone” on temp folder security
  and installation wizard can be started
• Java runtime SE cannot found or already installed.
  The Mono for Android needs specific Java
  runtime SE 6 update 23 at least on x86. Please
  uninstall your Java runtime SE and lets the mono
  for android do the job. After installation is
  succeed, it can be upgrade to latest update.
Installation Troubleshooting
• OS is not recognized or error. It happens on
  Windows 8 Preview or Windows 2012 Server
  RC. Please uninstall or use virtual machine like
  virtualbox or vmware; and install on RTM
  version of Windows.
• Cannot access to android hardware device.
  This error will appear when you use trial. Just
  ignore it.
Development Consideration
• Keep as simple as possible and use variable or
  instance wisely.
• Decrease use of Java/Dalvik specific API since
  it will decrease performance. Find similar
  function/class/method on .NET
Development Consideration
• Your application will package together with
  Mono runtime and make application size
  bigger than Java/Dalvik. It makes some time to
  load. It can use splash screen to hide it.
Resources
• Mono for Android documentation
  http://docs.xamarin.com/android/getting_star
  ted/Introduction_to_Mono_for_Android
• Mono for Android Community on
  stackoverflow
  http://stackoverflow.com/questions/tagged/m
  onodroid?sort=active
Resources
• Tested performance Dalvik vs Monodroid
http://www.koushikdutta.com/2009/01/dalvik-
vs-mono.html
• Dalvik VM on Google IO 2008 on Youtube
  http://www.youtube.com/watch?v=ptjedOZEX
  PM
• Xamarin channel on Youtube
  http://www.youtube.com/user/xamarinhq
Questions?
• Post some questions on
  http://www.stackoverflow.com
THANK YOU

More Related Content

What's hot

Appium Mobile Testing - Nakov at js.talks() Conference - Nov 2021
Appium Mobile Testing - Nakov at js.talks() Conference - Nov 2021Appium Mobile Testing - Nakov at js.talks() Conference - Nov 2021
Appium Mobile Testing - Nakov at js.talks() Conference - Nov 2021Svetlin Nakov
 
Xamarin for (not only) Android developers
Xamarin for (not only) Android developersXamarin for (not only) Android developers
Xamarin for (not only) Android developersAleksander Piotrowski
 
Introduction to Android with C# using Xamarin
Introduction to Android with C# using XamarinIntroduction to Android with C# using Xamarin
Introduction to Android with C# using XamarinCraig Dunn
 
Introduction to UWP - Universal Windows Platform Application Development
Introduction to UWP - Universal Windows Platform Application DevelopmentIntroduction to UWP - Universal Windows Platform Application Development
Introduction to UWP - Universal Windows Platform Application DevelopmentLohith Goudagere Nagaraj
 
Getting started with Appcelerator Titanium
Getting started with Appcelerator TitaniumGetting started with Appcelerator Titanium
Getting started with Appcelerator TitaniumTechday7
 
Continuous Integration of Mobile Apps with Docker and Appium
Continuous Integration of Mobile Apps with Docker and AppiumContinuous Integration of Mobile Apps with Docker and Appium
Continuous Integration of Mobile Apps with Docker and AppiumEmergya
 
Appium Mobile Testing: Nakov at BurgasConf - July 2021
Appium Mobile Testing: Nakov at BurgasConf - July 2021Appium Mobile Testing: Nakov at BurgasConf - July 2021
Appium Mobile Testing: Nakov at BurgasConf - July 2021Svetlin Nakov
 
Introduction to universal windows platform(uwp) app development
Introduction to universal windows platform(uwp) app developmentIntroduction to universal windows platform(uwp) app development
Introduction to universal windows platform(uwp) app developmentThilina Wijerathne
 
Universal windows platform - Application development done right
Universal windows platform - Application development done rightUniversal windows platform - Application development done right
Universal windows platform - Application development done rightChristos Matskas
 
Top 10 Differences between developing Windows Phone and Store apps
Top 10 Differences between developing Windows Phone and Store appsTop 10 Differences between developing Windows Phone and Store apps
Top 10 Differences between developing Windows Phone and Store appsMorten Nielsen
 
React native development with expo
React native development with expoReact native development with expo
React native development with expoSangSun Park
 
Installing And Configuring Java Me Tools
Installing And Configuring Java Me ToolsInstalling And Configuring Java Me Tools
Installing And Configuring Java Me ToolsJussi Pohjolainen
 
Windows 10 UWP Development Overview
Windows 10 UWP Development OverviewWindows 10 UWP Development Overview
Windows 10 UWP Development OverviewDevGAMM Conference
 
Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript Serge van den Oever
 
BP218 IBM Lotus Notes 8 and IBM Lotus Expeditor Customization for LotusScript...
BP218 IBM Lotus Notes 8 and IBM Lotus Expeditor Customization for LotusScript...BP218 IBM Lotus Notes 8 and IBM Lotus Expeditor Customization for LotusScript...
BP218 IBM Lotus Notes 8 and IBM Lotus Expeditor Customization for LotusScript...John Head
 
Jalimo Slides Linuxtag2008
Jalimo Slides Linuxtag2008Jalimo Slides Linuxtag2008
Jalimo Slides Linuxtag2008smancke
 
Hybrid Apps in a Snap
Hybrid Apps in a SnapHybrid Apps in a Snap
Hybrid Apps in a SnapPaulina Gallo
 
Appium workshop technopark trivandrum
Appium workshop technopark trivandrumAppium workshop technopark trivandrum
Appium workshop technopark trivandrumSyam Sasi
 
Automation testing on ios platform using appium
Automation testing on ios platform using appiumAutomation testing on ios platform using appium
Automation testing on ios platform using appiumAmbreen Khan
 

What's hot (20)

Appium Mobile Testing - Nakov at js.talks() Conference - Nov 2021
Appium Mobile Testing - Nakov at js.talks() Conference - Nov 2021Appium Mobile Testing - Nakov at js.talks() Conference - Nov 2021
Appium Mobile Testing - Nakov at js.talks() Conference - Nov 2021
 
Xamarin for (not only) Android developers
Xamarin for (not only) Android developersXamarin for (not only) Android developers
Xamarin for (not only) Android developers
 
Introduction to Android with C# using Xamarin
Introduction to Android with C# using XamarinIntroduction to Android with C# using Xamarin
Introduction to Android with C# using Xamarin
 
Introduction to UWP - Universal Windows Platform Application Development
Introduction to UWP - Universal Windows Platform Application DevelopmentIntroduction to UWP - Universal Windows Platform Application Development
Introduction to UWP - Universal Windows Platform Application Development
 
Getting started with Appcelerator Titanium
Getting started with Appcelerator TitaniumGetting started with Appcelerator Titanium
Getting started with Appcelerator Titanium
 
Chapter 1 java
Chapter 1 java Chapter 1 java
Chapter 1 java
 
Continuous Integration of Mobile Apps with Docker and Appium
Continuous Integration of Mobile Apps with Docker and AppiumContinuous Integration of Mobile Apps with Docker and Appium
Continuous Integration of Mobile Apps with Docker and Appium
 
Appium Mobile Testing: Nakov at BurgasConf - July 2021
Appium Mobile Testing: Nakov at BurgasConf - July 2021Appium Mobile Testing: Nakov at BurgasConf - July 2021
Appium Mobile Testing: Nakov at BurgasConf - July 2021
 
Introduction to universal windows platform(uwp) app development
Introduction to universal windows platform(uwp) app developmentIntroduction to universal windows platform(uwp) app development
Introduction to universal windows platform(uwp) app development
 
Universal windows platform - Application development done right
Universal windows platform - Application development done rightUniversal windows platform - Application development done right
Universal windows platform - Application development done right
 
Top 10 Differences between developing Windows Phone and Store apps
Top 10 Differences between developing Windows Phone and Store appsTop 10 Differences between developing Windows Phone and Store apps
Top 10 Differences between developing Windows Phone and Store apps
 
React native development with expo
React native development with expoReact native development with expo
React native development with expo
 
Installing And Configuring Java Me Tools
Installing And Configuring Java Me ToolsInstalling And Configuring Java Me Tools
Installing And Configuring Java Me Tools
 
Windows 10 UWP Development Overview
Windows 10 UWP Development OverviewWindows 10 UWP Development Overview
Windows 10 UWP Development Overview
 
Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript
 
BP218 IBM Lotus Notes 8 and IBM Lotus Expeditor Customization for LotusScript...
BP218 IBM Lotus Notes 8 and IBM Lotus Expeditor Customization for LotusScript...BP218 IBM Lotus Notes 8 and IBM Lotus Expeditor Customization for LotusScript...
BP218 IBM Lotus Notes 8 and IBM Lotus Expeditor Customization for LotusScript...
 
Jalimo Slides Linuxtag2008
Jalimo Slides Linuxtag2008Jalimo Slides Linuxtag2008
Jalimo Slides Linuxtag2008
 
Hybrid Apps in a Snap
Hybrid Apps in a SnapHybrid Apps in a Snap
Hybrid Apps in a Snap
 
Appium workshop technopark trivandrum
Appium workshop technopark trivandrumAppium workshop technopark trivandrum
Appium workshop technopark trivandrum
 
Automation testing on ios platform using appium
Automation testing on ios platform using appiumAutomation testing on ios platform using appium
Automation testing on ios platform using appium
 

Similar to Develop android application with mono for android

Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Javaamaankhan
 
NCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsNCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsJohn M. Wargo
 
Introduction_to_android_and_android_studio
Introduction_to_android_and_android_studioIntroduction_to_android_and_android_studio
Introduction_to_android_and_android_studioAbdul Basit
 
Android app development by abhi android
Android app development by abhi androidAndroid app development by abhi android
Android app development by abhi androidsusijanny
 
Android app development
Android app developmentAndroid app development
Android app developmentAbhishek Saini
 
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
 
Building Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using CordovaBuilding Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using CordovaNoam Kfir
 
Introduction to android sessions new
Introduction to android   sessions newIntroduction to android   sessions new
Introduction to android sessions newJoe Jacob
 
Google ART (Android RunTime)
Google ART (Android RunTime)Google ART (Android RunTime)
Google ART (Android RunTime)Niraj Solanke
 
Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?LOGINPHP360
 
Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?LOGINPHP360
 
Staying connected: An Overview of Announcements from Microsoft’s Connect();
Staying connected: An Overview of Announcements from Microsoft’s Connect();Staying connected: An Overview of Announcements from Microsoft’s Connect();
Staying connected: An Overview of Announcements from Microsoft’s Connect();dotNet Miami
 
Mobile Application Development powerpoint
Mobile Application Development powerpointMobile Application Development powerpoint
Mobile Application Development powerpointJohnLagman3
 
Learning C# iPad Programming
Learning C# iPad ProgrammingLearning C# iPad Programming
Learning C# iPad ProgrammingRich Helton
 
Build mini - Windows 10 Dev & Cross platform Dev
Build mini - Windows 10 Dev & Cross platform DevBuild mini - Windows 10 Dev & Cross platform Dev
Build mini - Windows 10 Dev & Cross platform DevIan Chen
 

Similar to Develop android application with mono for android (20)

Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 
NCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsNCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile Apps
 
Introduction_to_android_and_android_studio
Introduction_to_android_and_android_studioIntroduction_to_android_and_android_studio
Introduction_to_android_and_android_studio
 
Android app development by abhi android
Android app development by abhi androidAndroid app development by abhi android
Android app development by abhi android
 
Android app development
Android app developmentAndroid app development
Android app development
 
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...
 
Building Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using CordovaBuilding Cross-Platform JavaScript Apps using Cordova
Building Cross-Platform JavaScript Apps using Cordova
 
Android app upload
Android app uploadAndroid app upload
Android app upload
 
Gl android platform
Gl android platformGl android platform
Gl android platform
 
Introduction to android sessions new
Introduction to android   sessions newIntroduction to android   sessions new
Introduction to android sessions new
 
Android - Anroid Pproject
Android - Anroid PprojectAndroid - Anroid Pproject
Android - Anroid Pproject
 
Google ART (Android RunTime)
Google ART (Android RunTime)Google ART (Android RunTime)
Google ART (Android RunTime)
 
Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?
 
Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?
 
Staying connected: An Overview of Announcements from Microsoft’s Connect();
Staying connected: An Overview of Announcements from Microsoft’s Connect();Staying connected: An Overview of Announcements from Microsoft’s Connect();
Staying connected: An Overview of Announcements from Microsoft’s Connect();
 
Mobile Application Development powerpoint
Mobile Application Development powerpointMobile Application Development powerpoint
Mobile Application Development powerpoint
 
Learning C# iPad Programming
Learning C# iPad ProgrammingLearning C# iPad Programming
Learning C# iPad Programming
 
Android Programming
Android ProgrammingAndroid Programming
Android Programming
 
Android
AndroidAndroid
Android
 
Build mini - Windows 10 Dev & Cross platform Dev
Build mini - Windows 10 Dev & Cross platform DevBuild mini - Windows 10 Dev & Cross platform Dev
Build mini - Windows 10 Dev & Cross platform Dev
 

Recently uploaded

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 

Recently uploaded (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 

Develop android application with mono for android

  • 1. Develop Android Application with Mono for Android Nicko Satria Utama Level 100
  • 2. What is Android • It is an Operating System derived from Linux that is developed by Open Handled Alliance led by Google • Run on Smartphone to Tablet to Netbooks • It has Apache license 2.0 • Based on Linux kernel 2.6 • Support ARM and x86 Architechture
  • 3. What is Dalvik VM • Commonly used Virtual Machine on Android • Convert from Java byte code to Dalvix Executable on installation • It is installed in the handset.
  • 4. Mono for Android • It is developed by Xamarin. • It is an alternate implementation using Mono in Android environment • It is not installed in the handset. • It is used by Microsoft and other big vendors to develop Android Apps. • It is a paid license. A trial license will run on emulator only.
  • 5. Mono for Android • It uses C# as development language • It uses .NET Base Class Library • It can be developed using Visual Studio 2010 or MonoDevelop as an IDE • The code will compiled into Mono IL • It can interopt between Dalvik and Mono via Mono Callable Wrapper and Android Callable Wrapper
  • 7. Architecture • Mono and Dalvik has access directly and independently to Linux so there is no stacking between Mono and Dalvik
  • 8. Mono for Android Interested Feature • Simple installation compare to use another tool. • Using C# 3.0 • Support SQL Lite • Consume web service and WCF directly through basicHttpBinding • Can run and debug on Visual Studio 2010
  • 9. Mono for Android Interested Feature • Design UI directly using axml (Android XML) by drag and drop from Visual Studio 2010 toolbox • Simple project assets/artifacts. • All Mono shared runtime and user assembly will be compiled and package into one file.
  • 10. Mono for Android Performance • It is faster than using Java. • It is a bit slower than Java in the startup since the size is bigger than Java • An article for perfomance comparison between Dalvik and Mono http://www.koushikdutta.com/2009/01/dalvik -vs-mono.html
  • 11. Mono for Android Software Requirement • Windows XP SP2 or latest or Windows Server 2003 or latest. • IIS installed for web service or WCF project. • Visual Studio 2010 at least Professional edition with Service Pack 1.
  • 12. Installation (trial license) • Goto http://xamarin.com/trial • Fill it everything and then click Mono for Android for Windows. • It will download setup.exe and then run it
  • 13. Installation (trial license) • Just follow the installation wizard
  • 14. Installation (trial license) • Just follow the wizard. This screen checks if components is installed. VS 2010 instance must be turn off
  • 15. Installation (trial license) • The required component will be displayed.
  • 16. Installation (trial license) • Just follow the wizard. It will download all required component.
  • 17. Installation (trial license) • After it finished, Please restart the Windows. It is useful for setting environments like JAVA_HOME or else to be recognized by Windows.
  • 18. Installation Android SDK • Mono for Android will install some of Android SDK from API 8, 10, 12 and 14 in the installation with default configuration. • Developers can download another API for another Android target.
  • 19. Configure Android Virtual Device • Mono for Android will configure some Android Virtual Device with default configuration from API 8, 10, 12 and 14 • Developers can make a new Android Virtual Device with own configuration.
  • 20. Creating first project in VS 2010 • Start Visual Studio 2010 • Create a new project type of mono droid. For example: Android Application
  • 21. Creating first project in VS 2010 • Run on debug configuration
  • 22. Creating first project in VS 2010 • Choose one of started device from the list. The developer can start a new device if nothing started.
  • 23. Creating first project in VS 2010 • This is a the display of Android emulator.
  • 24. Creating first project in VS 2010 • Select a started emulator.
  • 25. Creating first project in VS 2010 • This is the application inside Android emulator.
  • 26. Creating first project in VS 2010 • Developers can debug directly in VS 2010
  • 27. Installation Troubleshooting • Unautorized Access on c:usersEmric02AppDataLocalTempMonofor Droidinstaller_r20.exe. This file can be deleted, Add “Everyone” on temp folder security and installation wizard can be started • Java runtime SE cannot found or already installed. The Mono for Android needs specific Java runtime SE 6 update 23 at least on x86. Please uninstall your Java runtime SE and lets the mono for android do the job. After installation is succeed, it can be upgrade to latest update.
  • 28. Installation Troubleshooting • OS is not recognized or error. It happens on Windows 8 Preview or Windows 2012 Server RC. Please uninstall or use virtual machine like virtualbox or vmware; and install on RTM version of Windows. • Cannot access to android hardware device. This error will appear when you use trial. Just ignore it.
  • 29. Development Consideration • Keep as simple as possible and use variable or instance wisely. • Decrease use of Java/Dalvik specific API since it will decrease performance. Find similar function/class/method on .NET
  • 30. Development Consideration • Your application will package together with Mono runtime and make application size bigger than Java/Dalvik. It makes some time to load. It can use splash screen to hide it.
  • 31. Resources • Mono for Android documentation http://docs.xamarin.com/android/getting_star ted/Introduction_to_Mono_for_Android • Mono for Android Community on stackoverflow http://stackoverflow.com/questions/tagged/m onodroid?sort=active
  • 32. Resources • Tested performance Dalvik vs Monodroid http://www.koushikdutta.com/2009/01/dalvik- vs-mono.html • Dalvik VM on Google IO 2008 on Youtube http://www.youtube.com/watch?v=ptjedOZEX PM • Xamarin channel on Youtube http://www.youtube.com/user/xamarinhq
  • 33. Questions? • Post some questions on http://www.stackoverflow.com