Nexus-5的B2G OS(FireFox OS)与Android4.4.4系统源码目录对比

1. 前提

    1、准备一台Nexus 5手机。

    2、准备B2G OS v2.6版的nexus-5系统源码:FireFox OS(B2G)源码获取与Build code

    3、Android4.4.4的系统:Android源码编译之Nexus5真机编译

    4、之所以让B2G OS v2.6与Android4.4.4对比,是因为B2G OS v2.6底层是在Android4.4.4基础上移植来的,在他们之间对比比较有针对性;至少在源码目录上对比其间的差别。

 

2. 对比源码目录

2.1 对比源码根目录

    上图为B2G系统源码根目录:~/Project/aosp_android_4.4.4/

    下图为Android4.4.4系统源码根目录:~/Project/B2G_nexus-5/

    

    1、还是Android的源码目录看着干净些,而B2G OS在其根目录上加了好多用于下载、编译系统的脚本文件(因为B2G的编译只要一条build.sh -j16命令即可,但其实现原理和Android一样,只是封装了Android编译时的那些source build/envsetup.sh 、 lunch 、make -j16等动作)。所以根目录表面的这些脚本文件不用管了。

    2、其它目录:

        保留:

        /abi、/bionic、/bootable、/build、/dalvik、/device、/external、/frameworks、/hardware、

        /libcore、/libnativehelper、/ndk、/prebuild、/system、/tools、/verdor

        删除:

        /art、/cts、/developers、/development、/docs、/packages、/pdk、/sdk

        增加:

        /download-nexus-5、/gaia、/gecko、/gonk-misc、/librecovery、/rilproxy、/scripts

2.2 对比保留部分代码

2.2.1 对比源码/abi、/bionic、/build、/ndk、/vendor、/libcore、/libnativehelper、

/目录

    在这两个目录中分别执行tree命令,发现两个系统的这两个目录完全相同。其中,

        /abi :abi相关代码,Application binary interface,应用程序二进制接口。

        /bionic:bionic库。

        /build:存放系统编译规则及geneic等基础开发配置包。

        /ndk:ndk相关代码。Android Native Development Kit 允许开发人员在Android应用程序中嵌入c/c++ 语言编写的非托管代码。

        /vendor:厂商制定代码。

2.2.2 对比源码/bootable目录

    其中主要是recovery的源码,在刷机方面,B2G系统和Android完全相同,也是使用fastboot或者通过recovery进行刷机。注意,其中bootloader的代码被OEM厂商控制,并没有开源出来。

    由此也可看出,B2G OS的刷机依然是来自Android的那一套机制来支撑。

2.2.3 对比源码/dalvik目录

    B2G OS代码的dalvik中只有一个fake_dvm,根据B2G系统性质,启动后并没有去启动Android虚拟机,他并不需要Android虚拟机支持,它是个网页系统。

2.2.4 对比源码/device目录

    device目录下存放着设备相关代码,B2G OS代码中移除了原来Android系统中包含但当前系统无用的其它厂商的代码。

2.2.5 对比源码/external目录

    external目录下存放着Android使用的一些开源的模组,B2G OS代码中移除了原来Android系统中包含但当前系统无用的开源模组。

2.2.6 对比源码/framework目录

framework目录下删除了compile、ex、mff、ml、rs、support、testing、volley、webview,其余的av、base、native、opt、wilhelm完全相同。

2.2.7 对比源码/system目录

system目录下增加了bluetoothd、libfdio、libpdu、nfcd、sensorsd,这些是Mozilla公司添加进去的(可查看其中每个目录下的PORTING、README等文档),其余目录中的文件完全相同。

2.2.8 对比源码/hardware目录

    hardware中移除了akm、samsung_slsi、ti的部分,其他部分完全相同,只是增加了一个libhardware_moz(其中只有一个b2g_bdroid_buildcfg.h)

2.2.9 对比源码/prebuilts

但发现B2G中的prebuilts目录居然有33G这么大,查了下原因是在prebuilts/tools/.git/object中有几个很大的文件(整个.git文件夹居然有22G这么大。。。),我就把它删掉了,这些文件什么用暂时未知,删掉无所谓,不影响系统。

2.2.10 对比源码/tools

tools目录下,Mozilla公司添加了一些.py脚本工具。

2.3 对比删除部分代码

/art:Android新的虚拟机,后期Android系统弃用了dalvik。

/cts:Android兼容性测试套件标准。

/developers:应用程序开发相关。

/development:应用程序开发相关。

/docs:介绍开源的相关文档。

/packages:应用程序包。

/pdk:Plug Development Kit的缩写,是本地开发套件。

/sdk:SDK及模拟器。

2.4 对比增加部分代码

/download-nexus-5:

/gaia:B2G OS architecture

/gecko:B2G OS architecture

/gonk-misc:参考GonkB2G OS architecture

/librecovery:B2G OS architecture

/rilproxy:B2G OS architecture

/scripts:B2G OS architecture

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小馬佩德罗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值