SlideShare a Scribd company logo
www.immobilienscout24.de




Continuously Break The
Android
GDG DevFest Berlin | 13.10.2011 | Hasan Hosgel
About me
Continuous Integration


In software engineering, continuous integration (CI) implements
continuous processes of applying quality control — small pieces of
effort, applied frequently. Continuous integration aims to improve the
quality of software, and to reduce the time taken to deliver it, by
replacing the traditional practice of applying quality control after
completing all development.
(source: http://wikipedia.org)




                                 Continuously Break The Android | GDG DevFest Berlin | Hasan Hosgel
Reasons for Android


●   faster iterations/ early response
●   Error free compiling sourcecode on the SCM HEAD
●   automated tests:
       Unit
       Integration
       SmokeTest
       Monkeyrunner
●   using different hardware combinations
       OS levels
       density, resolution
●   automated quality checks:
       Lint, Findbugs, Checkstyle, PMD
       Code coverage


                            Continuously Break The Android | GDG DevFest Berlin | Hasan Hosgel
CI Server Jenkins


●   Needed software
        Java development kit
        Android development kit
        Jenkins
●   If you are using Ubuntu use a 32-bit installation and install Xvfb
    (virtual frame buffer) for running the emulator
●   For ant development  Ant
●   For Maven development  Maven 3
●   Install Android emulator Jenkins plugin
●   SCM plugin




                              Continuously Break The Android | GDG DevFest Berlin | Hasan Hosgel
Using ant as buildingsystem


●   You don‘t have an ant file?
       android update project –p <path of the application project>
       android update test-project -m <path of the application project>
       -p <path of the test project>
●   Create a free-style software project in Jenkins
●   Configure SCM in Jenkins
●   Configure your emulator (existing or create automatically)
●   Add ant build step

    missing dependency mamagement

    official support



                             Continuously Break The Android | GDG DevFest Berlin | Hasan Hosgel
Using maven as buildingsystem


●   You don‘t have a maven project?
       http://www.androidbootstrap.com/
●   Create a maven project in Jenkins
●   Configure SCM in Jenkins
●   Configure your emulator (existing or create automatically)
●   Add maven commands




    missing official support, is a XML-hell & complicated

    dependency management & multi device support (install, run &
    test)


                             Continuously Break The Android | GDG DevFest Berlin | Hasan Hosgel
Advanced & Best Practices


●   Multi configuration (parameterised builds, matrix)
       Different screen sizes
       Different OS versions
       Different packages, test size (annotations)
●   Build chain (automatically) example
       Compile
       main OS version: unit- & integration test (package)*, static code
       analyse & coverage
       Multi configuration: unit- & integration test (package)*
       package & sign
       Release to SCM (not play store)[probably you want it manually]



* Using large test suites

                             Continuously Break The Android | GDG DevFest Berlin | Hasan Hosgel
What’s next?
Gradle

●   Gradle is an experimental new Android SDK build system
        http://tools.android.com/tech-docs/new-build-system
●   Dependency management
●   Make it easy to create several variants of an application, multi apk
    distribution or different flavours of applications
●   Filtering of resources & manifest (Maps key, signing, etc.)
●   Actual version 0.2



    a new build system

    not finished yet (if you have knowledge, help the project!) 



                              Continuously Break The Android | GDG DevFest Berlin | Hasan Hosgel
Conclusion


  Start continuous integration with a CI server

  Write tests and run them automated

  Continuously improve your work result & create amazing apps




   Just do it! 




                                 Continuously Break The Android | GDG DevFest Berlin | Hasan Hosgel
Dive Into Topic & Sources


●   slideshare
        http://www.slideshare.net/hosgel/continuously-break-theandroid
●   Jenkins
        http://jenkins-ci.org/
●   Android Developer
        http://developer.android.com/
●   Maven Android plugin
        http://code.google.com/p/maven-android-plugin/
        http://www.androidbootstrap.com/
●   Gradle
        http://www.gradle.org/
        http://tools.android.com/tech-docs/new-build-system



                            Continuously Break The Android | GDG DevFest Berlin | Hasan Hosgel
http://karriere.immobilienscout24.de


We are searching for new
colleagues!
contact:
Immobilien Scout GmbH                  Hasan Hosgel
Andreasstraße 10                       Twitter alosdev
10243 Berlin                           Github alosdev

More Related Content

PPTX
Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...
PDF
Releaseflow: a healthy build and deploy process
PDF
Continuous integration with docker, buildbot and git
PPTX
Testing With OutSystems
ODP
Buildbot
PDF
Buildbot: The Continuous Integration Python framework
PDF
Delivery at Scale
PDF
Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...
Automating Your Way to Greatness by Combining OutSystems CI/CD With the Power...
Releaseflow: a healthy build and deploy process
Continuous integration with docker, buildbot and git
Testing With OutSystems
Buildbot
Buildbot: The Continuous Integration Python framework
Delivery at Scale
Sprachsteuerung mit dem Google Assistant – Add a new User Interface to your P...

What's hot (20)

PDF
Annotation processing
PDF
Developing with versioning and CI/CD
PDF
Git branching
PPTX
Continuous Integration using Buildbot
PDF
Magento, beginning to end
PPTX
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
PPT
Игорь Бондаренко (Neklo) - Организация процесса разработки модулей для Magento
PDF
Porting golang development environment developed with golang
PDF
Continuous integration & Continuous Delivery @DeVz
PDF
Gitlab meets Kubernetes
PPTX
TDD with Python and App Engine
PDF
Refine your ci:cd pipeline with automated test
PDF
Introduction to git flow
PPT
Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên
PDF
C++ in our world
PDF
Git work flow
PDF
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
PDF
C language in our world 2016
PDF
Magento Continuous Integration & Continuous Delivery @MM17HR
PDF
The Evolving Role of Build Engineering in Managing Open Source
Annotation processing
Developing with versioning and CI/CD
Git branching
Continuous Integration using Buildbot
Magento, beginning to end
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
Игорь Бондаренко (Neklo) - Организация процесса разработки модулей для Magento
Porting golang development environment developed with golang
Continuous integration & Continuous Delivery @DeVz
Gitlab meets Kubernetes
TDD with Python and App Engine
Refine your ci:cd pipeline with automated test
Introduction to git flow
Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên
C++ in our world
Git work flow
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
C language in our world 2016
Magento Continuous Integration & Continuous Delivery @MM17HR
The Evolving Role of Build Engineering in Managing Open Source
Ad

Viewers also liked (6)

PPTX
Droidcon 2013 Multidevice Nightmare
PPTX
Customer's Choice @ Moosecon 2013
PPTX
Android Developer Days 2013 - MultiDevice Nightmare
PDF
MTC 2013 Berlin - Best Practices for Multi Devices
PPTX
Droidcon it 2014 best practices to develop for different android device class...
PDF
Coexisting of Android & Robots
Droidcon 2013 Multidevice Nightmare
Customer's Choice @ Moosecon 2013
Android Developer Days 2013 - MultiDevice Nightmare
MTC 2013 Berlin - Best Practices for Multi Devices
Droidcon it 2014 best practices to develop for different android device class...
Coexisting of Android & Robots
Ad

Similar to Continuously Break The Android (20)

PDF
Continuous integration and delivery for java based web applications
PDF
Continuous integration (eng)
PPTX
Agile a to z chapter 4 feedback loop
PPTX
Build Automation in Android
PDF
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
PPTX
Agile .NET Development with BDD and Continuous Integration
PPTX
Agile .NET Development with BDD and Continuous Integration
PPTX
SCALABLE CI CD DEVOPS
PPTX
How do we test nodejs apps?
PPTX
Continous integration and delivery for single page applications
PPTX
7 maven vsgradle
PDF
CI/CD on Google Cloud Platform
PDF
Seminar continuous delivery 19092013
PPTX
Creating a reasonable project boilerplate
DOC
Vijay_Teekinavar_Kallesh
PDF
Delivering Best Apps with Efficiency
PDF
Software Delivery in 2016 - A Continuous Delivery Approach
PPTX
Software Factory - Overview
PPTX
Continuous integration CloudParty 21 may 2014 - Milan
PPT
Continous Integration: A Case Study
Continuous integration and delivery for java based web applications
Continuous integration (eng)
Agile a to z chapter 4 feedback loop
Build Automation in Android
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous Integration
SCALABLE CI CD DEVOPS
How do we test nodejs apps?
Continous integration and delivery for single page applications
7 maven vsgradle
CI/CD on Google Cloud Platform
Seminar continuous delivery 19092013
Creating a reasonable project boilerplate
Vijay_Teekinavar_Kallesh
Delivering Best Apps with Efficiency
Software Delivery in 2016 - A Continuous Delivery Approach
Software Factory - Overview
Continuous integration CloudParty 21 may 2014 - Milan
Continous Integration: A Case Study

More from Hasan Hosgel (7)

PDF
DevFest Istanbul 2014 - Developing for the Big Screen - from Android TV to Ch...
PPT
Android Developer Days 2014 How second screen can enhance your app
PPTX
Mtc spring 2014 best practices to develop for different android device classi...
PPTX
Droidcon nl 2013 best practices to develop for different android device class...
PPTX
Android bootcamp 2013 Lists & Adapter
PDF
Customer&rsquo;s Choice @ GDG Android Berlin on January meetup
PDF
Mobile Development across Different Platforms @ Immobilienscout24
DevFest Istanbul 2014 - Developing for the Big Screen - from Android TV to Ch...
Android Developer Days 2014 How second screen can enhance your app
Mtc spring 2014 best practices to develop for different android device classi...
Droidcon nl 2013 best practices to develop for different android device class...
Android bootcamp 2013 Lists & Adapter
Customer&rsquo;s Choice @ GDG Android Berlin on January meetup
Mobile Development across Different Platforms @ Immobilienscout24

Recently uploaded (20)

PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
KodekX | Application Modernization Development
PPT
Teaching material agriculture food technology
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Modernizing your data center with Dell and AMD
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
A Presentation on Artificial Intelligence
Understanding_Digital_Forensics_Presentation.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Spectral efficient network and resource selection model in 5G networks
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
“AI and Expert System Decision Support & Business Intelligence Systems”
20250228 LYD VKU AI Blended-Learning.pptx
Machine learning based COVID-19 study performance prediction
KodekX | Application Modernization Development
Teaching material agriculture food technology
Review of recent advances in non-invasive hemoglobin estimation
Chapter 3 Spatial Domain Image Processing.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Modernizing your data center with Dell and AMD
Advanced methodologies resolving dimensionality complications for autism neur...
CIFDAQ's Market Insight: SEC Turns Pro Crypto
NewMind AI Monthly Chronicles - July 2025
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
A Presentation on Artificial Intelligence

Continuously Break The Android

  • 1. www.immobilienscout24.de Continuously Break The Android GDG DevFest Berlin | 13.10.2011 | Hasan Hosgel
  • 3. Continuous Integration In software engineering, continuous integration (CI) implements continuous processes of applying quality control — small pieces of effort, applied frequently. Continuous integration aims to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development. (source: http://wikipedia.org) Continuously Break The Android | GDG DevFest Berlin | Hasan Hosgel
  • 4. Reasons for Android ● faster iterations/ early response ● Error free compiling sourcecode on the SCM HEAD ● automated tests: Unit Integration SmokeTest Monkeyrunner ● using different hardware combinations OS levels density, resolution ● automated quality checks: Lint, Findbugs, Checkstyle, PMD Code coverage Continuously Break The Android | GDG DevFest Berlin | Hasan Hosgel
  • 5. CI Server Jenkins ● Needed software Java development kit Android development kit Jenkins ● If you are using Ubuntu use a 32-bit installation and install Xvfb (virtual frame buffer) for running the emulator ● For ant development  Ant ● For Maven development  Maven 3 ● Install Android emulator Jenkins plugin ● SCM plugin Continuously Break The Android | GDG DevFest Berlin | Hasan Hosgel
  • 6. Using ant as buildingsystem ● You don‘t have an ant file? android update project –p <path of the application project> android update test-project -m <path of the application project> -p <path of the test project> ● Create a free-style software project in Jenkins ● Configure SCM in Jenkins ● Configure your emulator (existing or create automatically) ● Add ant build step missing dependency mamagement official support Continuously Break The Android | GDG DevFest Berlin | Hasan Hosgel
  • 7. Using maven as buildingsystem ● You don‘t have a maven project? http://www.androidbootstrap.com/ ● Create a maven project in Jenkins ● Configure SCM in Jenkins ● Configure your emulator (existing or create automatically) ● Add maven commands missing official support, is a XML-hell & complicated dependency management & multi device support (install, run & test) Continuously Break The Android | GDG DevFest Berlin | Hasan Hosgel
  • 8. Advanced & Best Practices ● Multi configuration (parameterised builds, matrix) Different screen sizes Different OS versions Different packages, test size (annotations) ● Build chain (automatically) example Compile main OS version: unit- & integration test (package)*, static code analyse & coverage Multi configuration: unit- & integration test (package)* package & sign Release to SCM (not play store)[probably you want it manually] * Using large test suites Continuously Break The Android | GDG DevFest Berlin | Hasan Hosgel
  • 9. What’s next? Gradle ● Gradle is an experimental new Android SDK build system http://tools.android.com/tech-docs/new-build-system ● Dependency management ● Make it easy to create several variants of an application, multi apk distribution or different flavours of applications ● Filtering of resources & manifest (Maps key, signing, etc.) ● Actual version 0.2 a new build system not finished yet (if you have knowledge, help the project!)  Continuously Break The Android | GDG DevFest Berlin | Hasan Hosgel
  • 10. Conclusion Start continuous integration with a CI server Write tests and run them automated Continuously improve your work result & create amazing apps Just do it!  Continuously Break The Android | GDG DevFest Berlin | Hasan Hosgel
  • 11. Dive Into Topic & Sources ● slideshare http://www.slideshare.net/hosgel/continuously-break-theandroid ● Jenkins http://jenkins-ci.org/ ● Android Developer http://developer.android.com/ ● Maven Android plugin http://code.google.com/p/maven-android-plugin/ http://www.androidbootstrap.com/ ● Gradle http://www.gradle.org/ http://tools.android.com/tech-docs/new-build-system Continuously Break The Android | GDG DevFest Berlin | Hasan Hosgel
  • 12. http://karriere.immobilienscout24.de We are searching for new colleagues! contact: Immobilien Scout GmbH Hasan Hosgel Andreasstraße 10 Twitter alosdev 10243 Berlin Github alosdev