SlideShare uma empresa Scribd logo
1 de 63
Baixar para ler offline
Introduction to Android
        Christophe Beyls
   Jeudis du Libre - April 2012
About the speaker
● Developer living in Brussels.
● Uses various programming languages,
  mostly Java and C#.
● Likes coding, hacking devices, travelling,
  movies, music, (LOL)cats.

● Worked for:
Agenda

1. Introduction - Why Android?
2. History
3. System architecture and its free parts
4. The SDK
5. The building blocks of an Android
   app
6. Devices hacking and custom ROMs
7. Questions & Answers.
Why Android?
Why Android?
Why Android?
■ Open architecture.
■ Apps may be distributed outside the Google
  Play Store (Android Market) and installed on
  any device.
History
■ 2003: Android Inc.
  founded by Andy Rubin.
■ 2005: Purchase by Google.

■ January 2007: Apple announces
  the iPhone.
■ June 2007: iPhone released.
History
November 2007
Google creates the Open Handset Alliance
consortium with 34 founding members.

Manufacturers: HTC, LG, Sony, Motorola,
Samsung.
Semiconductors: Qualcomm, Intel, nVidia, ...
Operators: T-Mobile, Sprint, Telefónica...
Software: eBay, Google, Nuance, ...
History
November 2007: First beta SDK released.
History
December 2007: Early prototype unveiled.
History
February 2008: Apple releases the iPhone
SDK.
June 2008: Apple opens the App Store and
releases the iPhone 3G.
History
September 2008
Android 1.0 on HTC Dream (T-Mobile G1).
History
February 2009: Android 1.1 (bugfixes).
April 2009: Android 1.5 Cupcake
 (Widgets, virtual keyboard).
June 2009: 2 more Android phones released.
       HTC Magic              HTC Hero




September 2009: Android 1.6 Donut
(Text-to-speech, multiple screen resolutions).
History
November 2009: Android 2.0 Eclair
(HTML5, Contacts + Bluetooth APIs).
January 2010: Nexus One released
(first Google-branded phone).
Android 2.1 (bugfixes, live wallpapers).

April 2010: Apple iPad released.
May 2010: Android 2.2 FroYo
(speed, JIT compiler, push notifications, Adobe
Flash support, WiFi hotspot).
History
2Q10: Android outsells iOS devices worldwide.
History
December 2010: Android 2.3 Gingerbread
on Google Nexus S.
(Black interface, NFC, native SIP,
WebM support)
History
February 2011: Android 3.0 Honeycomb
on the first Android tablet: the Motorola Xoom.
■ New UI: Holo theme, Fragments, Action Bar
■ Full 2D hardware acceleration.
History
3Q11: Android market share doubles compared
to 3Q10 and becomes to most used mobile OS.
History
November 2011:
Android 4.0 Ice Cream Sandwich
on Google/Samsung Galaxy Nexus.

■ Unified OS for Smartphones
  and Tablets.
■ Faster, smoother
■ Improved browser
■ Roboto font
■ Face unlock.
System Architecture
System architecture - Bionic libc
■ Fast, optimized for ARM
■ Lightweight (200 ko), half the size of glibc
■ No C++ Exceptions
■ No Standard Template Library
■ New pthreads implementation
  [does not support pthread_cancel()]
■ Can be exploited directly through NDK
  (native development kit)

BSD licence
https://github.com/android/platform_bionic
System architecture - WebKit
■ Developed by KDE, Apple, Nokia, Google
  and others.
■ Android 2.2+ uses faster V8 javascript
  engine instead of JavascriptCore.
■ No differences between Android browser
  and webviews embedded in apps.
System architecture -
Media Framework
Based on OpenCORE and Stagefright (2.2+).
System architecture -
Media Framework - Base support
■ Audio codecs: AAC, MP3, AMR, PCM,
  MIDI, Ogg Vorbis, FLAC (3.1+)
