SlideShare uma empresa Scribd logo
1 de 12
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

Mais conteúdo relacionado

Mais procurados

Developing with versioning and CI/CD
Developing with versioning and CI/CDDeveloping with versioning and CI/CD
Developing with versioning and CI/CDMatteo Di Carlo
 
Continuous Integration using Buildbot
Continuous Integration using Buildbot Continuous Integration using Buildbot
Continuous Integration using Buildbot Akshay Sundaran
 
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014
Continuos integration with Jenkins for iOS | SuperSpeakers@CodeCamp Iasi, 2014Endava
 
Игорь Бондаренко (Neklo) - Организация процесса разработки модулей для Magento
Игорь Бондаренко (Neklo) - Организация процесса разработки модулей для MagentoИгорь Бондаренко (Neklo) - Организация процесса разработки модулей для Magento
Игорь Бондаренко (Neklo) - Организация процесса разработки модулей для Magentomeet_magento
 
Porting golang development environment developed with golang
Porting golang development environment developed with golangPorting golang development environment developed with golang
Porting golang development environment developed with golangSeongJae Park
 
Continuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVzContinuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVzDenis Ristic
 
Gitlab meets Kubernetes
Gitlab meets KubernetesGitlab meets Kubernetes
Gitlab meets Kubernetesinovex GmbH
 
TDD with Python and App Engine
TDD with Python and App EngineTDD with Python and App Engine
TDD with Python and App EngineRicardo Bánffy
 
Refine your ci:cd pipeline with automated test
Refine your ci:cd pipeline with automated testRefine your ci:cd pipeline with automated test
Refine your ci:cd pipeline with automated testMalang QA Community
 
Introduction to git flow
Introduction to git flowIntroduction to git flow
Introduction to git flowKnoldus Inc.
 
Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên
Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc KiênTech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc Kiên
Tech Talk #5 : CI/CD FOR MOBILE DEVELOPMENT - Đinh Ngọc KiênNexus FrontierTech
 
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)Pedro Moreira da Silva
 
C language in our world 2016
C language in our world 2016C language in our world 2016
C language in our world 2016Juraj Michálek
 
Magento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HRMagento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HRDenis Ristic
 
The Evolving Role of Build Engineering in Managing Open Source
The Evolving Role of Build Engineering in Managing Open SourceThe Evolving Role of Build Engineering in Managing Open Source
The Evolving Role of Build Engineering in Managing Open SourceDevOps.com
 

Mais procurados (20)

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

Destaque

Droidcon 2013 Multidevice Nightmare
Droidcon 2013 Multidevice NightmareDroidcon 2013 Multidevice Nightmare
Droidcon 2013 Multidevice NightmareHasan Hosgel
 
Customer's Choice @ Moosecon 2013
Customer's Choice @ Moosecon 2013Customer's Choice @ Moosecon 2013
Customer's Choice @ Moosecon 2013Hasan Hosgel
 
Android Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice NightmareAndroid Developer Days 2013 - MultiDevice Nightmare
Android Developer Days 2013 - MultiDevice NightmareHasan Hosgel
 
MTC 2013 Berlin - Best Practices for Multi Devices
MTC 2013 Berlin - Best Practices for Multi DevicesMTC 2013 Berlin - Best Practices for Multi Devices
MTC 2013 Berlin - Best Practices for Multi DevicesHasan Hosgel
 
Droidcon it 2014 best practices to develop for different android device class...
Droidcon it 2014 best practices to develop for different android device class...Droidcon it 2014 best practices to develop for different android device class...
Droidcon it 2014 best practices to develop for different android device class...Hasan Hosgel
 
Coexisting of Android & Robots
Coexisting of Android & RobotsCoexisting of Android & Robots
Coexisting of Android & RobotsHasan Hosgel
 

Destaque (6)

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

Semelhante a Continuously Break The Android

Continuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applicationsContinuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applicationsSunil Dalal
 
Agile a to z chapter 4 feedback loop
Agile a to z chapter 4 feedback loopAgile a to z chapter 4 feedback loop
Agile a to z chapter 4 feedback loopWajih Aslam
 
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOpsAgile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOpsAgile ME
 
Agile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous IntegrationAgile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous IntegrationQuan Truong Anh
 
