1、首先得了解android體系結構 android
從下到上介紹上圖 less
Linux Kernel: 徹底開源,GPLv2協議 ionic
Libraryies: 含少許開源庫 ide
Android Runtime: android 優化的JAVA虛擬機,更適合嵌入式系統。 優化
Application Framework和Application都是JAVA程序。 網站
2、android如何規避GPLv2的傳染性 this
Linux內核的版權是GPLv2,可是Linus Torvalds在Linux內核的版權文件COPYING中最前面增長了下面一段話,保證了Linux內核的商業用途不被GPLv2傳染。 google
NOTE! This copyright does *not* cover user programs that use kernel
services by normal system calls - this is merely considered normal use
of the kernel, and does *not* fall under the heading of "derived work".
Also note that the GPL below is copyrighted by the Free Software
Foundation, but the instance of code that it refers to (the Linux
kernel) is copyrighted by me and others who actually wrote it.
Also note that the only valid version of the GPL as far as the kernel
is concerned is _this_ particular version of the license (ie v2, not
v2.2 or v3.x or whatever), unless explicitly otherwise stated.
Linus Torvalds
----------------------------------------
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991 spa
注意:這個版權不覆蓋經過正常系統調用來使用Linux內核服務的用戶程序。 code
有了這一點Linux內核的GPLv2不會傳染內核之上。
以上版權文件能夠到Linux Kernel的網站上下載: https://www.kernel.org/
通常的GNU/Linux上圖中的libc位置是glibc。
glibc是GNU的,屬於GPL受權,有傳染性。
libc是google 改寫優化的Free BSD Bionic庫,屬於BSD協議。能夠選擇性開源,也不具傳染性。
經過以上兩點,android很好的規避了GNU/Linux GPL協議的傳染性。