■ Image codecs: JPEG, GIF, BMP, PNG,
  WebP (4.0+)
■ Video codecs: H.263, H.264, MPEG-4 SP,
  VP8 (2.3.3+)
■ Containers: 3GPP, MPEG-4,
  Matroska (.mkv) (4.0+)
■ Manufacturers may add more codecs.

  Italic = patent-free
System architecture - Runtime
■ Android uses only the Java language,
  not the Java platform.
■ Dalvik Virtual Machine developed by
  Google.
■ Uses minimal memory.
■ Java bytecode is converted to smaller
  Dalvik bytecode at build time (.dex files).
■ Uses Just-In-Time compilation since
  Android 2.2 for better performance.
■ Standard library is based on Apache
  Harmony open source implementation.
Android Open Source Project
(AOSP)
source.android.com
Android Open Source Project
(AOSP)
Almost... fully open:
■ Google publishes source code when they
  decide it.
■ No real interaction with Google teams.
■ Not everything is open source:
  ○ Proprietary binary drivers
  ○ Google Apps: Google Maps, Gmail, Google
    Contacts/Calendar/Bookmarks Sync, Google Talk,
    Play Store (Android Market), Youtube, Weather
    widget, Text-To-Speech, Voice Search.
The SDK
iPhone / iPad
■ Hardware: Mac (with latest Mac OS X)
■ IDE: XCode (free)
■ Language: Objective-C.

Windows Phone 7 / Windows 8
■ Hardware: PC with Microsoft Windows
■ IDE: Microsoft Visual Studio (free)
■ Language: C#, Visual Basic.
The SDK
Android
■ Hardware: Any x86
■ IDE: Eclipse, Netbeans, IntelliJ IDEA
■ Language: Java.
Installing the SDK
developer.android.com/sdk
Official SDK Tools
■   ADB (Android Debug Bridge)
■   ARM Emulator (based on QEMU)
■   DDMS (Dalvik Debug Monitor Server)
■   Proguard (Java optimizer & obfuscator)
■   ADT Plugin for Eclipse:
    ○   Project wizards
    ○   Java editor with code completion, refactoring, ...
    ○   Lint integration
    ○   Visual layout editor



+ NDK (Native Development Kit)
Official SDK Tools - ADT Plugin
Official SDK Tools - ADT Plugin
Official SDK Tools - ADT Plugin
Official SDK Tools - ADT Plugin
Resources
■ By language
■ By screen density
■ By screen orientation
■ By Android version
Official SDK Tools - ADT Plugin
User Interface




developer.android.com/design
Android apps: the building blocks
Activities: screens with a life cycle.
Android apps: the building blocks
Fragments: portions of screens with a life
cycle.
Android apps: the building blocks
■ Background services.

■ Intents: IPC mechanism between
  Activities and/or Services.
  Action + Data
  ○ Action: View, Edit, Dial, ..., custom actions
  ○ Data: URL scheme or any MIME type.

■ Everything in the system use intents
  and is interchangeable.
Android apps: the building blocks
Special apps:
■ Live wallpapers
■ Widgets
Diversity
Development challenges:

■ Write fast high-level code or use NDK

■ Support multiple devices types
    ○ Phones
    ○ Tablets
    ○ Google TVs

■   Support multiple Android versions.
Diversity - Android versions
Diversity - Android versions




                               99%
Diversity - Android versions
Use features of newer Android versions
while staying compatible with older runtimes:
Isolate special functionality in separate classes.

MyInterface implementation;

if (Build.VERSION.SDK_INT >=
     Build.VERSION_CODES.FROYO)
   implementation = new FroYoImplementation();
else
   implementation = new CompatibleImplementation();
The upgrade problem
Manufacturers provide custom user interfaces.




                  Sony Ericsson
  HTC Sense        Timescape      Samsung TouchWiz
The upgrade problem
■ Updating the custom user interface to a new
  Android version requires a lot of work.
■ Manufacturers focus on selling you their
  latest hardware, not providing support for
  older hardware.
