SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
Embedded Android
     Workshop
Part 2 - Working with the AOSP
      Linaro Connect Asia 2013

         Karim Yaghmour
         @karimyaghmour


                                 1
These slides are made available to you under a Creative Commons          Delivered and/or customized by
Share-Alike 3.0 license. The full terms of this license are here:
https://creativecommons.org/licenses/by-sa/3.0/


Attribution requirements and misc., PLEASE READ:
●   This slide must remain as-is in this specific location (slide #2),
    everything else you are free to change; including the logo :-)
●   Use of figures in other documents must feature the below
    “Originals at” URL immediately under that figure and the below
    copyright notice where appropriate.
●   You are free to fill in the “Delivered and/or customized by” space
    on the right as you see fit.
●   You are FORBIDEN from using the default “About” slide as-is or
    any of its contents.


(C) Copyright 2010-2013, Opersys inc.
These slides created by: Karim Yaghmour
Originals at: www.opersys.com/community/docs
                                                                                  2
About
●   Author of:




●   Introduced Linux Trace Toolkit in 1999
●   Originated Adeos and relayfs (kernel/relay.c)
●   Training, Custom Dev, Consulting, ...
                                              3
Working with the
      Android Open Source Project
●   Tools and location
●   Content
●   Building
●   Build tricks
●   Build system architecture
●   Output images
●   Using adb
●   Custom toolchains and dev kits
●   Compatibility Test Suite
●   Basic hacks
                                     4
1. Tools and location
●   Location:
    ●    http://android.googlesource.com/
●   Get “repo”:
        $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
        $ chmod a+x ~/bin/repo
●   Fetch the AOSP:
    ●    Make sure you fetch a tagged release
    ●    Gingerbread:
          $ repo init -u https://android.googlesource.com/platform/manifest
          -b android-2.3.7_r1
          $ repo sync
                                                                   5
2. Content
bionic        C library replacement
bootable      Reference bootloader
build         Build system
cts           Compatibility Test Suite
dalvik        Dalvik VM
development   Development tools
device        Device-specific files and components
external      Copy of external projects used by AOSP
frameworks    System services, android.*, Android-related cmds, etc.
hardware      Hardware support libs
libcore       Apache Harmony
ndk           The NDK
packages      Stock Android apps, providers, etc.
prebuilt      Prebuilt binaries
sdk           The SDK
system        pieces of the world that are the core of the embedded linux platform at
              the heart of Android.




                                                                  6
7
3. Building
●   Requires 64-bit Ubuntu 10.04
●   Packages required:
     $ sudo⌴ apt-get⌴ install⌴ build-essential⌴ libc6-dev⌴ 
     > ia32-libs⌴ lib32z1⌴ bison⌴ flex⌴ gperf⌴ git-core⌴ 
     > g++⌴ libc6-dev-i386⌴ libz-dev⌴ libx11-dev⌴ 
     > libstdc++6⌴ lib32ncurses5⌴ lib32ncurses5-dev⌴ 
     > g++-multilib
●   Possibly fix a few symbolic links:
     $ sudo ln⌴ -s⌴ /usr/lib32/libstdc++.so.6⌴ /usr/lib32/libstdc++.so

     $ sudo ln⌴ -s⌴ /usr/lib32/libz.so.1⌴ /usr/lib32/libz.so
                                                                8
●   Set up build environment:
     $ .⌴ build/envsetup.sh
     $ lunch
●   Launch build and go watch tonight's hockey game:
     $ make -j2
●   ... though you should check your screen at breaks ...
●   Just launch emulator when it's done:
     $ emulator &
●   Need to reuse envsetup.sh and lunch on every new shell



                                                       9
4. Build Tricks
●   Commands (from build/envsetup.sh):
    ●   godir
    ●   croot
    ●   mm
    ●   m
●   Speeding up the Build:
    ●   CPU
    ●   RAM
    ●   SSD
    ●   CCACHE
        –   $ export USE_CCACHE=1

                                          10
5. Build System Architecture
●   Non-Recursive
●   “Modules” build predicated on Android.mk




                                       11
6. Output Images
●   All output and build in [aosp]/out/
●   Images at [aosp]/out/target/product/generic/:
    ●   ramdisk.img
    ●   system.img
    ●   userdata-qemu.img
