SlideShare una empresa de Scribd logo
1 de 63
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and DevelopmentOpersys inc.
 
C language in our world 2017
C language in our world 2017C language in our world 2017
C language in our world 2017Juraj Michálek
 
Headless Android (Wearable DevCon 2014)
Headless Android (Wearable DevCon 2014)Headless Android (Wearable DevCon 2014)
Headless Android (Wearable DevCon 2014)Ron Munitz
 
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 2011Opersys inc.
 
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, 2017Masahiro Hidaka
 
Development of Mobile Applications
Development of Mobile ApplicationsDevelopment of Mobile Applications
Development of Mobile ApplicationsDávid Kaya
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android WorkshopOpersys inc.
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android WorkshopOpersys inc.
 
Android development
Android developmentAndroid development
Android developmentLope Emano
 
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 IOpersys inc.
 
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 2011Opersys inc.
 
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 ProjectLeon Anavi
 
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...Samsung Open Source Group
 
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)Ron Munitz
 
Android Things Internals
Android Things InternalsAndroid Things Internals
Android Things InternalsOpersys inc.
 

La actualidad más candente (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
 

Destacado

Gbi 130219083032-phpapp02
Gbi 130219083032-phpapp02Gbi 130219083032-phpapp02
Gbi 130219083032-phpapp02kurt6008
 
Professional Development Opportunity on Google Drive
Professional Development Opportunity on Google DriveProfessional Development Opportunity on Google Drive
Professional Development Opportunity on Google DriveClement Coulston
 
Gestion basica de la informacion
Gestion basica de la informacionGestion basica de la informacion
Gestion basica de la informacionUNIMINUTO
 
Beyond company profile feb 2013 eng
Beyond company profile  feb 2013 engBeyond company profile  feb 2013 eng
Beyond company profile feb 2013 engHusna1965
 
Android Support Library: Using ActionBarCompat
Android Support Library: Using ActionBarCompatAndroid Support Library: Using ActionBarCompat
Android Support Library: Using ActionBarCompatcbeyls
 
краткая биография всемирно известных актеров великобритании
краткая биография всемирно известных актеров великобританиикраткая биография всемирно известных актеров великобритании
краткая биография всемирно известных актеров великобританииАлексей Галахов
 
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 keNgô Khắc Vũ
 
Agama tokoh istiqomah
Agama tokoh istiqomahAgama tokoh istiqomah
Agama tokoh istiqomahAnissa Nazda
 
Global business
Global businessGlobal business
Global businessDeba Ojha
 
You can sell presentation
You can sell presentationYou can sell presentation
You can sell presentationDeba Ojha
 
gerak melingkar dengan laju konstan
gerak melingkar dengan laju konstangerak melingkar dengan laju konstan
gerak melingkar dengan laju konstanHestri Yanti
 
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 ConferenceClement Coulston
 
Perfetti’s distribution
Perfetti’s distributionPerfetti’s distribution
Perfetti’s distributionDeba Ojha
 
Buzz marketing by sandip
Buzz marketing by sandipBuzz marketing by sandip
Buzz marketing by sandipDeba Ojha
 
Adaptive missile-guidance-using-gps
Adaptive missile-guidance-using-gpsAdaptive missile-guidance-using-gps
Adaptive missile-guidance-using-gpsVinod Kumar
 

Destacado (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
 

Similar a Introduction to Android (Jeudis du libre)

Android Seminar Presentation [March 2019]
Android Seminar Presentation [March 2019]Android Seminar Presentation [March 2019]
Android Seminar Presentation [March 2019]Jowin John Chemban
 
Android beyond the smartphone
Android beyond the smartphoneAndroid beyond the smartphone
Android beyond the smartphoneChris Simmonds
 
Android and Android phones
Android and Android phonesAndroid and Android phones
Android and Android phoneschristinejoy12
 
Embedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC EuropeEmbedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC EuropeOpersys inc.
 
Embedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IVEmbedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IVOpersys inc.
 
Android (Types, Feature,Application etc..)
Android (Types, Feature,Application etc..)Android (Types, Feature,Application etc..)
Android (Types, Feature,Application etc..)Coder Tech
 
Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013Opersys inc.
 
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 2013Opersys inc.
 
Android presantation
Android presantationAndroid presantation
Android presantationUdayJethva
 
Embedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon VEmbedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon VOpersys inc.
 
Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014Opersys inc.
 
PRESENTATION ON ANDROID
PRESENTATION ON ANDROIDPRESENTATION ON ANDROID
PRESENTATION ON ANDROIDRajat Kumar
 
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 2014Opersys inc.
 
Vijay android ppt
Vijay android pptVijay android ppt
Vijay android pptvijaymashre
 
Embedded Android Workshop at AnDevCon VI
Embedded Android Workshop at AnDevCon VIEmbedded Android Workshop at AnDevCon VI
Embedded Android Workshop at AnDevCon VIOpersys inc.
 

Similar 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

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 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