Dan Morrill discusses the different ways to code applications for Android, including managed Dalvik code, Ajax/web apps, and native code. He outlines what each approach is capable of and not capable of. He demonstrates k-means clustering implemented in each approach. Morrill concludes that there are benefits to different approaches and developers should choose based on their app's specific needs and the developer's skills.
While Android programming is based on Java, there are some important philosophical differences and Android-specific constructs to consider. Android for Java Developers is an action-packed, hands-on presentation that takes you through the anatomy of an Android application. The sample application includes most major Android building blocks (Activities, Intents, Services, Broadcast Receivers, Content Providers) to illustrate the philosophy of Android application development. It assumes basic Java knowledge.
Reproducibility in artificial intelligenceCarlos Toxtli
In this presentation, we explore how artificial intelligence experiments can be reproduced by implementing three different approaches such as: Reproducibility frameworks, Reproducible benchmarking tools, and Reproducible standalone methods.
Containers in depth – Understanding how containers work to better work with c...All Things Open
Presented by: Brent Laster
Presented at the All Things Open 2021
Raleigh, NC, USA
Raleigh Convention Center
Abstract: Containers are all the rage these days – from Docker to Kubernetes and everywhere in-between. But to get the most out of them it can be helpful to understand how containers are constructed, how they depend and interact with the operating system, and what the differences and interactions are between layers, images, and containers. Join R&D Director, Brent Laster as he does a quick, visual overview of how containers work and how applications such as Docker work with them.
Topics to be discussed include:
• What containers are and the benefits they provide
• How containers are constructed
• The differences between layers, images, and containers
• What does immutability really mean
• The core Linux functionalities that containers are based on • How containers reuse code
• The differences between containers and VMs
• What Docker really does
• The Open Container Initiative
• A good analogy for understanding all of this
Autom editor video blooper recognition and localization for automatic monolo...Carlos Toxtli
Multimodal video action (bloopers) recognition and localization methods for spatio-temporal feature fusion by using Face, Body, Audio, and Emotion features
While Android programming is based on Java, there are some important philosophical differences and Android-specific constructs to consider. Android for Java Developers is an action-packed, hands-on presentation that takes you through the anatomy of an Android application. The sample application includes most major Android building blocks (Activities, Intents, Services, Broadcast Receivers, Content Providers) to illustrate the philosophy of Android application development. It assumes basic Java knowledge.
Reproducibility in artificial intelligenceCarlos Toxtli
In this presentation, we explore how artificial intelligence experiments can be reproduced by implementing three different approaches such as: Reproducibility frameworks, Reproducible benchmarking tools, and Reproducible standalone methods.
Containers in depth – Understanding how containers work to better work with c...All Things Open
Presented by: Brent Laster
Presented at the All Things Open 2021
Raleigh, NC, USA
Raleigh Convention Center
Abstract: Containers are all the rage these days – from Docker to Kubernetes and everywhere in-between. But to get the most out of them it can be helpful to understand how containers are constructed, how they depend and interact with the operating system, and what the differences and interactions are between layers, images, and containers. Join R&D Director, Brent Laster as he does a quick, visual overview of how containers work and how applications such as Docker work with them.
Topics to be discussed include:
• What containers are and the benefits they provide
• How containers are constructed
• The differences between layers, images, and containers
• What does immutability really mean
• The core Linux functionalities that containers are based on • How containers reuse code
• The differences between containers and VMs
• What Docker really does
• The Open Container Initiative
• A good analogy for understanding all of this
Autom editor video blooper recognition and localization for automatic monolo...Carlos Toxtli
Multimodal video action (bloopers) recognition and localization methods for spatio-temporal feature fusion by using Face, Body, Audio, and Emotion features
Async task, threads, pools, and executors oh my!Stacy Devino
http://360andev.com/sessions/100-async-task-threads-pools-and-executors/
Frome 360 AnDev conference
There are many ways to use Threads and in the multithreaded world in which we live, it can be confusing when, where, and how to use these functions correctly. Still, that assumes you know what they all mean and how to manipulate them. Novices and Experts welcome as there are many schools of thought, but we will explore them all together.
Don’t worry, we have you covered.
Animated Version : but.ly/asyncThread
Google I/O Extended Seoul 2016 발표자료입니다.
The ExoPlayer provides many sophisticated features such as Dynamic adaptive streaming over HTTP (DASH), SmoothStreaming and Common Encryption
QNX, C/C++, Qt, Cascades, HTML5… So what’s now BlackBerry 10 application deve...Codemotion
This session is intended to introduce you to the different BlackBerry 10 SDKs showing different ways of developing a mobile app. For example through a pure C/C++ approach very convenient for Games and Libs developers. Or through a more comfortable way using a high level application development Framework supporting Qt and the Blackberry own Cascades UI framework. We will also show you how powerful the BlackBerry 10 mobile web development platform is.
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5David Voyles
The video for this talk can be found here:https://channel9.msdn.com/Blogs/raw-tech/Getting-started-with-Emscripten--Transpiling-C--C-to-JavaScript--HTML5
I cover how to transpile code from C/C++ to HTML5/JS using Emscripten, an open source compiler tool from Mozilla and Alon Zakai.
Developing for BlackBerry 10 – Tools and SDKs by Luca FilighedduCodemotion
La piattaforma BlackBerry 10, lanciata lo scorso 30 Gennaio, é attualmente la piattaforma mobile piú aperta presente sul mercato per quanto riguarda le tecnologie di sviluppo supportate. Gli sviluppatori possono agilmente portare il proprio codice su BB10 con il minimo sforzo e, grazie ai numerosi framework e SDK a disposizione, avere a portata di mano un’ambia scelta di strumenti per sfruttare al meglio la potenza del nuovo sistema operativo. Quale strategia adottare per portare la propria app su BlackBerry 10? Quali le opportunitá?
Docker in Production: How RightScale Delivers Cloud ApplicationsRightScale
Combining Docker, cloud infrastructure, and continuous integration and delivery practices can create a highly automated and efficient way to get new applications and features to market. The RightScale development team has been using Docker from development to continuous integration, and now the operations team has taken Docker into the production environment.
The Docker in Production: How RightScale Delivers Cloud Applications webinar will cover:
Approach and use case for adopting Docker
How RightScale has adopted Docker for development, CI, and production
Overcoming technical and process challenges
The RightScale process before and after Docker
Benefits for both developers and operations teams
Docker & aPaaS: Enterprise Innovation and Trends for 2015WaveMaker, Inc.
WaveMaker Webinar: Cloud-based App Development and Docker: Trends to watch out for in 2015 - http://www.wavemaker.com/news/webinar-cloud-app-development-and-docker-trends/
CIOs, IT planners and developers at a growing number of organizations are taking advantage of the simplicity and productivity benefits of cloud application development. With Docker technology, cloud-based app development or aPaaS (Application Platform as a Service) is only becoming more disruptive − forcing organizations to rethink how they handle innovation, time-to-market pressures, and IT workloads.
Presentation at Android Builders Summit 2012.
Based on the experience of working with ODM companies and SoC vendors, this session would discuss how to figure out the performance hotspot of certain Android devices and then improve in various areas including graphics and boot time. This session consists of the detailed components which seem to be independent from each other in traditional view. However, the situation changes a lot in Android system view since everything is coupled in a mass. Three frequently mentioned items in Android engineering are selected as the entry points: 2D/3D graphics, runtime, and boot time. Audience: Developers who work on Android system integration and platform enablement.
Željko je razvijalec pri podjetju INFINUM, kjer sodeluje pri razvoju različnih Android aplikacij. Na predavanju je detaljno predstavil kaj nam novega prinaša Android 5.0 kot so Material design, ART runtime, MultiDexSupport in drugo ter odgovoril na vprašanje, zakaj bo Android tudi v prihodnosti najbolj zastopljen operacijski sistem na področju mobilnih tehnologij.
The Cordova framework
Recurrent app architecture
Cordova CLI
Debugging Cordova applications
My development environment
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2015.
http://www.ivanomalavolta.com
Announcing AWS CodeBuild - January 2017 Online Teck TalksAmazon Web Services
Today’s cutting edge companies have software release cycles measured in days instead of months. This agility is enabled by the DevOps practice of continuous integration and delivery, which automates building, testing, and deploying all code changes. This automation helps you catch bugs sooner and accelerates developer productivity. In this session, we’ll share the processes followed by Amazon engineers and discuss how you can bring them to your company by using a set of application lifecycle management tools from AWS: the newly announced AWS CodeBuild service, AWS CodePipeline, and AWS CodeDeploy.
Learning Objectives:
• Understand the concepts of DevOps, continuous integration, and continuous delivery
• Learn about Amazon’s DevOps practices
• Hear an overview of how to build a continuous integration and continuous delivery workflow using the combination of CodeBuild, CodePipeline, and CodeDeploy
Mobile Web Applications using HTML5 [IndicThreads Mobile Application Develop...IndicThreads
Session Presented at 1st IndicThreads.com Conference On Mobile Application Development held on 19-20 November 2010 in Pune, India
WEB: http://M10.IndicThreads.com
------------
Speaker: Romin Irani
Abstract:
HTML5 is expected to become mainstream soon. It brings a lot of new features that developers can incorporate today. The Webkit browser is currently the best implementation of the HTML5 standards and it is also available on a variety of Mobile devices like iPhone, Android, etc.
Mobile Web applications are getting powerful day by day. They have distinct advantages over Native mobile applications. With Webkit available on most Smartphone browsers, you can create powerful mobile web applications today. Combine this with some of the latest HTML5 features, and it makes a compelling alternative available to developers today.
This session will give an overview of :
a) What mobile web applications are and their pros / cons vis-a-vis Native Mobile applications.
b) HTML5 features like geolocation, offline storage, web workers, etc
c) How one can use HTML5 features mentioned in (b) to develop mobile web applications today.
d) Demonstrate all the above features via code samples.
e) Cover challenges involved in making sure that the same code base runs on all mobile browsers in a majority of Smartphones.
Takeaway for the audience:
a) Knowledge about upcoming HTML5 standards specifically features like geolocation, offline storage, web workers, etc.
b) Understand of Mobile Web applications and how we can use HTML5 standards to deliver powerful web applications that are delivered on most smartphones today.
c) Challenges involved in making sure that the Mobile Web Applications works well in most browsers across different devices.
DocBook is a general purpose XML and SGML document type particularly well suited to books and papers about computer hardware and software (though it is by no means limited to these applications).
For sample code, Please see http://github.com/viswanath7/DocBook4.5/archives/master
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
6. A chunk of code for making phone calls
6 Image by Evi Christodoulou; http://www.flickr.com/search/?q=startac&l=comm&ct=0
Licensed under Creative Commons Attribution-Share Alike
8. A Platform for Running Code
8 Image by sludgegulper; http://www.flickr.com/photos/sludgeulper/3441498831/
Licensed under Creative Commons Attribution-Share Alike
9. A Platform for Running Code
• Android has an application platform, true
• But we didn’t create Android in an attempt to “own mobile”
• Android is a framework for interacting components
– Apps can pull in pieces of other apps, the web, or even native
9 Image by genvessel; http://www.flickr.com/photos/genvessel/177133869/
Licensed under Creative Commons Attribution
10. "Give me your compiled, your ARM, your huddled
bytecodes yearning to run free, the wretched refuse of
your teeming store. Send these, the threadless, scripted
stuff to me, I lift my lamp beside the coder’s door."
10
11. Agenda
• Introduce the Three Kinds
• Demonstrate how to use them
• Useful comparisons & statistics
• Future directions
11
12. Anti-Agenda
• I will not...
– Teach you how to write apps
– Rehash stuff that’s covered elsewhere
– Pass judgment
12
14. The (current) Three Kinds of Android Code
• Managed Code
• Ajax
• Native Code
14 Images by Sharon Mollerus (http://www.flickr.com/photos/clairity/3229586543/) and Gemma Vittoria (http://www.flickr.com/photos/ggvic/3255129747/)
Licensed under Creative Commons Attribution
17. I Need a Victim
• Interesting but computationally significant
• Efficiently externalizable
• Must make for an interesting visualization
17
18. How about.... k-means clustering?
• Used to identify clusters in sets of points
• We’ll use a simple 2D version
– 500 randomly-generated points
– 6 clusters (ROYGBV)
• Easy to visualize on screen
• 3 implementations
– “Pure” Dalvik app (i.e. 100% Java source code)
– Same visualization code with C algorithm implementation
– JavaScript
18
19. K-Means Clustering in 2,000 Words
Source: http://en.wikipedia.org/wiki/K-means_clustering
19
21. Dalvik - Overview
• Dalvik is a virtual machine, similar to the JVM or .Net CLR
• Memory-protected, garbage-collected, & lifecycle-managed
• Optimized for embedded machines
– Built to reduce much of the need for a JITC
• Custom bytecode format; included translator from Java bytecode
21 Image by damon brunson; http://www.flickr.com/photos/blackdudemedia/2495758057/
Licensed under Creative Commons Attribution
22. Dalvik - Writing Apps
• Apps run on Dalvik, which provides core framework APIs
• APIs are backed by system infrastructure in native code
– e.g. OpenGL, Binder IPC, media, etc.
• Popular tools are supported, and an Eclipse plugin is available
22
23. Dalvik - What Can You Do?
• Rich UIs
• Background services
• Shared components
• Tight integration with system events and UI
• ...but there are other sessions covering standard app dev in detail
23 Image by Jennifer Rensel; http://www.flickr.com/photos/cheesepicklescheese/419050330/
Licensed under Creative Commons Attribution
24. Dalvik - What Can’t You Do?
• Not much!
• Dalvik is the primary app platform --
the crossroads
• That does not necessarily mean it’s
right for your app, though
– Some apps need raw speed
– Some apps don’t need tight
integration
24 Image by Captain DJ; http://www.flickr.com/photos/darrinjonz/117406669/
Licensed under Creative Commons Attribution-Share Alike
29. Ajax - Overview
• Apps are broken up into convenient declarative layouts & code
• JavaScript code mutates the DOM to create UI effects
• Network access is available via XMLHttpRequest
• Recently, <canvas> allows JavaScript to do direct painting
29 Image by henrybloomfield; http://www.flickr.com/photos/henrybloomfield/2929756532/
Licensed under Creative Commons Attribution-No Derivative Works
30. Ajax on Android - Overview
• Android’s Browser is based on WebKit + SquirrelFish
• WebKit v528.5, equivalent to Safari 4 beta
– Reports as 3.1.2 in the user-agent string -- oops!
• Includes Gears 0.5.17.0 (including location)
• Includes support for the <canvas> tag
30
31. Ajax - What Can You Do?
• Old sk00l
– You can, of course, just build static web page apps
31 Image by Jason Rogers; http://www.flickr.com/photos/restlessglobetrotter/434218278/
Licensed under Creative Commons Attribution
32. Ajax - What Can You Do?
• But you can also build dynamic UIs, via DOM or <canvas>
• You can fetch & store data on your origin server
• With HTML5, you can also:
– Access location
– Run code outside the main thread
– Store data & pages locally
32
33. Ajax on Android - What Can’t You Do?
• Android doesn’t currently support HTML5, but does have Gears
• Background processing
– Code only runs when Browser is open and your page is loaded
• Access system & framework APIs [1]
[1] - Hold that thought, though.
33
35. Ajax - Examples
• Google Reader for mobile
• Gmail (web version)
• Many mobile web apps (of various fruit flavors)
35
36. Ajax - Future
• HTML5 will keep getting better
• Android will continue to include a world-class browser
– Gears today, HTML5 in the future
– Plans to upgrade to an even faster JSVM
• Who knows what else? I hear the future is a crazy place
36
37. Ajax - What Else Can You Do?
• Augmented Ajax
Java Java Java
Object Object Object
addJavaScriptInterface
Dalvik
WebView
37 Image by Luis Villa del Campo; http://www.flickr.com/photos/maguisso/271623867/
Licensed under Creative Commons Attribution
38. Augmented Ajax
• Inject functionality into JavaScript
38 Image by Andres Lueda Lopez; http://www.flickr.com/photos/andresrueda/2983149263/
Licensed under Creative Commons Attribution-No Derivative Works
40. Native - Overview
• Launched as a Dalvik application
• Loads a dynamic library (.so, ARM ELF, linked against Bionic)
• Makes calls into native code via JNI for heavy lifting
• .so files are created using the NDK complement to the SDK
• Work-in-progress NDK added to donut branch in git
40 Image by Thomas; http://www.flickr.com/photos/tomsaint/2678120228/
Licensed under Creative Commons Attribution
41. Native - What Can You Do?
• Physics simulations
• Efficient/fast loading of large-ish data files
• Speed-intensive lookups, such as for IMEs
• Custom VMs (long live obsolete games!)
• Unsupported things...
– Technically, other libraries are present, but have no guarantees
– Use them, and you deserve the Market user ratings you will get
when your app breaks
41
42. Native - What Can’t You Do?
• Current set of APIs is limited to libm and libc
• More will be added over time
• h@x0r the system -- sandboxing still applies
42
45. Native - Future
• Add additional libraries, but which? TBD.
– Let us know!
• No plans to make native code a fully-independent app model
– ...but there’s no reason to prevent developers from doing stuff
45
48. Some Data
Rendering Percent
Modality Total Time Rendering
Dalvik 614 16 2.6%
JavaScript 936 303 32.4%
Native 127 15 11.2%
48
49. Some Data
Rendering Percent
Modality Total Time Rendering
Dalvik 614 16 2.6%
JavaScript 936 303 32.4%
Native 127 15 11.2%
49
50. Some Data
Rendering Percent
Modality Total Time Rendering
Dalvik 614 16 2.6%
JavaScript 936 303 32.4%
Native 127 15 11.2%
50
51. What’s that mean?
• Dalvik is very competitive with other pure-interpreted VMs
• Dalvik, as a front-end for native code, usually beats JavaScript
– But clearly, there are use cases where that doesn’t matter
• And of course, custom native code will always win the speed test
51
52. Groundbreaking, Dynamo-Interactive Flowchart
Do you Why not?
have an Is it You should
Java
existing web Ajax? go make it C/C++
site? Ajaxy.
JavaScript
Do Haven’t we been
you need REST here before?
a web Service Hey,
site? what
Ugh, I languages do
you even
know?
have a
Does
your app
need to be really
Seriously,
now. Really
headache.
Okay
fine,
fast? REALLY Native
fast?
Augmented
Ajax
Hmm,
hold on. Do
Ajax you need tight Yeah, that’s
Dalvik
integration with what I
system? thought.
52
53. The Bottom Line
• There’s more than one way to do it
• We aren’t out to shove a paradigm down your throat (ouch?)
53 Image by i_yudai; http://www.flickr.com/photos/y_i/2330044065/
Licensed under Creative Commons Attribution
54. The Bottom Line
• The “centroid” of your app can be anywhere
– Dalvik apps can embed the web; web apps can call to Dalvik
– Apps can include native code pieces for better performance
• Understand your app, & decide based on your app’s needs
– If you’re doing lots of drawing, use Dalvik
– If you have a web presence already, use (Dalvik-enhanced?) Ajax
– If you have large, slow algorithms, use Dalvik + native code
– Your skills do mean something: go with what you know!
54
55. And That’s Pretty Much The Long and Short of It
Source available at: http://code.google.com/p/hdict
55 Image by Alexander Henning Drachmann; http://www.flickr.com/photos/drachmann/327122302/
Licensed under Creative Commons Attribution-Share Alike