2024年5月25日发(作者:闪静雅)
Anroid源码入门
因为项目的原因,本文以android-x86-1.6源码为目标讲解。如果是android源码或
者android-x86其它版本的源码,某些模块和本文会有差异,但是整体结构上(目前)是
一致的。
一, 获得Android源码
二, 初始Android源码
Android-x86-1.6(下面以android简称)的源码顶层目录如下:
bionic bootable build dalvik development external frameworks
hardware Makefile packages prebuilt system vendor
Bionic: bionic本意是仿生学的意思。在Android中,bionic目录存放的是基本的
C库的源码。Bionic库是Google为Android开发的c库,作为glibc的替代品,相对于
glibc,bionic有3优势:
License: glibc使用的是LGPL,而bionic使用的BSD
Andoird的源码大多采用了ASL和BSD,至于为什么没有采用GPL,可以参考下面
的文章。
2010/02/为什么android不是gpl许可证?/>
大小: 显然bionic要小,毕竟android是正对嵌入式平台,flash可不像硬盘动辄
几百G。
运行速度: 同样,Arm CPU的运行速度对这种底层的C库提出了更高的要求。
而且作为专门针对android开发的底层库,google可以在bionic中内建某些android
特性的支持。
总的来说,bionic相对于glic更轻量级,更适合android,且没有传染性。
这个目录在我们的开发只能算个路人,一般不会去修改里面的代码,甚至都不需要去
打开他。
Build:
Build目录存放的是build android源码过程中需要用到的各种脚本和工具。
这个目录对我们来说还是比较的重要的,虽然不一定会经常修改里面的代码,但是里
面的Makefile对于弄清楚android的编译流程是很有帮助的。
此目录的结构如下:
t core history libs
target tools
请记住core这个子目录,里面的一大堆Makefile在接下会接触到。不夸张的说,看
2024年5月25日发(作者:闪静雅)
Anroid源码入门
因为项目的原因,本文以android-x86-1.6源码为目标讲解。如果是android源码或
者android-x86其它版本的源码,某些模块和本文会有差异,但是整体结构上(目前)是
一致的。
一, 获得Android源码
二, 初始Android源码
Android-x86-1.6(下面以android简称)的源码顶层目录如下:
bionic bootable build dalvik development external frameworks
hardware Makefile packages prebuilt system vendor
Bionic: bionic本意是仿生学的意思。在Android中,bionic目录存放的是基本的
C库的源码。Bionic库是Google为Android开发的c库,作为glibc的替代品,相对于
glibc,bionic有3优势:
License: glibc使用的是LGPL,而bionic使用的BSD
Andoird的源码大多采用了ASL和BSD,至于为什么没有采用GPL,可以参考下面
的文章。
2010/02/为什么android不是gpl许可证?/>
大小: 显然bionic要小,毕竟android是正对嵌入式平台,flash可不像硬盘动辄
几百G。
运行速度: 同样,Arm CPU的运行速度对这种底层的C库提出了更高的要求。
而且作为专门针对android开发的底层库,google可以在bionic中内建某些android
特性的支持。
总的来说,bionic相对于glic更轻量级,更适合android,且没有传染性。
这个目录在我们的开发只能算个路人,一般不会去修改里面的代码,甚至都不需要去
打开他。
Build:
Build目录存放的是build android源码过程中需要用到的各种脚本和工具。
这个目录对我们来说还是比较的重要的,虽然不一定会经常修改里面的代码,但是里
面的Makefile对于弄清楚android的编译流程是很有帮助的。
此目录的结构如下:
t core history libs
target tools
请记住core这个子目录,里面的一大堆Makefile在接下会接触到。不夸张的说,看