■ On Android, upgrades usually depend on
  carriers. (The Proximus case)
■ Many manufacturers don't do OTA updates.
■ Average official support time:
  ○ 3 years for Apple
  ○ <= 2 years for most Android phones.
The upgrade solution:
Installing community ROMs
Why hack ?
■ Give choice to the user.
■ Remove bloatware.
■ Provide longer term support and upgrades.

Custom ROMs:
Complete firmware (OS, UI, base applications)
created by the community.
Hacking - Custom ROMs
Different kinds of custom ROMs:
■ Modified original vendor versions
■ Ported from another device (experimental)
■ Build from source (AOSP)

Hack challenges
■ Locked hardware (HTC S-ON).
■ Binary drivers:
  Radio (Wifi - Bluetooth - GPS), Graphics,
  NFC, sometimes accelerometers.
Hacking
Warning: voids warranty.

Successfully hacked:

HTC G1, HTC Magic, HTC Hero, HTC Desire,
HTC Legend, Dell Streak, Samsung Galaxy S,
Samsung Galaxy Gio, Samsung Galaxy Tab,
Acer Liquid, ZTE Blade, Motorola Xoom,
Sony Ericsson Xperia X10.
Hacking - The Bible
       forum.xda-developers.com
Hacking - Custom ROMs
  Cyanogenmod - www.cyanogenmod.com
Hacking - Custom ROMs
        MIUI - miuiandroid.com
Hacking basics
■ ROM                      Bootloader
                     IPL    SPL     Kernel

■ Recovery                 Recovery
                            Radio

Boot modes:                System
■ Normal OS
■ Recovery
■ SPL (Flash mode)           Data
Hacking basics

Custom ROM:
Zip file containing
■ system files
■ kernel
■ optionnally radio.

Can be installed easily
using a custom recovery.
Hacking basics - 1. Flash tools
FastBoot (Google, HTC, Sony Ericsson)

■ Android standard command line Flash Tool
■ Available in the SDK (Win, Mac, Linux)
■ Useful commands:

fastboot   oem unlock
fastboot   flash recovery recovery.img
fastboot   boot recovery.img
fastboot   erase data -w
Hacking basics - 1. Flash tools
        Samsung ODIN (Windows)
Hacking basics - 2. Root access
■ Root access allows to perform restricted
  operations like:
   ○ writing files on system partition
   ○ flashing a custom recovery directly from Android
     OS.


■ It requires:
   ○ Patching or replacing the kernel
   ○ - or -
   ○ Use phone-specific kernel exploits
     (mainly through ADB).
Hacking basics - 2. Root access
Recap: How to change your ROM
1. Go to a forum / wiki and learn the procedure
2. Use:
   a. fastboot
   b. the vendor flash tool
   c. a root hack
   to install a custom recovery on your phone.
3. Download a custom ROM as zip file and
   place it to your SD card/internal storage.
4. Reboot your phone in custom recovery and
   install the ROM. Reboot. Done.
Hacking basics - Custom recovery
ClockworkMod
recovery
Hacking basics - Custom recovery
Thank you for watching.
Questions?




Twitter: @BladeCoder
Web: digitalia.be

Mais conteúdo relacionado

Mais procurados

Android development
Android developmentAndroid development
Android development
Lope Emano
 

Mais procurados (20)

Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Flutter introduction
Flutter introductionFlutter introduction
Flutter introduction
 
C language in our world 2017
C language in our world 2017C language in our world 2017
C language in our world 2017
 
Headless Android (Wearable DevCon 2014)
Headless Android (Wearable DevCon 2014)Headless Android (Wearable DevCon 2014)
Headless Android (Wearable DevCon 2014)
 
Leveraging Android's Linux Heritage at ELC-E 2011
Leveraging Android's Linux Heritage at ELC-E 2011Leveraging Android's Linux Heritage at ELC-E 2011
Leveraging Android's Linux Heritage at ELC-E 2011
 
