现在的位置: 首页 > 综合 > 正文

Android源码Makefile分布统计

2013年06月27日 ⁄ 综合 ⁄ 共 5172字 ⁄ 字号 评论关闭

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)
..............................................................

抱歉!评论已关闭.