Android源码Makefile分布统计

本文档展示了如何使用shell脚本来统计Android源码中所有.mk文件的数量,并详细列出每个目录下的.mk文件列表及内容。同样,对于Linux 2.6.30源码,也进行了类似的Makefile统计。统计结果显示,Android 1.5源码中.mk文件总计1018个,主要分布在frameworks、external、system等目录下。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、执行如下指令可以统计Android源码目录下的 所有的mk文件的总数及其内容(这是分析源码的很好的工具)

for i in `find . -maxdepth 1 -type d`
do
 echo $i
 mkdir -p ~/Desktop/android_mk/$i
 find $i -type f -name "*.mk" -print | echo -e ""$i" Total is:`wc -l`" >> ~/Desktop/android_mk/total_mk_list_about.txt
 find $i -type f -name "*.mk" -print | echo -e "/n"$i"'s Android.mk Total number is:`wc -l`/n" > ~/Desktop/android_mk/$i/"$i"_mk_list.txt
 find $i -type f -name "*.mk" -print >> ~/Desktop/android_mk/$i/"$i"_mk_list.txt
 find $i -type f -name "*.mk" -printf "/n# ============================================================/n# " -print -printf "# ============================================================/n/n" -exec cat {} /; >> ~/Desktop/android_mk/$i/"$i"_mk_content.txt
done

mv ~/Desktop/android_mk/._mk_content.txt ~/Desktop/android_mk/total_mk_content.txt
mv ~/Desktop/android_mk/._mk_list.txt ~/Desktop/android_mk/total_mk_list.txt

 

同理,如果我们要分析linux源码,可以执行:

for i in `find . -maxdepth 1 -type d`
do
 echo $i
 mkdir -p ~/Desktop/linux_Makefile/$i
 find $i -type f -name "Makefile" -print | echo -e ""$i" Total is:`wc -l`" >> ~/Desktop/linux_Makefile/total_Makefile_list_about.txt
 find $i -type f -name "Makefile" -print | echo -e "/n"$i"'s Makefile Total number is:`wc -l`/n" > ~/Desktop/linux_Makefile/$i/"$i"_Makefile_list.txt
 find $i -type f -name "Makefile" -print >> ~/Desktop/linux_Makefile/$i/"$i"_Makefile_list.txt
 find $i -type f -name "Makefile" -printf "/n# ============================================================/n# " -print -printf "# ============================================================/n/n" -exec cat {} /; >> ~/Desktop/linux_Makefile/$i/"$i"_Makefile_content.txt
done

mv ~/Desktop/linux_Makefile/._Makefile_content.txt ~/Desktop/linux_Makefile/total_Makefile_content.txt
mv ~/Desktop/linux_Makefile/._Makefile_list.txt ~/Desktop/linux_Makefile/total_Makefile_list.txt

 

以2.6.30源码为例,结果为:

linux2.6.30 Total is:1143
|-net Total is:60
|-usr Total is:1
|- block Total is:1
|- firmware Total is:1
|- kernel Total is:5
|- include Total is:0
|- Documentation Total is:16
|- ipc Total is:1
|- mm Total is:1
|- drivers Total is:394
|- lib Total is:5
|- security Total is:7
|- init Total is:1
|- sound Total is:81
|- arch Total is:480
|- scripts Total is:9
|- samples Total is:5
|- virt Total is:0
|- fs Total is:72
|- crypto Total is:2

 

2、Android1.5源码包含的mk文件总数及其列表如下:

android Total is:1018
|- frameworks Total is:90
|- external Total is:535
|- system Total is:57
|- hardware Total is:16
|- packages Total is:47
|- bootable Total is:18
|- build Total is:92
|- bionic Total is:10
|- out Total is:2
|- development Total is:107
|- dalvik Total is:26
|- prebuilt Total is:18

 

android's Android.mk Total number is:1018

./frameworks/policies/base/phone/Android.mk
./frameworks/policies/base/mid/Android.mk
./frameworks/policies/base/PolicyConfig.mk
./frameworks/base/media/tests/MediaFrameworkTest/Android.mk
./frameworks/base/media/libmediaplayerservice/Android.mk
./frameworks/base/media/libdrm/Android.mk
./frameworks/base/media/libdrm/mobile2/Android.mk
./frameworks/base/media/libdrm/mobile1/Android.mk
./frameworks/base/media/mediaserver/Android.mk
./frameworks/base/media/jni/Android.mk
./frameworks/base/media/jni/soundpool/Android.mk
./frameworks/base/media/libmedia/Android.mk
./frameworks/base/media/sdutils/Android.mk
./frameworks/base/opengl/libagl/Android.mk
./frameworks/base/opengl/tests/angeles/Android.mk
./frameworks/base/opengl/tests/Android.mk
./frameworks/base/opengl/tests/finish/Android.mk
./frameworks/base/opengl/tests/filter/Android.mk
./frameworks/base/opengl/tests/tritex/Android.mk
./frameworks/base/opengl/tests/textures/Android.mk

.....................................................................................................

 

3、如framewoks目录下,统计出的mk总数及其文件内容格式如下:

./frameworks's Android.mk Total number is:90

./frameworks/policies/base/phone/Android.mk
./frameworks/policies/base/mid/Android.mk
./frameworks/policies/base/PolicyConfig.mk
./frameworks/base/media/tests/MediaFrameworkTest/Android.mk
./frameworks/base/media/libmediaplayerservice/Android.mk
./frameworks/base/media/libdrm/Android.mk
./frameworks/base/media/libdrm/mobile2/Android.mk
./frameworks/base/media/libdrm/mobile1/Android.mk
./frameworks/base/media/mediaserver/Android.mk
./frameworks/base/media/jni/Android.mk
./frameworks/base/media/jni/soundpool/Android.mk
./frameworks/base/media/libmedia/Android.mk
./frameworks/base/media/sdutils/Android.mk
./frameworks/base/opengl/libagl/Android.mk
./frameworks/base/opengl/tests/angeles/Android.mk

........................................................................


# ============================================================
# ./frameworks/policies/base/phone/Android.mk
# ============================================================

LOCAL_PATH:= $(call my-dir)

# the library
# ============================================================
include $(CLEAR_VARS)

LOCAL_SRC_FILES := /
            $(call all-subdir-java-files)

LOCAL_MODULE := android.policy_phone
LOCAL_UNINSTALLABLE_MODULE := true

include $(BUILD_JAVA_LIBRARY)

# ============================================================
# ./frameworks/policies/base/mid/Android.mk
# ============================================================

LOCAL_PATH:= $(call my-dir)

# the library
# ============================================================
include $(CLEAR_VARS)

LOCAL_SRC_FILES := /
            $(call all-subdir-java-files)

LOCAL_MODULE := android.policy_mid
LOCAL_UNINSTALLABLE_MODULE := true

include $(BUILD_JAVA_LIBRARY)
..............................................................

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值