Android Things Latest News / Aug 25, 2017
Android Things Latest News / Aug 25, 2017Android Things Latest News / Aug 25, 2017
Android Things Latest News / Aug 25, 2017
 
Development of Mobile Applications
Development of Mobile ApplicationsDevelopment of Mobile Applications
Development of Mobile Applications
 
Bringing Tizen to a Raspberry Pi 2 Near You
Bringing Tizen to a Raspberry Pi 2 Near YouBringing Tizen to a Raspberry Pi 2 Near You
Bringing Tizen to a Raspberry Pi 2 Near You
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
Android Things Introduction
Android Things IntroductionAndroid Things Introduction
Android Things Introduction
 
Android development
Android developmentAndroid development
Android development
 
Flutter
Flutter Flutter
Flutter
 
Android Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part IAndroid Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part I
 
Embedded Android Workshop at Embedded Linux Conference Europe 2011
Embedded Android Workshop at Embedded Linux Conference Europe 2011Embedded Android Workshop at Embedded Linux Conference Europe 2011
Embedded Android Workshop at Embedded Linux Conference Europe 2011
 
Creating new Tizen profiles using the Yocto Project
Creating new Tizen profiles  using the Yocto ProjectCreating new Tizen profiles  using the Yocto Project
Creating new Tizen profiles using the Yocto Project
 
Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Pro...
Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Pro...Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Pro...
Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Pro...
 
Android ROM cooking: A practical Tutorial (DroidCon Torino 2014)
Android ROM cooking: A practical Tutorial (DroidCon Torino 2014)Android ROM cooking: A practical Tutorial (DroidCon Torino 2014)
Android ROM cooking: A practical Tutorial (DroidCon Torino 2014)
 
Android Things Internals
Android Things InternalsAndroid Things Internals
Android Things Internals
 
Flutter intro
Flutter introFlutter intro
Flutter intro
 

Destaque

Gbi 130219083032-phpapp02
Gbi 130219083032-phpapp02Gbi 130219083032-phpapp02
Gbi 130219083032-phpapp02
kurt6008
 
Gestion basica de la informacion
Gestion basica de la informacionGestion basica de la informacion
Gestion basica de la informacion
UNIMINUTO
 
Beyond company profile feb 2013 eng
Beyond company profile  feb 2013 engBeyond company profile  feb 2013 eng
Beyond company profile feb 2013 eng
Husna1965
 
краткая биография всемирно известных актеров великобритании
краткая биография всемирно известных актеров великобританиикраткая биография всемирно известных актеров великобритании
краткая биография всемирно известных актеров великобритании
Алексей Галахов
 
Agama tokoh istiqomah
Agama tokoh istiqomahAgama tokoh istiqomah
Agama tokoh istiqomah
Anissa Nazda
 
Reflection Resource from the 2013 National Service Learning Conference
Reflection Resource from the 2013 National Service Learning ConferenceReflection Resource from the 2013 National Service Learning Conference
Reflection Resource from the 2013 National Service Learning Conference
Clement Coulston
 
Adaptive missile-guidance-using-gps
Adaptive missile-guidance-using-gpsAdaptive missile-guidance-using-gps
Adaptive missile-guidance-using-gps
Vinod Kumar
 

Destaque (18)

Gbi 130219083032-phpapp02
Gbi 130219083032-phpapp02Gbi 130219083032-phpapp02
Gbi 130219083032-phpapp02
 
Anisa wahyuni
Anisa wahyuniAnisa wahyuni
Anisa wahyuni
 
Professional Development Opportunity on Google Drive
Professional Development Opportunity on Google DriveProfessional Development Opportunity on Google Drive
Professional Development Opportunity on Google Drive
 
Gestion basica de la informacion
Gestion basica de la informacionGestion basica de la informacion
Gestion basica de la informacion
 
