How many lines of code does it take to create the Android OS?

May 23rd, 2010 18 minutes reading time.


This is a report done on all the projects that make up for the android project, my copy of it is synced as of May 23rd 2010, 6pm

--------------------------------------------------------------------------------
Language                      files          blank        comment           code
--------------------------------------------------------------------------------
XML                            4130          26919          62996        3044624
C                              7191         494387         685731        2826741
Java                          16473         423278         986294        2084883
C++                            5623         349754         385625        1754053
C/C++ Header                  12278         300773         653608        1153456
HTML                           2325          13539          14681         348935
Bourne Shell                    501          45684          46947         317410
Javascript                     1717          41901          76306         208012
Assembly                       1704          18732          51392          96700
D                              2181          16936             24          59142
m4                              116           6026           1813          49502
Perl                            221           8189           8246          40058
Python                          236           9805          14225          38852
make                            381           6844           3837          37059
IDL                             421           3128              0          24181
Objective C                      93           2804           3371          10032
yacc                             15           1300            742           9660
CSS                              42           1760            617           8566
Teamcenter def                   41            631             95           5430
C#                               93            863            537           5283
Bourne Again Shell               99            569           1643           3784
lex                              21            776            754           3492
Expect                           20            105            168           2170
Ada                              10            599            560           1681
Ruby                             14            393            228           1433
XSLT                              8            105            110           1328
XSD                               7            182            359           1048
Pascal                            4            218            200            985
DOS Batch                        34            252            399            911
awk                              14             92            198            899
DTD                               9             66             42            289
sed                               9             32            143            277
Korn Shell                        1             39             46            223
Lisp                              2             32              5            144
MSBuild scripts                   1              1              0            140
NAnt scripts                      2             10              0             89
ASP.Net                           3              5              0             76
YAML                              6             27             42             66
SQL                               1              5              0             21
PHP                               1              0              0              3
--------------------------------------------------------------------------------
SUM:                          56048        1776761        3001984       12141638
--------------------------------------------------------------------------------

Update

It seems like this post got some attention on Reddit, YCombinator news and other sites on monday. I hadn’t noticed until today, so here are some answers to many of the FAQs about the post.

Yes it was done using cloc. Don’t shoot me I’m just the messenger.

It was run at the base folder of the entire Android OS source checkout, so yes it will include sample and tests I suppose.

C#, Ada, Objective-C? I also thought the same… It’s probably worth the try doing a few finds and greps to see if this is true, again I just posted the output of cloc, I didn’t intend to make this a scientific paper, just a fun and curious post to get a rough number on the lines of code, that breakdown was just icing on the cake for me (as inaccurate as it maybe)

Update
This post is now being referenced in Wikipedia! on the “Android (operating system)” article.

About Gubatron & Android
Ever since the iPhone OS handicapped millions of smartphone devices with its draconian laws, I started looking more and more seriously at Android as THE platform for every non-iPhone device coming to the mobile and TV space. Now I’m part of the developer team of FrostWire for Android, an application that exploits all the power of the device and the freedoms of the platform to allow people to connect and share.

