Androidソースの行数、再び
自分でももう少しソースの行数を丁寧に数えてみることにした
まずどんな種類のファイルがあるのか調べた。
$ find . -type f |sed 's/.*\.//' | sort | uniq -c |sort -r |head -20 17648 h 15189 c 7998 java 3764 cpp 2151 png 2114 txt 1756 S 1643 xml 1307 js 946 html 707 tmpl 698 mk 598 res 361 idl 347 0 228 php 227 in 199 git/HEAD 195 sh 189 gif $
このうち、ソースとして行数をカウントすべきものは、c, h, cpp, S, java だと思うのでそれぞれカウントしてみる。
$ find . -name "*.[ch]" -o -name "*.cpp" | xargs -l wc |awk '{ sum += $1} END {print sum}' 13720351 $ find . -name "*.S" | xargs -l wc |awk '{ sum += $1} END {print sum}' 523236 $ find . -name "*.java" | xargs -l wc |awk '{ sum += $1} END {print sum}' 1909260 $
約1600万行。
Linux kernelは巨大で、それをまるごとandroidのソース行数としてカウントするには異論もあると思うので、Linux kernelをのぞいた場合もカウントしてみる。
$ find . ! -path './kernel/*' -name "*.[ch]" -o -name "*.cpp" | xargs -l wc |awk '{ sum += $1} END {print sum}' 5597713 $ find . ! -path './kernel/*' -name "*.S" | xargs -l wc |awk '{ sum += $1} END {print sum}' 221402 $ find . ! -path './kernel/*' -name "*.java" | xargs -l wc |awk '{ sum += $1} END {print sum}' 1909260 $
約770万行。
どこかでGoogleは800万行と言っていたそうなので、だいたいこんな感じかな。
関連ページ
Androidソースの行数 - 組み込みの人。
[Android] Androidのソースコード - Project Hews by 木南英夫