Play with Android Champ Yen http://champyen.blogspot.com [email_address]
Outlines Architecture Why Android!? How to start? Software Development Take Care of API Levels! Build it Yourself!  Kernels for versions of Android Customization Optimization
Android Architecture
Features Architecutes ARM, x86, MIPS  Kernel Linux-based with modification for Android Native Layer Bionic C library, SQLite, OpenGL ES, Webkit, OpenCore.. Application Layer Dalvik Virtual Machine Dex format framework, application Application Development Java Language for Development JNI used for performance critical application. Far different from known GNU/Linux! http://walkingice.twbbs.org/~walkingice/files/document/coscup_2009_walkingice.pdf
License Perspective Kernel - GNU Public License Android - Apache License
Why Android? IC Design House Since system is not bound to ARM platform, it is flexible to design cost-efficient ICs Product Manufactor Consistency Open Source (no blackbox anymore) Open Platform (community supported kernel/app. development) No license fee (no extra product tax)  Software Developer easy development on PC licensed SDK is not needed Open platform User full-feature system many applications longer software support (active community)
How to start? There are many active Android projects for several open platforms. x86 platform EeePC 701 Android 1.5 adds official eeepc701 support and most x86 porting base on this. 0xlab’s android-eeepc project  http://gitorious.org/android-eeepc Extra hardware support (ex: 3D) PC platform VirtualBox/QEMU try to build a workable Android system for VirtualBox/QEMU Many building tutorials can be get by searching on Google. Android LiveCD http://code.google.com/p/live-android/ http:// code.google.com/p/livedroid /
How to start? (cont.) ARM platform ( >= ARMv5) exists product Current Android Mobile Phones Nokia N770/N8x0, Zaurus PDA, OpenMoko, SmartQ 5/7 MID development boards BeagleBoard, OMAP 35x EVM S3C6410 boards FreeScale EVBs qemu MIPS http:// www.mips.com /android/ More supported architecture by porting (ex: PowerPC)
Software Development For those who only have interests on develop applications on Android http://developer.android.com/sdk/ SDK develop application with application framework built-in emulator & debugger  NDK for development native libraries for performance critical implementation.
1.0 r1, r2 API Level 1 1.1 API Level 2 1.5 r1 ~ r3 API Level 3 API Changes significantly supported languages increase significantly 1.6 API Level 4 Take care of API Levels http://developer.android.com/intl/fr/guide/appendix/api-levels.html
Build it Yourself! For fun or for product? Just for fun is easy. enjoy writing code & hacking! Product quality takes great time to achive. (so be patient and take it easy!) Linux kernel with Android support http:// android.git.kernel.org/?p =kernel/ common.git;a =summary BSP for target platfrom For different versions of Android, different supports are needed. try different kernel options! Good ideas? Just do it! Ex:  http:// code.google.com/p/compcache / Building Android System generic building guide:  http:// source.android.com /download 3 images generated yaffs2 image : system.img usrdata.img try!  http:// code.google.com/p/unyaffs / gzipped cpio archive: ramdisk.img further target platform customization is needed Where is my WIFI? Audio!? 3D support?
Kernels for Android versions Basic support : logger, binder, network, power  ASHMEM : Android Shared Memory Subsystem PMEM : Physical Memory Allocator 2.6.23 2.6.25 2.6.27 2.6.29 Basic Support ○  ○  ○  ○  ASHMEM ╳  ○  ○  ○  PMEM ╳  ╳  ○  ○  2.6.23 2.6.25 2.6.27 2.6.29
System Directories Structure /data to keep user data /etc system compatibility (link to /system/etc) /system Android main system directories /proc, /sys /cache
Customization It may take much time to integrate/customize specific devices for Android. Keyboard/Mouse/Touchscreen Audio/Display/Camera Network (Wifi, Ethernet) USB/Bluetooth Telephony (GSM, GPRS, 3G) User Interface / Applications Power Management System initialization
Optimization Most Android optimization must be done in native library and kernel layer. It may take great effort to do just an optimization item. Dalvik - JIT Native library optimization – (add VFP, NEON, MMX, SSE.. support) Display – (accelerated fb, OSD, layers) Graphics – OpenGL ES (Hardware Acceleration) Multimedia – OpenMax (SIMD, DSP or Hardware Codec) Power Management
Optimization Example 0xlab intends to make use of several feature of OMAP 3530 on BeagleBoard (includes NEON, DSP, 3D and OMAP DSS2) to improve performance of graphics and multimedia on Android. And some features have been implemented. Rock the World! 0xlab!
Q & A