●   Kernel is in:
    ●   prebuilt/android-arm/kernel/kernel-qemu
●   Emulator overrides:
    ●   -kernel
    ●   -initrd
                                                  12
7. Using adb
●   Can use to control/interface w/ running AOSP,
    including emulator.
●   Shell:                             Host
       $ adb shell
                              Target
       #
●   Dumping the log:
       $ adb logcat
●   Copying files to/from target:
       $ adb push foo /data/local
       $ adb pull /proc/config.gz
                                              13
8. Custom Toolchains and Dev Kits
●   Rationale
●   SDK generation
●   NDK generation




                          14
8.1. Rationale
●   SDK:
    ●   Providing other internal teams or external developers
        access to your modified/custom Android APIs.
●   NDK:
    ●   Same as SDK rationale
●   Custom cross-dev toolchain:
    ●
        To avoid having to use a binary toolchain from 3rd party.
    ●   To control the build parameters used to create the
        toolchain. Ex.: use uClibc instead of glibc.


                                                      15
8.2. SDK generation
●   Building the SDK:
        $ . build/envsetup.sh
        $ lunch sdk-eng
        $ make sdk
●   If API modified, do this before make:
        $ make update-api
●   Location: [aosp]/out/host/linux-x86/sdk/
●   Using a custom SDK:
    ●    Eclipse->Window->Preferences->Android->”SDK Location”
    ●    Eclipse->Window->"Android SDK and AVD Manager"-
         >"Installed Packages"->"Update All..."
                                                     16
8.3. NDK generation
●   Build
     $ cd ndk/build/tools
     $ export ANDROID_NDK_ROOT=[aosp]/ndk
     $ ./make-release --help
     $ ./make-release
     IMPORTANT WARNING !!

     This script is used to generate an NDK release package from scratch
     for the following host platforms: linux-x86

     This process is EXTREMELY LONG and may take SEVERAL HOURS on a dual-core
     machine. If you plan to do that often, please read docs/DEVELOPMENT.TXT
     that provides instructions on how to do that more easily.

     Are you sure you want to do that [y/N]

                                                                       17
9. Compatibility Test Suite
●   Android Compatibility Program:
    ●   Source code to Android stack
    ●   Compatibility Definition Document (CDD) – Policy
    ●   Compatibility Test Suite (CTS) – Mechanism
●   Each Android version has own CDD & CTS
●   CTS:
    ●   Part of AOSP
    ●   Run from host using USB over to attached device
    ●   Based on JUnit
    ●   Runs various test apps on target
    ●   Relies on ADB
    ●   Provides report to be be analyzed and/or sent back to Google
                                                             18
19
●   Report:
    ●    .zip file containing XML files and screen-shots
    ●    Sent to: cts@android.com
●   Building the CTS:
        $ . build/envsetup.sh
        $ make cts
●   Launching the CTS:
        $ cd out/host/linux-x86/bin/
        $ ./cts
        $ cts_host >
        $ cts_host > help
        ...
                                                           20
●   Using the CTS:
     $ cts_host > ls --plan
     List of plans (8 in total):
     Signature
     RefApp
     VM
     Performance
     AppSecurity
     Android
     Java
     CTS
     $ ./cts start --plan CTS
                                   21
●   Areas covered:
    ●   Signature tests
    ●   Platform API tests
    ●   Dalvik VM tests
    ●   Platform Data Model
    ●   Platform Intents
    ●   Platform Permissions
    ●   Platform Resources


                               22
10. Basic Hacks
●   Add device
●   Add app
●   Add app overlay
●   Add native tool or daemon
●   Add native library




                                   23
10.1. Adding a new device
●   Create directory in device/:
    ●   device/acme/coyotepad/
●   Makefile checklist:
    ●   AndroidProducts.mk
    ●   full_coyotepad.mk
    ●   BoardConfig.mk
    ●   Android.mk
●   Menu integration:
    ●   vendorsetup.sh


                                   24
10.1.1. AndroidProducts.mk
PRODUCT_MAKEFILES := 
$(LOCAL_DIR)/full_coyotepad.mk




                                 25
