Android源码怎么编译adb?

编译系统是Ubuntu 16.04,64位,Android源码版本为5.0.2和4.4。

 

编译adb不需要先把整个源码都编译通过,下载到的源码直接就可以编出adb。

 

下面是编译过程:

1. 在终端cd到Android源码根目录

2. 准备编译环境

 

# source ./build/envsetup.sh
# lunch然后选择某个版本

 

3. 编译adb

有几种方式:

方式1:

# make -j8 adb

 

方式2:

# mmm system/core/adb/

 

 

方式3:

# cd system/core/adb/

# mm

 

最后生成的adb文件:out/host/linux-x86/bin/adb。

 

3种编译方式对比:

只对一行代码加注释,3者的速度:方式1为1m17s,方式2和方式3为2s。

方式1最慢的原因是会遍历一堆Android.mk文件,这个过程相当耗时。。。,最后才真正编译adb。

方式2和方式3差不多,都很快。

 

推荐使用方式3:因为是在adb目录下,可以随时用vi修改文件,用git查看文件的修改情况,即使想回到源码根目录也可以通过croot迅速实现,然后cd -又回到adb目录。

 

7.1.2的系统只能使用第1种方式,后两种方式会提示错误:

ninja: error: 'out/target/product/generic_arm64/obj/SHARED_LIBRARIES/libc++_intermediates/export_includes', needed by 'out/target/product/generic_arm64/obj/STATIC_LIBRARIES/libadbd_intermediates/import_includes', missing and no known rule to make it
make: *** [ninja_wrapper] Error 1

 

 

暂时不知道怎么解决,有解决方法的同学欢迎留言。

你可能感兴趣的:(Android源码怎么编译adb?)