Android OS Architecture

Android OS Architecture

Overview of the Android Architecture layers and components:
- Kernel layer
- Hardware abstraction layer
- Native libraries
- Android Runtime layer
- Application framework layer
- Application layer

In addition to it during this talk, we will talk about the difference between JVM, Dalvik and ART; Linux and Android security model and trends of Android.

2b0404a5db1a74f01bf3bf94d142e28c?s=128

Alex Zhukovich

March 29, 2018
Tweet

Transcript

  1. Android OS Architecture @Alex_Zhukovich

  2. https://en.wikipedia.org/wiki/Andy_Rubin https://www.gv.com/team/rich-miner http://www.seriousbiz.com https://andro4all.com/2018/03/creadores-android-actualidad

  3. https://en.wikipedia.org/wiki/Google_logo https://opensource.org https://en.wikipedia.org/wiki/Open_Handset_Alliance

  4. Android versions • • • • • • • •

    • • • • • • •
  5. Android Architecture

  6. None
  7. Kernel level

  8. Hardware abstraction layer

  9. Native libraries

  10. Android Runtime

  11. Application framework

  12. Application layer

  13. None
  14. Dalvik vs ART

  15. Why do we need a Virtual Machine? VM

  16. Compilation JVM vs DVM Java Compiler (javac) Java Source Code

    (*.java) Java Bytecode (*.class) Java Virtual Machine Java Source Code (*.java) Java Bytecode (*.class) Dalvik Virtual Machine Dalvik Bytecode (*.dex) DEX Compiler Java Compiler (javac)
  17. Dalvik (Just In Time) vs ART (Ahead of Time) Installing

    Run Running... Compile Installing Run Running... Compile
  18. ART Benefits: • • • Drawbacks: • •

  19. Security

  20. UID/GID - Linux

  21. UID/GID - Linux

  22. UID/GID - Android <permission name="android.permission.INTERNET" > <group gid="inet" /> </permission>

    https://android.googlesource.com/platform/frameworks/base/+/master/data/etc/platform.xml
  23. Resources

  24. Sharing data and resources between applications

  25. Sharing data and resources between applications android:sharedUserId="com.example.test.sharedUID"

  26. Sharing data and resources between applications android:sharedUserId="com.example.test.sharedUID"

  27. SharedPreferences isolation

  28. SharedPreferences isolation /data/data/package_name/shared_prefs/

  29. /data/data/package_name/shared_prefs/prefs <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <map> <int name="theme" value="0"

    /> </map> val sharedPreferences = getSharedPreferences( "prefs", Context.MODE_PRIVATE) sharedPreferences .edit() .putInt( "theme", 0) .apply()
  30. Database isolation /data/data/package_name/databases/

  31. Trends

  32. None
  33. Q&A 1. 2.