10.1.2. full_coyotepad.mk
$(call inherit­product, $
(SRC_TARGET_DIR)/product/languages_full.mk)
# If you're using 4.2/Jelly Bean, use full_base.mk instead of 
full.mk
$(call inherit­product, $(SRC_TARGET_DIR)/product/full.mk)
DEVICE_PACKAGE_OVERLAYS :=
PRODUCT_PACKAGES +=
PRODUCT_COPY_FILES +=
PRODUCT_NAME := full_coyotepad
PRODUCT_DEVICE := coyotepad
PRODUCT_MODEL := Full Android on CoyotePad, meep­meep



                                               26
10.1.3. BoardConfig.mk
TARGET_NO_KERNEL := true
TARGET_NO_BOOTLOADER := true
TARGET_CPU_ABI := armeabi
BOARD_USES_GENERIC_AUDIO := true
USE_CAMERA_STUB := true




                                   27
10.1.4. Android.mk
LOCAL_PATH := $(call my­dir)
include $(CLEAR_VARS)
ifneq ($(filter coyotepad,$(TARGET_DEVICE)),)
include $(call all­makefiles­under,$(LOCAL_PATH))
endif




                                       28
10.1.5. vendorsetup.sh
add_lunch_combo full_coyotepad­eng




                                     29
10.1.4. Android.mk
LOCAL_PATH := $(call my­dir)
include $(CLEAR_VARS)
ifneq ($(filter coyotepad,$(TARGET_DEVICE)),)
include $(call all­makefiles­under,$(LOCAL_PATH))
endif




                                       30
10.2. Adding new applications
●   Can use Eclipse to create initial version
●   Copy Eclipse project to packages/apps
●   Local:
    ●   Add app to device/acme/coyotepad/
    ●   Add Android.mk to app
    ●   Add to PRODUCT_PACKAGES in full_coyotepad.mk
●   Global:
    ●   Add application in [aosp]/packages/apps
    ●   Add an appropriate Android.mk file to project
    ●   Add project to PRODUCT_PACKAGES in
        [aosp]/build/target/product/core.mk
                                                        31
LOCAL_PATH:= $(call my­dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all­java­files­under, src)
LOCAL_PACKAGE_NAME := HelloWorld
include $(BUILD_PACKAGE)




                                       32
10.3. Adding an app overlay
●   device/acme/coyotepad/overlay/
●   full_coyotepad.mk:
    ●   DEVICE_PACKAGE_OVERLAYS :=
        device/acme/coyotepad/overlay




                                        33
10.4. Adding a native tool or daemon
●   Local:
      device/acme/coyotepad/
●   Global:
    ●   system/core/
    ●   system/
    ●   frameworks/base/cmds/
    ●   frameworks/native/cmds/
    ●   external/


                                  34
