Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
hbstudy# 28 SELinux HandsOn 公開版
Next

Share

Linuxカーネルから紐解くAndroid

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Linuxカーネルから紐解くAndroid

  1. 1. Linux Android 1
  2. 2. • • Web Android (?) •“ Android”• Android• twitter : @checkela 2
  3. 3. JAG 3
  4. 4. NDK• JNI • CPU architecture• NativeActivity• OpenGL|ES • Optimization (1.x,2.x) • NEON• OpenSL|ES• Sensor AndroidNDK 7/25 4
  5. 5. • Android Linux • Android Linux • Linux • Android ... http://www.androidproduction.com/ smartphones/the-tablets-can-be- used-in-honeycomb-mounted-with- linux.html 5
  6. 6. • Linux• Ubuntu• Android• Android Ubuntu• Android • ○○○ • ○○○ • ○○○ • ○○○• 6
  7. 7. http://www.flickr.com/photos/katclay/3934856523/( ) 7
  8. 8. Linux• Android • CPU • ( ) • GUI 8
  9. 9. • Linux• Ubuntu• Android• Android Ubuntu• Android • ○○○ • ○○○ • ○○○ • ○○○• 9
  10. 10. Ubuntu• Linux• Linux + GUI + + ...• PC Linux 10
  11. 11. • Linux• Ubuntu• Android• Android Ubuntu• Android • ○○○ • ○○○ • ○○○ • ○○○• 11
  12. 12. (1/3) 12
  13. 13. (2/3) 13
  14. 14. (3/3) 14
  15. 15. libraries Application FrameworkApplication Java JNI Linux Application Framework Linux API 15
  16. 16. • Linux• Ubuntu• Android• Android Ubuntu• Android • ○○○ • ○○○ • ○○○ • ○○○• 16
  17. 17. Android Ubuntu Android Ubuntu 2 1 OK PC 17
  18. 18. • Linux• Ubuntu• Android• Android Ubuntu• Android • ○○○ • ○○○ • ○○○ • ○○○• 18
  19. 19. Linux Ubuntu Android( ) Linux / 19
  20. 20. /•• Binder(IPC )••• ApplicationFramework ( logcat) http://elinux.org/Android_Kernel_Features 20
  21. 21. • Linux• Ubuntu• Android• Android Ubuntu• Android • • Binder • •• 21
  22. 22. • Linux• Ubuntu http://www.flickr.com/photos/ivanwalsh/4506526865/ 22
  23. 23. • • UID:GID • SandBox SandBox sa A B http://www.flickr.com/photos/katmere/117444001/ 23
  24. 24. • Linux• Ubuntu• Android• Android Ubuntu• Android • • Binder • •• 24
  25. 25. Binder• IPC(Internal Procedure Call) • • ls | sort -r• AIDL(Android Interface Definition Language), Intent• http://www.flickr.com/photos/mrvelocipede/501749557/ 25
  26. 26. BinderSandBox SandBox sa A B Intent Intent Intent AIDL AIDL Binder 26
  27. 27. • Linux• Ubuntu• Android• Android Ubuntu• Android • • Binder • •• 27
  28. 28. • Ubuntu • ...? 28
  29. 29. ( )• •• → CPU 29
  30. 30. wakelocks• Sleep ! • ) • (Java ) PowerManager pm = (PowerManager) getSystemService (Context.POWER_SERVICE); PowerManager.WakeLock wakeLock = pm.newWakeLock(         pm.SCREEN_DIM_WAKE_LOCK, "My wakelook"); 30
  31. 31. • Linux• Ubuntu• Android• Android Ubuntu• Android • • Binder • •• 31
  32. 32. Android Ubuntu Linux 512MB 1GB 16GB(Xperia acro) +swap 32
  33. 33. (Android)• • ashmem(android shared memory) • pmem(Physical Memory Allocator)• • Out of Memory Handling • LowMemoryKiller 33
  34. 34. (Android)• • ashmem(android shared memory) • pmem(Processor Memory Allocator)• • Out of Memory Handling • LowMemoryKiller 34
  35. 35. • ?• Ubuntu • OutOfMemory Handling• Android • OutOfMemory Handling • LowMemoryKiller 35
  36. 36. Ubuntu• • OutOfMemoryHandling • kill• OOM • • Swap 36
  37. 37. Android• • (Ubuntu ) • swap 37
  38. 38. Android Ubuntu Linux 512MB 1GB 16GB(Xperia acro) +swap 38
  39. 39. •••• ... 39
  40. 40. LowMemoryKiller••• 40
  41. 41. • & • > > content provider •• ? • /init.rc 41
  42. 42. /init.rc ( ) # Define the oom_adj values for the classes of processes that can be # killed by the kernel. These are used in ActivityManagerService. setprop ro.FOREGROUND_APP_ADJ 0 setprop ro.VISIBLE_APP_ADJ 1 setprop ro.SECONDARY_SERVER_ADJ 2 setprop ro.BACKUP_APP_ADJ 2 setprop ro.HOME_APP_ADJ 4 setprop ro.HIDDEN_APP_MIN_ADJ 7 setprop ro.CONTENT_PROVIDER_ADJ 14 setprop ro.EMPTY_APP_ADJ 15 # Define the memory thresholds at which the above process classes will # be killed. These numbers are in pages (4k). setprop ro.FOREGROUND_APP_MEM 1536 setprop ro.VISIBLE_APP_MEM 2048 setprop ro.SECONDARY_SERVER_MEM 4096 setprop ro.BACKUP_APP_MEM 4096 setprop ro.HOME_APP_MEM 4096 setprop ro.HIDDEN_APP_MEM 5120 setprop ro.CONTENT_PROVIDER_MEM 5632 setprop ro.EMPTY_APP_MEM 6144 42
  43. 43. • Linux• Ubuntu• Android• Android Ubuntu• Android • • Binder • •• 43
  44. 44. • PC Android Linux • Android• • 44
  45. 45. • 45
  • DaichiTsuzuki

    Feb. 9, 2021
  • ssuser2ca305

    Feb. 10, 2018
  • yotatoyama3

    Jun. 8, 2015
  • n-ima

    Nov. 13, 2014
  • shinobuokano7

    Dec. 16, 2013
  • kuniakikato9

    Sep. 1, 2013
  • takahiroyamashita9674

    May. 23, 2013
  • YutaNakamura1

    May. 16, 2012
  • tsutomukawabe

    Aug. 3, 2011
  • satoyaz

    Aug. 1, 2011
  • invent

    Jul. 19, 2011
  • sma_so

    Jul. 19, 2011
  • ShokoBessha

    Jul. 17, 2011

Views

Total views

9,319

On Slideshare

0

From embeds

0

Number of embeds

349

Actions

Downloads

1

Shares

0

Comments

0

Likes

13

×