Android internals 02 - High-level architecture, version control system (rev_1.1)

3,874 views

Published on

Course: Android Internals
Lecture 2: High-level architecture, version control system

Published in: Education, Technology
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,874
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
336
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Android internals 02 - High-level architecture, version control system (rev_1.1)

  1. 1. Android internals Egor Elizarov SPbSU 2012
  2. 2. Legal info Android internals by Egor Elizarov is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License You are free to – copy, distribute, display, and perform the work – make derivative works Under the following conditions – Attribution. You must give the original author credit – Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one All pictures and trademarks are the property of their respective owners. Use of these trademarks and pictures is subject to owners permissions. Corrections, suggestions, contributions and translations are welcome! 2 Egor Elizarov SPbSU 2012
  3. 3. Lecture 2 High level Android architecture. Android control version system. yegor.yelizarov(at)gmail.comRev: 1.1Last update: 05/30/2012 http://vk.com/android_internals 3 Egor Elizarov SPbSU 2012
  4. 4. Previous time OS functions Mobile OS features Perepherial devices Source: beagleboard.org SoC, BSP, Single Board Computer, Eval. Board 4 Egor Elizarov SPbSU 2012
  5. 5. Android history 2004 - Android Inc. by Andy Rubin 2005 - Android Inc. acquisition 2007 - Open Handset Alliance September 2008 - Android 1.0 on HTC G1 February 2011 - Android 3.0 for tablets Source: http://en.wikipedia.org/wiki/Andy_Rubin October 2011 - Android 4.0 (merge phone and tablet versions) 5 Egor Elizarov SPbSU 2012
  6. 6. Some acronyms Android Open Source Project (AOSP) Android Software Development Kit (SDK) Native Development Kit (NDK) API Level (current 15) 6 Egor Elizarov SPbSU 2012
  7. 7. Android versions Cupcake (1.5)  Gingerbread (2.3) Donut (1.6)  Honeycomb (3.0-3.2) Android Open Source Project (AOSP) Android Software Development Kit (SDK) Native Development Kit (NDK) Eclair (2.0 - 2.1)  Ice cream sandwich (4.0) FroYo (2.2)  Jelly Bean (5.0) ? 7 Egor Elizarov SPbSU 2012
  8. 8. High level architecture Android Open Source Project (AOSP) Android Software Development Kit (SDK) Native Development Kit (NDK) 8 Egor Elizarov SPbSU 2012
  9. 9. High level architecture (2) Android Open Source Project (AOSP) Android Software Development Kit (SDK) Native Development Kit (NDK) Source: developer.android.com 9 Egor Elizarov SPbSU 2012
  10. 10. Android OS development 10 Egor Elizarov SPbSU 2012
  11. 11. Android OS bring up 11 Egor Elizarov SPbSU 2012
  12. 12. Code licenses GNU GPLv2 (kernel) LGPL & GPL (external libraries) BSD (bionic, toolbox) Apache 2.0 license (framework) 12 Egor Elizarov SPbSU 2012
  13. 13. Android compatibility Google apps only on branded devices Google logo only on branded devices Compatibility Test Suite Compatibility Definition Document 13 Egor Elizarov SPbSU 2012
  14. 14. Android version control system Based on repo & git ~ 220 git trees Repo provides functionality to work with multiple git trees Gerrit code review system 14 Egor Elizarov SPbSU 2012
  15. 15. Git workflow 15 Egor Elizarov SPbSU 2012
  16. 16. Git workflow (2) git clone git branch -a git checkout -b local_branch remote_branch Make changes git add list_of_files git commit git push 16 Egor Elizarov SPbSU 2012
  17. 17. Manifest file  Project - single project Remote - server description description Fetch - server URL  Path — directory to unpack Android Open Source Project (AOSP) Revisoin - git branch  Name — project name to Android Software Development Kit (SDK) Native Development Kit (NDK) obtain sources 17 Egor Elizarov SPbSU 2012
  18. 18. Repo workflow repo init -u URL -m Manifest.xml -b Branch repo sync repo start --all local_branch Make changes -> git add -> git commit repo upload 18 Egor Elizarov SPbSU 2012
  19. 19. Patch life Create patch Send for review (repo upload) Recieve review & approve in Gerrit Patch will be automatically uploaded by Gerrit after approve 19 Egor Elizarov SPbSU 2012
  20. 20. Repo tricks repo forall -c env repo manifest -r -o descriptive-name.xml 20 Egor Elizarov SPbSU 2012
  21. 21. Android code lines Source: http://source.android.com/source/code-lines.html 21 Egor Elizarov SPbSU 2012
  22. 22. Getting ICS AOSP code curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo chmod a+x ~/bin/repo mkdir AOSP cd AOSP repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.3_r1 repo sync 22 Egor Elizarov SPbSU 2012
  23. 23. Code layout Frameworks — frameworks code Build — build system files External — external projects and libraries Device — device specific build/runtime configuration System — ”Embedded linux” platform part 23 Egor Elizarov SPbSU 2012
  24. 24. Next time Android build system Android Emulator 24 Egor Elizarov SPbSU 2012
  25. 25. Useful links http://vk.com/android_internals http://www.openhandsetalliance.com http://source.android.com/compatibility/cts-intro.html http://source.android.com/source/overview.html http://source.android.com/source/using-repo.html K. Yaghmour. Embedded Android. Early Release, OReilly, October 2011 http://source.android.com/source/downloading.html http://source.android.com/source/code-lines.html http://code.google.com/p/gerrit/ 25 Egor Elizarov SPbSU 2012
  26. 26. Thanks to Sergey Matyukevich for review and advices (www.linkedin.com/pub/sergey- matyukevich/31/889/769) Nikolay F. Fominykh for review and advices 26 Egor Elizarov SPbSU 2012

×