Your SlideShare is downloading. ×
Learning AOSP - Android Linux Device Driver
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Learning AOSP - Android Linux Device Driver

1,776
views

Published on

Presentation for Android Australia Sydney group on 22/August/2013 at fishburners.org

Presentation for Android Australia Sydney group on 22/August/2013 at fishburners.org

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,776
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
60
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Learning AOSP Android Linux Device Drivers 22nd August 2013 August 2013 @nanikjava ozandroid.info bit.ly/12r7yOr
  • 2. ANDROID & LINUX
  • 3. ANDROID LINUX DRIVERS  Android core low level  Software & Hardware drivers (mostly software)  Minimum tasks performed  Access via framework layer or library
  • 4. MAINLINE VS VENDOR LINUX  v3.3 driver merge (excl wakelock)  v3.5 wakelock merge  Patch prior to v3.5 (different directory)  Vendor “normally” releases Linux kernel
  • 5. ANDROID DRIVERS  ashmem (mm/ashmem.c)  binder (drivers/staging/android/binder.c)  lowmemorykiller (drivers/staging/android/lowmemorykiller.c)  ram_console (drivers/staging/android/ram_console.c)  timed_gpio (drivers/staging/android/timed_gpio.c)  usb – otg, adb, gadget, accessories, etc (drivers/usb/gadget)  logger (drivers/staging/android/logger.c)  alarm (drivers/staging/android/alarm.c)  wakelock (kernel/power/wakelock.c)
  • 6. LAYERS INTERACTION
  • 7. BINDER  Kernel  drivers/staging/binder.c  Framework  frameworks/base/core/java/android/os/Binder.java  frameworks/base/core/jni/android_util_Binder.java  frameworks/native/cmds/servicemanager/binder.c  frameworks/native/cmds/servicemanager/service_manager.c  Virtual Filesystem  /sys/kernel/debug/binder → debugging  /dev/binder → used internally by framework
  • 8.  Kernel  drivers/staging/android/logger.c  Framework  frameworks/base/core/java/android/util/Log.java  frameworks/base/core/jni/android_util_Log.cpp  system/core/liblog/logd_write.c  Virtual Filesystem  /dev/events  /dev/main  /dev/radio  /dev/system LOGGER
  • 9. USB
  • 10. LINUX CONFIG  CONFIG_ANDROID=y  CONFIG_ANDROID_BINDER_IPC=y  CONFIG_ASHMEM=y  CONFIG_ANDROID_LOGGER=y  CONFIG_ANDROID_TIMED_OUTPUT=y  CONFIG_ANDROID_LOW_MEMORY_KILLER=y
  • 11. BENEFITS  Troubleshooting/Debugging  Extending framework and/or services  Helped in writing native code
  • 12. RESOURCES  source.android.com  androidxref.com  Source code