Beyond company profile feb 2013 eng
Beyond company profile  feb 2013 engBeyond company profile  feb 2013 eng
Beyond company profile feb 2013 eng
 
Android Support Library: Using ActionBarCompat
Android Support Library: Using ActionBarCompatAndroid Support Library: Using ActionBarCompat
Android Support Library: Using ActionBarCompat
 
краткая биография всемирно известных актеров великобритании
краткая биография всемирно известных актеров великобританиикраткая биография всемирно известных актеров великобритании
краткая биография всемирно известных актеров великобритании
 
Bai tap lon xac xuat thong ke
Bai tap lon xac xuat thong keBai tap lon xac xuat thong ke
Bai tap lon xac xuat thong ke
 
Search Tips
Search TipsSearch Tips
Search Tips
 
Agama tokoh istiqomah
Agama tokoh istiqomahAgama tokoh istiqomah
Agama tokoh istiqomah
 
Global business
Global businessGlobal business
Global business
 
You can sell presentation
You can sell presentationYou can sell presentation
You can sell presentation
 
gerak melingkar dengan laju konstan
gerak melingkar dengan laju konstangerak melingkar dengan laju konstan
gerak melingkar dengan laju konstan
 
Reflection Resource from the 2013 National Service Learning Conference
Reflection Resource from the 2013 National Service Learning ConferenceReflection Resource from the 2013 National Service Learning Conference
Reflection Resource from the 2013 National Service Learning Conference
 
Perfetti’s distribution
Perfetti’s distributionPerfetti’s distribution
Perfetti’s distribution
 
Buzz marketing by sandip
Buzz marketing by sandipBuzz marketing by sandip
Buzz marketing by sandip
 
Routing
RoutingRouting
Routing
 
Adaptive missile-guidance-using-gps
Adaptive missile-guidance-using-gpsAdaptive missile-guidance-using-gps
Adaptive missile-guidance-using-gps
 

Semelhante a Introduction to Android (Jeudis du libre)

Android and Android phones
Android and Android phonesAndroid and Android phones
Android and Android phones
christinejoy12
 
Embedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IVEmbedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IV
Opersys inc.
 
Embedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon VEmbedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon V
Opersys inc.
 
Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014
Opersys inc.
 
Embedded Android Workshop at Embedded World 2014
Embedded Android Workshop at Embedded World 2014Embedded Android Workshop at Embedded World 2014
Embedded Android Workshop at Embedded World 2014
Opersys inc.
 
Vijay android ppt
Vijay android pptVijay android ppt
Vijay android ppt
vijaymashre
 
Embedded Android Workshop at AnDevCon VI
Embedded Android Workshop at AnDevCon VIEmbedded Android Workshop at AnDevCon VI
Embedded Android Workshop at AnDevCon VI
Opersys inc.
 

Semelhante a Introduction to Android (Jeudis du libre) (20)

Android Seminar Presentation [March 2019]
Android Seminar Presentation [March 2019]Android Seminar Presentation [March 2019]
Android Seminar Presentation [March 2019]
 
Android beyond the smartphone
Android beyond the smartphoneAndroid beyond the smartphone
Android beyond the smartphone
 
Android and Android phones
Android and Android phonesAndroid and Android phones
Android and Android phones
 
Android introduction
Android introductionAndroid introduction
Android introduction
 
Embedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC EuropeEmbedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC Europe
 
Embedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IVEmbedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IV
 
Android (Types, Feature,Application etc..)
Android (Types, Feature,Application etc..)Android (Types, Feature,Application etc..)
Android (Types, Feature,Application etc..)
 
Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013
 
Embedded Android Workshop at Embedded World Conference 2013
Embedded Android Workshop at Embedded World Conference 2013Embedded Android Workshop at Embedded World Conference 2013
Embedded Android Workshop at Embedded World Conference 2013
 
Android presantation
Android presantationAndroid presantation
Android presantation
 
Andoid Basics
Andoid BasicsAndoid Basics
Andoid Basics
 
Embedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon VEmbedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon V
 
Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014
 
PRESENTATION ON ANDROID
PRESENTATION ON ANDROIDPRESENTATION ON ANDROID
PRESENTATION ON ANDROID
 
Embedded Android Workshop at Embedded World 2014
Embedded Android Workshop at Embedded World 2014Embedded Android Workshop at Embedded World 2014
Embedded Android Workshop at Embedded World 2014
 
Android technology
Android technology Android technology
Android technology
 
Android
AndroidAndroid
Android
 
Vijay android ppt
Vijay android pptVijay android ppt
Vijay android ppt
 
Embedded Android Workshop at AnDevCon VI
Embedded Android Workshop at AnDevCon VIEmbedded Android Workshop at AnDevCon VI
Embedded Android Workshop at AnDevCon VI
 
Androids
AndroidsAndroids
Androids
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+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...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
+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...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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
 
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
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
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...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
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, ...
 
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
 
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...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
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
 
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
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
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
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 

Introduction to Android (Jeudis du libre)

  • 1. Introduction to Android Christophe Beyls Jeudis du Libre - April 2012
  • 2. About the speaker ● Developer living in Brussels. ● Uses various programming languages, mostly Java and C#. ● Likes coding, hacking devices, travelling, movies, music, (LOL)cats. ● Worked for:
  • 3. Agenda 1. Introduction - Why Android? 2. History 3. System architecture and its free parts 4. The SDK 5. The building blocks of an Android app 6. Devices hacking and custom ROMs 7. Questions & Answers.
  • 6. Why Android? ■ Open architecture. ■ Apps may be distributed outside the Google Play Store (Android Market) and installed on any device.
  • 7. History ■ 2003: Android Inc. founded by Andy Rubin. ■ 2005: Purchase by Google. ■ January 2007: Apple announces the iPhone. ■ June 2007: iPhone released.
  • 8. History November 2007 Google creates the Open Handset Alliance consortium with 34 founding members. Manufacturers: HTC, LG, Sony, Motorola, Samsung. Semiconductors: Qualcomm, Intel, nVidia, ... Operators: T-Mobile, Sprint, Telefónica... Software: eBay, Google, Nuance, ...
  • 9. History November 2007: First beta SDK released.
  • 10. History December 2007: Early prototype unveiled.
  • 11. History February 2008: Apple releases the iPhone SDK. June 2008: Apple opens the App Store and releases the iPhone 3G.
  • 12. History September 2008 Android 1.0 on HTC Dream (T-Mobile G1).
  • 13. History February 2009: Android 1.1 (bugfixes). April 2009: Android 1.5 Cupcake (Widgets, virtual keyboard). June 2009: 2 more Android phones released. HTC Magic HTC Hero September 2009: Android 1.6 Donut (Text-to-speech, multiple screen resolutions).
  • 14. History November 2009: Android 2.0 Eclair (HTML5, Contacts + Bluetooth APIs). January 2010: Nexus One released (first Google-branded phone). Android 2.1 (bugfixes, live wallpapers). April 2010: Apple iPad released. May 2010: Android 2.2 FroYo (speed, JIT compiler, push notifications, Adobe Flash support, WiFi hotspot).
  • 15. History 2Q10: Android outsells iOS devices worldwide.
  • 16. History December 2010: Android 2.3 Gingerbread on Google Nexus S. (Black interface, NFC, native SIP, WebM support)
  • 17. History February 2011: Android 3.0 Honeycomb on the first Android tablet: the Motorola Xoom. ■ New UI: Holo theme, Fragments, Action Bar ■ Full 2D hardware acceleration.
  • 18. History 3Q11: Android market share doubles compared to 3Q10 and becomes to most used mobile OS.
  • 19. History November 2011: Android 4.0 Ice Cream Sandwich on Google/Samsung Galaxy Nexus. ■ Unified OS for Smartphones and Tablets. ■ Faster, smoother ■ Improved browser ■ Roboto font ■ Face unlock.
  • 21. System architecture - Bionic libc ■ Fast, optimized for ARM ■ Lightweight (200 ko), half the size of glibc ■ No C++ Exceptions ■ No Standard Template Library ■ New pthreads implementation [does not support pthread_cancel()] ■ Can be exploited directly through NDK (native development kit) BSD licence https://github.com/android/platform_bionic
  • 22. System architecture - WebKit ■ Developed by KDE, Apple, Nokia, Google and others. ■ Android 2.2+ uses faster V8 javascript engine instead of JavascriptCore. ■ No differences between Android browser and webviews embedded in apps.
  • 23. System architecture - Media Framework Based on OpenCORE and Stagefright (2.2+).
  • 24. System architecture - Media Framework - Base support ■ Audio codecs: AAC, MP3, AMR, PCM, MIDI, Ogg Vorbis, FLAC (3.1+) ■ Image codecs: JPEG, GIF, BMP, PNG, WebP (4.0+) ■ Video codecs: H.263, H.264, MPEG-4 SP, VP8 (2.3.3+) ■ Containers: 3GPP, MPEG-4, Matroska (.mkv) (4.0+) ■ Manufacturers may add more codecs. Italic = patent-free
  • 25. System architecture - Runtime ■ Android uses only the Java language, not the Java platform. ■ Dalvik Virtual Machine developed by Google. ■ Uses minimal memory. ■ Java bytecode is converted to smaller Dalvik bytecode at build time (.dex files). ■ Uses Just-In-Time compilation since Android 2.2 for better performance. ■ Standard library is based on Apache Harmony open source implementation.
  • 26. Android Open Source Project (AOSP) source.android.com
  • 27. Android Open Source Project (AOSP) Almost... fully open: ■ Google publishes source code when they decide it. ■ No real interaction with Google teams. ■ Not everything is open source: ○ Proprietary binary drivers ○ Google Apps: Google Maps, Gmail, Google Contacts/Calendar/Bookmarks Sync, Google Talk, Play Store (Android Market), Youtube, Weather widget, Text-To-Speech, Voice Search.
  • 28. The SDK iPhone / iPad ■ Hardware: Mac (with latest Mac OS X) ■ IDE: XCode (free) ■ Language: Objective-C. Windows Phone 7 / Windows 8 ■ Hardware: PC with Microsoft Windows ■ IDE: Microsoft Visual Studio (free) ■ Language: C#, Visual Basic.
  • 29. The SDK Android ■ Hardware: Any x86 ■ IDE: Eclipse, Netbeans, IntelliJ IDEA ■ Language: Java.
  • 31. Official SDK Tools ■ ADB (Android Debug Bridge) ■ ARM Emulator (based on QEMU) ■ DDMS (Dalvik Debug Monitor Server) ■ Proguard (Java optimizer & obfuscator) ■ ADT Plugin for Eclipse: ○ Project wizards ○ Java editor with code completion, refactoring, ... ○ Lint integration ○ Visual layout editor + NDK (Native Development Kit)
  • 32. Official SDK Tools - ADT Plugin
  • 33. Official SDK Tools - ADT Plugin
  • 34. Official SDK Tools - ADT Plugin
  • 35. Official SDK Tools - ADT Plugin Resources ■ By language ■ By screen density ■ By screen orientation ■ By Android version
  • 36. Official SDK Tools - ADT Plugin
  • 38. Android apps: the building blocks Activities: screens with a life cycle.
  • 39. Android apps: the building blocks Fragments: portions of screens with a life cycle.
  • 40. Android apps: the building blocks ■ Background services. ■ Intents: IPC mechanism between Activities and/or Services. Action + Data ○ Action: View, Edit, Dial, ..., custom actions ○ Data: URL scheme or any MIME type. ■ Everything in the system use intents and is interchangeable.
  • 41. Android apps: the building blocks Special apps: ■ Live wallpapers ■ Widgets
  • 42. Diversity Development challenges: ■ Write fast high-level code or use NDK ■ Support multiple devices types ○ Phones ○ Tablets ○ Google TVs ■ Support multiple Android versions.
  • 44. Diversity - Android versions 99%
  • 45. Diversity - Android versions Use features of newer Android versions while staying compatible with older runtimes: Isolate special functionality in separate classes. MyInterface implementation; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO) implementation = new FroYoImplementation(); else implementation = new CompatibleImplementation();
  • 46. The upgrade problem Manufacturers provide custom user interfaces. Sony Ericsson HTC Sense Timescape Samsung TouchWiz
  • 47. The upgrade problem ■ Updating the custom user interface to a new Android version requires a lot of work. ■ Manufacturers focus on selling you their latest hardware, not providing support for older hardware. ■ On Android, upgrades usually depend on carriers. (The Proximus case) ■ Many manufacturers don't do OTA updates. ■ Average official support time: ○ 3 years for Apple ○ <= 2 years for most Android phones.
  • 48. The upgrade solution: Installing community ROMs Why hack ? ■ Give choice to the user. ■ Remove bloatware. ■ Provide longer term support and upgrades. Custom ROMs: Complete firmware (OS, UI, base applications) created by the community.
  • 49. Hacking - Custom ROMs Different kinds of custom ROMs: ■ Modified original vendor versions ■ Ported from another device (experimental) ■ Build from source (AOSP) Hack challenges ■ Locked hardware (HTC S-ON). ■ Binary drivers: Radio (Wifi - Bluetooth - GPS), Graphics, NFC, sometimes accelerometers.
  • 50. Hacking Warning: voids warranty. Successfully hacked: HTC G1, HTC Magic, HTC Hero, HTC Desire, HTC Legend, Dell Streak, Samsung Galaxy S, Samsung Galaxy Gio, Samsung Galaxy Tab, Acer Liquid, ZTE Blade, Motorola Xoom, Sony Ericsson Xperia X10.
  • 51. Hacking - The Bible forum.xda-developers.com
  • 52. Hacking - Custom ROMs Cyanogenmod - www.cyanogenmod.com
  • 53. Hacking - Custom ROMs MIUI - miuiandroid.com
  • 54. Hacking basics ■ ROM Bootloader IPL SPL Kernel ■ Recovery Recovery Radio Boot modes: System ■ Normal OS ■ Recovery ■ SPL (Flash mode) Data
  • 55. Hacking basics Custom ROM: Zip file containing ■ system files ■ kernel ■ optionnally radio. Can be installed easily using a custom recovery.
  • 56. Hacking basics - 1. Flash tools FastBoot (Google, HTC, Sony Ericsson) ■ Android standard command line Flash Tool ■ Available in the SDK (Win, Mac, Linux) ■ Useful commands: fastboot oem unlock fastboot flash recovery recovery.img fastboot boot recovery.img fastboot erase data -w
  • 57. Hacking basics - 1. Flash tools Samsung ODIN (Windows)
  • 58. Hacking basics - 2. Root access ■ Root access allows to perform restricted operations like: ○ writing files on system partition ○ flashing a custom recovery directly from Android OS. ■ It requires: ○ Patching or replacing the kernel ○ - or - ○ Use phone-specific kernel exploits (mainly through ADB).
  • 59. Hacking basics - 2. Root access
  • 60. Recap: How to change your ROM 1. Go to a forum / wiki and learn the procedure 2. Use: a. fastboot b. the vendor flash tool c. a root hack to install a custom recovery on your phone. 3. Download a custom ROM as zip file and place it to your SD card/internal storage. 4. Reboot your phone in custom recovery and install the ROM. Reboot. Done.
  • 61. Hacking basics - Custom recovery ClockworkMod recovery
  • 62. Hacking basics - Custom recovery
  • 63. Thank you for watching. Questions? Twitter: @BladeCoder Web: digitalia.be