Agile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous IntegrationAgile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous IntegrationTung Nguyen Thanh
 
SCALABLE CI CD DEVOPS
SCALABLE CI CD DEVOPSSCALABLE CI CD DEVOPS
SCALABLE CI CD DEVOPSG R VISHAL
 
How do we test nodejs apps?
How do we test nodejs apps?How do we test nodejs apps?
How do we test nodejs apps?Michal Juhas
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applicationsSunil Dalal
 
CI/CD on Google Cloud Platform
CI/CD on Google Cloud PlatformCI/CD on Google Cloud Platform
CI/CD on Google Cloud PlatformDevOps Indonesia
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Joris De Winne
 
Creating a reasonable project boilerplate
Creating a reasonable project boilerplateCreating a reasonable project boilerplate
Creating a reasonable project boilerplateStanislav Petrov
 
Delivering Best Apps with Efficiency
Delivering Best Apps with EfficiencyDelivering Best Apps with Efficiency
Delivering Best Apps with EfficiencyWSO2
 
Software Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery ApproachSoftware Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery ApproachGiovanni Toraldo
 
Software Factory - Overview
Software Factory - OverviewSoftware Factory - Overview
Software Factory - Overviewslides_teltools
 
Continuous integration CloudParty 21 may 2014 - Milan
Continuous integration CloudParty 21 may 2014 - MilanContinuous integration CloudParty 21 may 2014 - Milan
Continuous integration CloudParty 21 may 2014 - MilanSimone Pasquini
 
Continous Integration: A Case Study
Continous Integration: A Case StudyContinous Integration: A Case Study
Continous Integration: A Case StudyTalentica Software
 

Semelhante a Continuously Break The Android (20)

Continuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applicationsContinuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applications
 
Continuous integration (eng)
Continuous integration (eng)Continuous integration (eng)
Continuous integration (eng)
 
Agile a to z chapter 4 feedback loop
Agile a to z chapter 4 feedback loopAgile a to z chapter 4 feedback loop
Agile a to z chapter 4 feedback loop
 
Build Automation in Android
Build Automation in AndroidBuild Automation in Android
Build Automation in Android
 
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOpsAgile A to Z Chapter 4 Feedback Loop Part 2 DevOps
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 IntegrationAgile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous Integration
 
Agile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous IntegrationAgile .NET Development with BDD and Continuous Integration
Agile .NET Development with BDD and Continuous Integration
 
SCALABLE CI CD DEVOPS
SCALABLE CI CD DEVOPSSCALABLE CI CD DEVOPS
SCALABLE CI CD DEVOPS
 
How do we test nodejs apps?
How do we test nodejs apps?How do we test nodejs apps?
How do we test nodejs apps?
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
7 maven vsgradle
7 maven vsgradle7 maven vsgradle
7 maven vsgradle
 
CI/CD on Google Cloud Platform
CI/CD on Google Cloud PlatformCI/CD on Google Cloud Platform
CI/CD on Google Cloud Platform
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013
 
Creating a reasonable project boilerplate
Creating a reasonable project boilerplateCreating a reasonable project boilerplate
Creating a reasonable project boilerplate
 
Vijay_Teekinavar_Kallesh
Vijay_Teekinavar_KalleshVijay_Teekinavar_Kallesh
Vijay_Teekinavar_Kallesh
 
Delivering Best Apps with Efficiency
Delivering Best Apps with EfficiencyDelivering Best Apps with Efficiency
Delivering Best Apps with Efficiency
 
Software Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery ApproachSoftware Delivery in 2016 - A Continuous Delivery Approach
Software Delivery in 2016 - A Continuous Delivery Approach
 
Software Factory - Overview
Software Factory - OverviewSoftware Factory - Overview
Software Factory - Overview
 
Continuous integration CloudParty 21 may 2014 - Milan
Continuous integration CloudParty 21 may 2014 - MilanContinuous integration CloudParty 21 may 2014 - Milan
Continuous integration CloudParty 21 may 2014 - Milan
 
Continous Integration: A Case Study
Continous Integration: A Case StudyContinous Integration: A Case Study
Continous Integration: A Case Study
 

Mais de Hasan Hosgel

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

Mais de Hasan Hosgel (7)

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

Último

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
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
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 

Último (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
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...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

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