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 木南英夫