More Related Content

PDF
IITCC15: The Bare-Metal Hypervisor as a Platform for Innovation
PDF
Build Low-Latency Applications in Rust on ScyllaDB
PDF
OSv – The OS designed for the Cloud
PDF
Kernel Recipes 2017 - 20 years of Linux Virtual Memory - Andrea Arcangeli
PDF
Kernel Recipes 2017 - Build farm again - Willy Tarreau
PDF
Achieving the ultimate performance with KVM
PDF
OSv Unikernel — Optimizing Guest OS to Run Stateless and Serverless Apps in t...
PDF
XPDDS17: Xen-lite for ARM: Adapting Xen for a Samsung Exynos MicroServer with...
IITCC15: The Bare-Metal Hypervisor as a Platform for Innovation
Build Low-Latency Applications in Rust on ScyllaDB
OSv – The OS designed for the Cloud
Kernel Recipes 2017 - 20 years of Linux Virtual Memory - Andrea Arcangeli
Kernel Recipes 2017 - Build farm again - Willy Tarreau
Achieving the ultimate performance with KVM
OSv Unikernel — Optimizing Guest OS to Run Stateless and Serverless Apps in t...
XPDDS17: Xen-lite for ARM: Adapting Xen for a Samsung Exynos MicroServer with...

What's hot (20)

ODP
Managing ceph through_oVirt_using_Cinder
PDF
Quickly Debug VM Failures in OpenStack
PPTX
Drive into kvm
PDF
XPDS14 - OSv - A Modern Semi-POSIX LibraryOS - Glauber Costa, Cloudius Systems
PDF
XPDDS17: Xen Test Lab: The Installation and Our Plans - Ian Jackson, Citrix
PDF
Obstacles & Solutions for Livepatch Support on ARM64 Architecture
PDF
Ceph on Windows
PDF
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
ODP
Mastering kvm virtualization- A complete guide of KVM virtualization
ODP
Storage best practices
PDF
3 ubuntu open_stack_ceph
PDF
Cache Tiering and Erasure Coding
PDF
TechDay - Cambridge 2016 - OpenNebula Corona
PDF
CEPH DAY BERLIN - DEPLOYING CEPH IN KUBERNETES WITH ROOK
PPTX
Ceph meetup montreal
PDF
IITCC15: Xen Project 4.6 Update
ODP
Disaster Recovery in oVirt
PDF
Red Hat Summit 2017: Wicked Fast PaaS: Performance Tuning of OpenShift and D...
PDF
CEPH DAY BERLIN - CEPH ON THE BRAIN!
PDF
Openstack platform -Red Hat Pizza and technology event - Israel
Managing ceph through_oVirt_using_Cinder
Quickly Debug VM Failures in OpenStack
Drive into kvm
XPDS14 - OSv - A Modern Semi-POSIX LibraryOS - Glauber Costa, Cloudius Systems
XPDDS17: Xen Test Lab: The Installation and Our Plans - Ian Jackson, Citrix
Obstacles & Solutions for Livepatch Support on ARM64 Architecture
Ceph on Windows
OpenNebula Conf 2014 | Lightning talk: OpenNebula at Etnetera by Jan Horacek
Mastering kvm virtualization- A complete guide of KVM virtualization
Storage best practices
3 ubuntu open_stack_ceph
Cache Tiering and Erasure Coding
TechDay - Cambridge 2016 - OpenNebula Corona
CEPH DAY BERLIN - DEPLOYING CEPH IN KUBERNETES WITH ROOK
Ceph meetup montreal
IITCC15: Xen Project 4.6 Update
Disaster Recovery in oVirt
Red Hat Summit 2017: Wicked Fast PaaS: Performance Tuning of OpenShift and D...
CEPH DAY BERLIN - CEPH ON THE BRAIN!
Openstack platform -Red Hat Pizza and technology event - Israel
Ad

Viewers also liked (20)