23 Responses to “How many lines of code does it take to create the Android OS?”

  1. Ross Says:

    ASP.Net ? Objective C? Ada?

    How bizarre.

  2. Craig Says:

    Answer: 1 line of Ruby? Hahaha, just kidding. ;)

  3. kc Says:

    Are you including the sample code and data in this count? 3 million lines of XML code seems a bit high unless you’re counting sample data.

  4. BoD Says:

    C# ?????

  5. How many lines of code does it take to create the Android OS? « Metawave Blog Says:

    […] http://www.gubatron.com/blog/2010/05/23/how-many-lines-of-code-does-it-take-to-create-the-android-os… […]

  6. Bookmarks for May 28th through May 29th | PHPkitchen Says:

    […] How many lines of code does it take to create the Android OS? – Gubatron.com – Quite a nice way to show, in one table, how complex a project actually is. Wonder what the Objective-C is for? […]

  7. Nico Says:

    Did you measure only the part of Android that is downloaded via the repo tool, or all 242 git projects? My count using cloc for the latter was substantially higher:
    SUM: 380827 14403252 19160933 77345274

  8. Five Theories Why Microsoft Won't Support Windows Phone 7 for Tablets | ZDNet Says:

    […] meanwhile, uses just over 12 million lines of code. To get Windows 7 down to the same size as Android, you’d have to hack off approximately 98% […]

  9. Saiyine Says:

    XML is not a programming language.

  10. gubatron Says:

    XML can be used as a programming language. It’s all how you interpret it. The fact that most people use it as data or metadata doesn’t mean you can’t create a programming language using tags.

    In platforms like Android it’s used plenty as a support in the programming of your user interfaces. You define a set of steps on how your UI layout will be, that to me is a program. If you’ve ever used stuff like ant, then you will also consider XML as a programming language.

  11. bonch Says:

    “Ever since the iPhone OS handicapped millions of smartphone devices with its draconian laws, I started looking more and more seriously at Android as THE platform for every non-iPhone device coming to the mobile and TV space. Now I’m part of the developer team of FrostWire for Android, an application that exploits all the power of the device and the freedoms of the platform to allow people to connect and share.”

    Handicapped millions of smartphones? Draconian laws? Freedom to connect and share? You sound like every left-wing, head-in-the-clouds Google fanboy who ignores how fragmented and buggy Android is because you think it’s “open” and not controlled by carriers.

  12. gubatron Says:

    You tell me if you want to spend 6 months of your life developing an app that could be rejected. Screw that.

    Buggy? Fragmented?

    My apps are running fine on thousands of phones and tablets, if there’s an issue it can easily be fixed.

    I rather have freedom of choice and deal with it’s costs than be hand tied and have an overly expensive hardware that can’t do much.

    Apple is on it’s way to repeat its doom of the 80s, it’s going to divide the camp of developers for MacOSX with the Market. Now you’ll get the same Fart App, Cookie cutter One App that gets counted a thousand times as different app type of developer to come and pollude the MacOSX pristine environment which got to succeed because it embraced freedom and standards. If they’re lucky, they’ll get the same Trigger-buyAnApp-happy customers to buy the same shit they got on their iPhone this time on the desktop.

    There’s thousands of existing apps that will never fit the Draconian restrictions.

    And hell to the no, “god” save me from being a left-wing Google fan boy. I just tell it like it is, I’m immune to Apple’s Reality Distortion Field. I like what makes sense from them and google, and I hate what doesn’t.

  13. gwawan Says:

    php just 3 code ??? very interesting

  14. Android 3.0 Honeycomb « Júnior MSDN Says:

    […] Gubatron.com (23 de maio de 2010). How many lines of code does it take to create the Android OS?. Página visitada em […]

  15. c0d3r Says:

    3 lines of PHP !!!!
    I suppose it’s something like that:

    This (the report above) is an excellent example how the information we get in net can be totally useless e wrong.

  16. c0d3r Says:

    In my last post the 3 lines of php are missing.
    I’m try to write again.

    1:

  17. Microsoft’s Android Shakedown – Forbes (blog) | IT Blog Says:

    […] infringing Microsoft’s patents, but that’s not how software patents work. Android has roughly 10 million lines of code. Auditing 10 million lines of code for compliance with 18,000 patents is an impossible […]

  18. Microsoft’s Android Shakedown Says:

    […] infringing Microsoft’s patents, though that’s not how program patents work. Android has roughly 10 million lines of code. Auditing 10 million lines of formula for correspondence with 18,000 patents is an unfit […]

  19. Patently Absurd: America’s Bizarre Intellectual Property Laws Says:

    […] Microsoft’s patents, but that’s not how software patents work. Android has roughly 10 million lines of code. Auditing 10 million lines of code for compliance with 18,000 patents is an impossible […]

  20. Microsoft’s Android Shakedown – Forbes (blog) | Information and Technology Blog Says:

    […] infringing Microsoft’s patents, but that’s not how software patents work. Android has roughly 10 million lines of code. Auditing 10 million lines of code for compliance with 18,000 patents is an impossible […]

  21. All the world is made of faith, and trust, and pixie dust « A Collection of Bromides on Infrastructure Says:

    […] OSes offer a vast attack surface (About 50 MLOC for Windows, and about 10 MLOC for Android).   Complex specifications, buggy coding, and incomplete testing mean they ship with about 1 […]

  22. Android: Microsoft’s most profitable mobile OS. | Driftvalley Says:

    […] Android has over 10,000 lines of code. Android, like every large software product on the planet, infringes numerous Microsoft patents. And Microsoft is taking full advantage. They’re visiting Android licensees and giving the same sales pitch the IBM team gave Sun in the 1980s. […]

  23. VMs – The New Infrastructure Anachronism (2/2) End User Computing | A Collection of Bromides on Infrastructure Says:

    […] own latent vulnerability: Their kernels offer a vast attack surface (~50 MLOC for Windows, and ~10 MLOCfor Android).   Rich feature sets appeal to users, but introduce […]

Leave a Reply