LOCAL_PATH:= $(call my­dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello­world
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := hello­world.cpp
LOCAL_SHARED_LIBRARIES := liblog
include $(BUILD_EXECUTABLE)




                                     35
10.5. Add a native library
●   Local:
      device/acme/coyotepad/
●   Global:
    ●   system/core/
    ●   frameworks/base/libs/
    ●   frameworks/native/libs/
    ●   external/
●   In <= 2.3:
    ●   See build/core/prelink-linux-arm.map


                                               36
LOCAL_PATH:= $(call my­dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libmylib
LOCAL_MODULE_TAGS := optional
LOCAL_PRELINK_MODULE := false
LOCAL_SRC_FILES := $(call all­c­files­under,.)
include $(BUILD_SHARED_LIBRARY)




                                       37
Thank you ...


karim.yaghmour@opersys.com




                         38

Contenu connexe

Tendances

Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Opersys inc.
 
Running Code in the Android Stack at ABS 2014
Running Code in the Android Stack at ABS 2014Running Code in the Android Stack at ABS 2014
Running Code in the Android Stack at ABS 2014
Opersys inc.
 
Is Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIIs Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VI
Opersys inc.
 

Tendances (20)

Android Things Internals
Android Things InternalsAndroid Things Internals
Android Things Internals
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
Understanding the Android System Server
Understanding the Android System ServerUnderstanding the Android System Server
Understanding the Android System Server
 
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Android Security, From the Ground Up
Android Security, From the Ground UpAndroid Security, From the Ground Up
Android Security, From the Ground Up
 
Android Variants, Hacks, Tricks and Resources
Android Variants, Hacks, Tricks and ResourcesAndroid Variants, Hacks, Tricks and Resources
Android Variants, Hacks, Tricks and Resources
 
Running Code in the Android Stack at ABS 2014
Running Code in the Android Stack at ABS 2014Running Code in the Android Stack at ABS 2014
Running Code in the Android Stack at ABS 2014
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in Android
 
Embedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC EuropeEmbedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC Europe
 
Porting Android
Porting AndroidPorting Android
Porting Android
 
Is Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VIIs Android the New Embedded Linux? at AnDevCon VI
Is Android the New Embedded Linux? at AnDevCon VI
 
Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3
 
BeagleBoard Workshop ESC Boston 2011
BeagleBoard Workshop ESC Boston 2011BeagleBoard Workshop ESC Boston 2011
BeagleBoard Workshop ESC Boston 2011
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Headless Android
Headless AndroidHeadless Android
Headless Android
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
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
 

En vedette

Droidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform AnatomyDroidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform Anatomy
Benjamin Zores
 

En vedette (20)

Extending Android with New Devices
Extending Android with New DevicesExtending Android with New Devices
Extending Android with New Devices
 
Droidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform AnatomyDroidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform Anatomy
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
 
Certificaciones tecnológicas
Certificaciones tecnológicasCertificaciones tecnológicas
Certificaciones tecnológicas
 
Herramientas gestion proyectos
Herramientas gestion proyectosHerramientas gestion proyectos
Herramientas gestion proyectos
 
Privacidad internet
Privacidad internetPrivacidad internet
Privacidad internet
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicaciones
 
Certificaciones Tecnológicas: La acreditación del experto
Certificaciones Tecnológicas: La acreditación del expertoCertificaciones Tecnológicas: La acreditación del experto
Certificaciones Tecnológicas: La acreditación del experto
 
Inteligencia Colectiva
Inteligencia ColectivaInteligencia Colectiva
Inteligencia Colectiva
 
Seguridad en dispositivos móviles
Seguridad en dispositivos móvilesSeguridad en dispositivos móviles
Seguridad en dispositivos móviles
 
Por su seguridad
Por su seguridadPor su seguridad
Por su seguridad
 
Kanban
KanbanKanban
Kanban
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicaciones
 
Git and git flow
Git and git flowGit and git flow
Git and git flow
 
Manual de uso de la web 2.0
Manual de uso de la web 2.0Manual de uso de la web 2.0
Manual de uso de la web 2.0
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
 
Learning AOSP - Android Booting Process
Learning AOSP - Android Booting ProcessLearning AOSP - Android Booting Process
Learning AOSP - Android Booting Process
 
Framework de test spock
Framework de test spock Framework de test spock
Framework de test spock
 
Metodologías agiles de desarrollo de software
Metodologías agiles de desarrollo de softwareMetodologías agiles de desarrollo de software
Metodologías agiles de desarrollo de software
 

Similaire à Working with the AOSP - Linaro Connect Asia 2013

Leveraging Android's Linux Heritage at AnDevCon VI
Leveraging Android's Linux Heritage at AnDevCon VILeveraging Android's Linux Heritage at AnDevCon VI
Leveraging Android's Linux Heritage at AnDevCon VI
Opersys inc.
 
Leveraging Android's Linux Heritage at AnDevCon V
Leveraging Android's Linux Heritage at AnDevCon VLeveraging Android's Linux Heritage at AnDevCon V
Leveraging Android's Linux Heritage at AnDevCon V
Opersys inc.
 
Leveraging Android's Linux Heritage at AnDevCon IV
Leveraging Android's Linux Heritage at AnDevCon IVLeveraging Android's Linux Heritage at AnDevCon IV
Leveraging Android's Linux Heritage at AnDevCon IV
Opersys inc.
 
Rhodes mobile Framework
Rhodes mobile FrameworkRhodes mobile Framework
Rhodes mobile Framework
Yoshi Sakai
 
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConIIAndroid Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
Opersys inc.
 

Similaire à Working with the AOSP - Linaro Connect Asia 2013 (20)

Android for Embedded Linux Developers
Android for Embedded Linux DevelopersAndroid for Embedded Linux Developers
Android for Embedded Linux Developers
 
Leveraging Android's Linux Heritage at AnDevCon VI
Leveraging Android's Linux Heritage at AnDevCon VILeveraging Android's Linux Heritage at AnDevCon VI
Leveraging Android's Linux Heritage at AnDevCon VI
 
Leveraging Android's Linux Heritage at AnDevCon V
Leveraging Android's Linux Heritage at AnDevCon VLeveraging Android's Linux Heritage at AnDevCon V
Leveraging Android's Linux Heritage at AnDevCon V
 
Android build on windows
Android build on windowsAndroid build on windows
Android build on windows
 
Android Platform Debugging & Development
Android Platform Debugging & Development Android Platform Debugging & Development
Android Platform Debugging & Development
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Q4.11: Porting Android to new Platforms
Q4.11: Porting Android to new PlatformsQ4.11: Porting Android to new Platforms
Q4.11: Porting Android to new Platforms
 
Android open source project build system phi innovations - android summit 2015
Android open source project build system   phi innovations - android summit 2015Android open source project build system   phi innovations - android summit 2015
Android open source project build system phi innovations - android summit 2015
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Leveraging Android's Linux Heritage at AnDevCon IV
Leveraging Android's Linux Heritage at AnDevCon IVLeveraging Android's Linux Heritage at AnDevCon IV
Leveraging Android's Linux Heritage at AnDevCon IV
 
Rhodes mobile Framework
Rhodes mobile FrameworkRhodes mobile Framework
Rhodes mobile Framework
 
Droidcon uk2012 androvm
Droidcon uk2012 androvmDroidcon uk2012 androvm
Droidcon uk2012 androvm
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Android
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'a
 
Getting started with the NDK
Getting started with the NDKGetting started with the NDK
Getting started with the NDK
 
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConIIAndroid Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
 

Plus de Opersys inc.

Plus de Opersys inc. (20)

Android Automotive
Android AutomotiveAndroid Automotive
Android Automotive
 
Android 10 Internals Update
Android 10 Internals UpdateAndroid 10 Internals Update
Android 10 Internals Update
 
Android Security Internals
Android Security InternalsAndroid Security Internals
Android Security Internals
 
Embedded Android Workshop with Pie
Embedded Android Workshop with PieEmbedded Android Workshop with Pie
Embedded Android Workshop with Pie
 
Android's HIDL: Treble in the HAL
Android's HIDL: Treble in the HALAndroid's HIDL: Treble in the HAL
Android's HIDL: Treble in the HAL
 
Android Treble: Blessing or Trouble?
Android Treble: Blessing or Trouble?Android Treble: Blessing or Trouble?
Android Treble: Blessing or Trouble?
 
Embedded Android Workshop with Oreo
Embedded Android Workshop with OreoEmbedded Android Workshop with Oreo
Embedded Android Workshop with Oreo
 
Embedded Android Workshop with Nougat
Embedded Android Workshop with NougatEmbedded Android Workshop with Nougat
Embedded Android Workshop with Nougat
 
Embedded Android Workshop with Nougat
Embedded Android Workshop with NougatEmbedded Android Workshop with Nougat
Embedded Android Workshop with Nougat
 
Android Things: Android for IoT
Android Things: Android for IoTAndroid Things: Android for IoT
Android Things: Android for IoT
 
Android Things Internals
Android Things InternalsAndroid Things Internals
Android Things Internals
 
Scheduling in Android
Scheduling in AndroidScheduling in Android
Scheduling in Android
 
Brillo / Weave Internals
Brillo / Weave InternalsBrillo / Weave Internals
Brillo / Weave Internals
 
Embedded Android Workshop with Nougat
Embedded Android Workshop with NougatEmbedded Android Workshop with Nougat
Embedded Android Workshop with Nougat
 
Brillo / Weave Internals
Brillo / Weave InternalsBrillo / Weave Internals
Brillo / Weave Internals
 
Project Ara
Project AraProject Ara
Project Ara
 
Brillo/Weave Internals
Brillo/Weave InternalsBrillo/Weave Internals
Brillo/Weave Internals
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in Android
 
Project Ara
Project AraProject Ara
Project Ara
 

Dernier

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
 
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
panagenda
 
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
 

Dernier (20)

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
 
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
 
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 ...
 
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...
 
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...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
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
 
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
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
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
 
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
 
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
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Working with the AOSP - Linaro Connect Asia 2013