PDF
Android Architecture
PDF
Android for Embedded Linux Developers
PDF
Fuzzing the Media Framework in Android
PDF
How to reverse engineer Android applications—using a popular word game as an ...
PDF
08 android multimedia_framework_overview
PDF
OpenGL ES 2.x Programming Introduction
PDF
RIL and Android Telephony
PPTX
Linux Kernel Tour
PDF
Learning by hacking - android application hacking tutorial
PPT
Android Radio Layer Interface
PDF
Android IPC Mechanism
ODP
Embedded Android : System Development - Part III
PPTX
System Booting Process overview
PDF
Embedded Android : System Development - Part IV
PDF
Embedded Android : System Development - Part I
PDF
Android media framework overview
PDF
Embedded Android : System Development - Part II (Linux device drivers)
PDF
Usage Note of Apache Thrift for C++ Java PHP Languages
PDF
Android Storage - Vold
Android Architecture
Android for Embedded Linux Developers
Fuzzing the Media Framework in Android
How to reverse engineer Android applications—using a popular word game as an ...
08 android multimedia_framework_overview
OpenGL ES 2.x Programming Introduction
RIL and Android Telephony
Linux Kernel Tour
Learning by hacking - android application hacking tutorial
Android Radio Layer Interface
Android IPC Mechanism
Embedded Android : System Development - Part III
System Booting Process overview
Embedded Android : System Development - Part IV
Embedded Android : System Development - Part I
Android media framework overview
Embedded Android : System Development - Part II (Linux device drivers)
Usage Note of Apache Thrift for C++ Java PHP Languages
Android Storage - Vold
Ad

Similar to Play With Android (20)

PDF
Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...
PDF
An Introduction To Android
PPT
Enhancing and modifying_the_core_android_os
PDF
Embedded Android: Android beyond the smartphone
ODP
Enhancing and modifying_the_core_android_os
PPTX
01 introduction & setup - Android
PPT
Portinig Application, Drivers And Os
PPT
Android architechture
PDF
Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon S...
PDF
Android System Developement
PDF
01 02 - introduction - adroid stack
PDF
Introduction to android
PDF
Introduction to Android (Jeudis du libre)
PDF
Google Android Naver 1212
PDF
Android internals
PDF
Android Developing Overview
PPTX
Android understanding
PDF
Introduction to android
PDF
Hacking Android OS
Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...
An Introduction To Android
Enhancing and modifying_the_core_android_os
Embedded Android: Android beyond the smartphone
Enhancing and modifying_the_core_android_os
01 introduction & setup - Android
Portinig Application, Drivers And Os
Android architechture
Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon S...
Android System Developement
01 02 - introduction - adroid stack
Introduction to android
Introduction to Android (Jeudis du libre)
Google Android Naver 1212
Android internals
Android Developing Overview
Android understanding
Introduction to android
Hacking Android OS

More from Champ Yen (7)

PDF
Halide tutorial 2019
PPT
Linux SD/MMC Driver Stack
PDF
Simd programming introduction
PDF
Video Compression Standards - History & Introduction
PDF
OpenCL Kernel Optimization Tips
PDF
Chrome OS Observation
PDF
Linux Porting
Halide tutorial 2019
Linux SD/MMC Driver Stack
Simd programming introduction
Video Compression Standards - History & Introduction
OpenCL Kernel Optimization Tips
Chrome OS Observation
Linux Porting

Recently uploaded (20)

PDF
Unlock new opportunities with location data.pdf
PDF
Hindi spoken digit analysis for native and non-native speakers
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
A review of recent deep learning applications in wood surface defect identifi...
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PPTX
O2C Customer Invoices to Receipt V15A.pptx
PDF
Hybrid model detection and classification of lung cancer
PPT
Module 1.ppt Iot fundamentals and Architecture
PPT
What is a Computer? Input Devices /output devices
PDF
Five Habits of High-Impact Board Members
PPTX
Web Crawler for Trend Tracking Gen Z Insights.pptx
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
A comparative study of natural language inference in Swahili using monolingua...
PPTX
The various Industrial Revolutions .pptx
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Unlock new opportunities with location data.pdf
Hindi spoken digit analysis for native and non-native speakers
Final SEM Unit 1 for mit wpu at pune .pptx
A contest of sentiment analysis: k-nearest neighbor versus neural network
A review of recent deep learning applications in wood surface defect identifi...
Taming the Chaos: How to Turn Unstructured Data into Decisions
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
O2C Customer Invoices to Receipt V15A.pptx
Hybrid model detection and classification of lung cancer
Module 1.ppt Iot fundamentals and Architecture
What is a Computer? Input Devices /output devices
Five Habits of High-Impact Board Members
Web Crawler for Trend Tracking Gen Z Insights.pptx
A novel scalable deep ensemble learning framework for big data classification...
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
A comparative study of natural language inference in Swahili using monolingua...
The various Industrial Revolutions .pptx
Assigned Numbers - 2025 - Bluetooth® Document
NewMind AI Weekly Chronicles – August ’25 Week III
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf

Play With Android

  • 1. Play with Android Champ Yen http://champyen.blogspot.com [email_address]
  • 2. Outlines Architecture Why Android!? How to start? Software Development Take Care of API Levels! Build it Yourself! Kernels for versions of Android Customization Optimization
  • 4. Features Architecutes ARM, x86, MIPS Kernel Linux-based with modification for Android Native Layer Bionic C library, SQLite, OpenGL ES, Webkit, OpenCore.. Application Layer Dalvik Virtual Machine Dex format framework, application Application Development Java Language for Development JNI used for performance critical application. Far different from known GNU/Linux! http://walkingice.twbbs.org/~walkingice/files/document/coscup_2009_walkingice.pdf
  • 5. License Perspective Kernel - GNU Public License Android - Apache License
  • 6. Why Android? IC Design House Since system is not bound to ARM platform, it is flexible to design cost-efficient ICs Product Manufactor Consistency Open Source (no blackbox anymore) Open Platform (community supported kernel/app. development) No license fee (no extra product tax) Software Developer easy development on PC licensed SDK is not needed Open platform User full-feature system many applications longer software support (active community)
  • 7. How to start? There are many active Android projects for several open platforms. x86 platform EeePC 701 Android 1.5 adds official eeepc701 support and most x86 porting base on this. 0xlab’s android-eeepc project http://gitorious.org/android-eeepc Extra hardware support (ex: 3D) PC platform VirtualBox/QEMU try to build a workable Android system for VirtualBox/QEMU Many building tutorials can be get by searching on Google. Android LiveCD http://code.google.com/p/live-android/ http:// code.google.com/p/livedroid /
  • 8. How to start? (cont.) ARM platform ( >= ARMv5) exists product Current Android Mobile Phones Nokia N770/N8x0, Zaurus PDA, OpenMoko, SmartQ 5/7 MID development boards BeagleBoard, OMAP 35x EVM S3C6410 boards FreeScale EVBs qemu MIPS http:// www.mips.com /android/ More supported architecture by porting (ex: PowerPC)
  • 9. Software Development For those who only have interests on develop applications on Android http://developer.android.com/sdk/ SDK develop application with application framework built-in emulator & debugger NDK for development native libraries for performance critical implementation.
  • 10. 1.0 r1, r2 API Level 1 1.1 API Level 2 1.5 r1 ~ r3 API Level 3 API Changes significantly supported languages increase significantly 1.6 API Level 4 Take care of API Levels http://developer.android.com/intl/fr/guide/appendix/api-levels.html
  • 11. Build it Yourself! For fun or for product? Just for fun is easy. enjoy writing code & hacking! Product quality takes great time to achive. (so be patient and take it easy!) Linux kernel with Android support http:// android.git.kernel.org/?p =kernel/ common.git;a =summary BSP for target platfrom For different versions of Android, different supports are needed. try different kernel options! Good ideas? Just do it! Ex: http:// code.google.com/p/compcache / Building Android System generic building guide: http:// source.android.com /download 3 images generated yaffs2 image : system.img usrdata.img try! http:// code.google.com/p/unyaffs / gzipped cpio archive: ramdisk.img further target platform customization is needed Where is my WIFI? Audio!? 3D support?
  • 12. Kernels for Android versions Basic support : logger, binder, network, power ASHMEM : Android Shared Memory Subsystem PMEM : Physical Memory Allocator 2.6.23 2.6.25 2.6.27 2.6.29 Basic Support ○ ○ ○ ○ ASHMEM ╳ ○ ○ ○ PMEM ╳ ╳ ○ ○ 2.6.23 2.6.25 2.6.27 2.6.29
  • 13. System Directories Structure /data to keep user data /etc system compatibility (link to /system/etc) /system Android main system directories /proc, /sys /cache
  • 14. Customization It may take much time to integrate/customize specific devices for Android. Keyboard/Mouse/Touchscreen Audio/Display/Camera Network (Wifi, Ethernet) USB/Bluetooth Telephony (GSM, GPRS, 3G) User Interface / Applications Power Management System initialization
  • 15. Optimization Most Android optimization must be done in native library and kernel layer. It may take great effort to do just an optimization item. Dalvik - JIT Native library optimization – (add VFP, NEON, MMX, SSE.. support) Display – (accelerated fb, OSD, layers) Graphics – OpenGL ES (Hardware Acceleration) Multimedia – OpenMax (SIMD, DSP or Hardware Codec) Power Management
  • 16. Optimization Example 0xlab intends to make use of several feature of OMAP 3530 on BeagleBoard (includes NEON, DSP, 3D and OMAP DSS2) to improve performance of graphics and multimedia on Android. And some features have been implemented. Rock the World! 0xlab!
  • 17. Q & A