JetBrains / android
Source Code Overview

Analysis scope, overview of main, test, generated, deployment, build, and other code.

Source Code Analysis Scope
Files includes and excluded from analyses
txt
properties
pro
dcl
proto
flex
smali
ini
editorconfig
nsh
cfg
gitattributes
gv
xsd
patch
nsi
Overview of Analyzed Files
Basic stats on analyzed files
Intro
For analysis purposes we separate files in scope into several categories: main, test, generated, deployment and build, and other.

  • The main category contains all manually created source code files that are being used in the production.
  • Files in the main category are used as input for other analyses: logical decomposition, concerns, duplication, file size, unit size, and conditional complexity.
  • Test source code files are used only for testing of the product. These files are normally not deployed to production.
  • Build and deployment source code files are used to configure or support build and deployment process.
  • Generated source code files are automatically generated files that have not been manually changed after generation.
  • While a source code folder may contain a number of files, we are primarily interested in the source code files that are being written and maintained by developers.
  • Files containing binaries, documentation, or third-party libraries, for instance, are excluded from analysis. The exception are third-party libraries that have been changed by developers.

main1870017 LOC (44%) 36,221 files
test148440 LOC (3%) 2,149 files
generated12478 LOC (<1%) 31 files
build and deployment46559 LOC (1%) 3,801 files
other2156631 LOC (50%) 3,078 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
proto
flex
dcl
nsi
nsh
smali
pro
xsd
cfg
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 36221 files match defined criteria (1,870,017 LOC, 100.0% vs. main code):
    • 9,945 *.kt files (967,603 LOC)
    • 7,313 *.java files (586,069 LOC)
    • 16,172 *.xml files (261,112 LOC)
    • 1,991 *.kts files (16,920 LOC)
    • 40 *.proto files (9,563 LOC)
    • 52 *.cc files (6,663 LOC)
    • 29 *.bzl files (5,148 LOC)
    • 70 *.h files (3,294 LOC)
    • 26 *.py files (2,947 LOC)
    • 174 *.toml files (2,669 LOC)
    • 12 *.flex files (1,695 LOC)
    • 21 *.cpp files (1,602 LOC)
    • 217 *.dcl files (1,196 LOC)
    • 1 *.nsi files (941 LOC)
    • 82 *.html files (783 LOC)
    • 3 *.js files (388 LOC)
    • 8 *.yaml files (329 LOC)
    • 3 *.nsh files (311 LOC)
    • 5 *.smali files (224 LOC)
    • 3 *.c files (215 LOC)
    • 47 *.pro files (200 LOC)
    • 1 *.rs files (118 LOC)
    • 1 *.xsd files (12 LOC)
    • 1 *.css files (7 LOC)
    • 2 *.cfg files (4 LOC)
    • 2 *.groovy files (4 LOC)
  • " *.kt" is biggest, containing 51.74% of LOC.
  • " *.groovy" is smallest, containing 0% of LOC.


*.kt967603 LOC (51%) 9,945 files
*.java586069 LOC (31%) 7,313 files
*.xml261112 LOC (13%) 16,172 files
*.kts16920 LOC (<1%) 1,991 files
*.proto9563 LOC (<1%) 40 files
*.cc6663 LOC (<1%) 52 files
*.bzl5148 LOC (<1%) 29 files
*.h3294 LOC (<1%) 70 files
*.py2947 LOC (<1%) 26 files
*.toml2669 LOC (<1%) 174 files
*.flex1695 LOC (<1%) 12 files
*.cpp1602 LOC (<1%) 21 files
*.dcl1196 LOC (<1%) 217 files
*.nsi941 LOC (<1%) 1 file
*.html783 LOC (<1%) 82 files
*.js388 LOC (<1%) 3 files
*.yaml329 LOC (<1%) 8 files
*.nsh311 LOC (<1%) 3 files
*.smali224 LOC (<1%) 5 files
*.c215 LOC (<1%) 3 files
*.pro200 LOC (<1%) 47 files
*.rs118 LOC (<1%) 1 file
*.xsd12 LOC (<1%) 1 file
*.css7 LOC (<1%) 1 file
*.cfg4 LOC (<1%) 2 files
*.groovy4 LOC (<1%) 2 files
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
proto
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*/src/androidTest/.*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*[-]tests/.*".
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*[.]test[.].*".
    • files with paths like ".*/mock[a-zA-Z0-9_\- ]+/.*".
    • files with paths like ".*/[Mm]ocks/.*".
    • files with paths like ".*[.][Tt]ests/.*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*_tests[.].*".
    • files with paths like ".*/test[-]data/.*".
  • 2149 files match defined criteria (148,440 LOC, 7.9% vs. main code):
    • 1,052 *.java files (77,174 LOC)
    • 882 *.kt files (63,720 LOC)
    • 134 *.xml files (3,667 LOC)
    • 15 *.bzl files (1,549 LOC)
    • 10 *.py files (1,336 LOC)
    • 32 *.gradle files (499 LOC)
    • 4 *.bat files (272 LOC)
    • 4 *.sh files (116 LOC)
    • 4 *.proto files (39 LOC)
    • 3 *.toml files (36 LOC)
    • 3 *.h files (22 LOC)
    • 4 *.cc files (8 LOC)
    • 1 *.rs files (1 LOC)
    • 1 *.kts files (1 LOC)
  • " *.java" is biggest, containing 51.99% of LOC.
  • " *.kts" is smallest, containing 0% of LOC.


*.java77174 LOC (51%) 1,052 files
*.kt63720 LOC (42%) 882 files
*.xml3667 LOC (2%) 134 files
*.bzl1549 LOC (1%) 15 files
*.py1336 LOC (<1%) 10 files
*.gradle499 LOC (<1%) 32 files
*.bat272 LOC (<1%) 4 files
*.sh116 LOC (<1%) 4 files
*.proto39 LOC (<1%) 4 files
*.toml36 LOC (<1%) 3 files
*.h22 LOC (<1%) 3 files
*.cc8 LOC (<1%) 4 files
*.rs1 LOC (<1%) 1 file
*.kts1 LOC (<1%) 1 file
Generated Code
Automatically generated files, not manually changed after generation.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/generated/.*".
    • files with paths like ".*[.]java" AND any line of content like ".*The following code was generated by JFlex.*".
    • files with any line of content like "//[ ]*Generated by .*".
    • files with paths like ".*[.]java" AND any line of content like ".*[/][/] This is a generated file[.] Not intended for manual editing[.].*".
    • files with paths like ".*[.]h" AND any line of content like ".* DO NOT EDIT THIS FILE [-] it is machine generated .*".
  • 31 files match defined criteria (12,478 LOC, 0.7% vs. main code):
    • 29 *.java files (12,458 LOC)
    • 1 *.h files (14 LOC)
    • 1 *.xml files (6 LOC)
  • " *.java" is biggest, containing 99.84% of LOC.
  • " *.xml" is smallest, containing 0.05% of LOC.


*.java12458 LOC (99%) 29 files
*.h14 LOC (<1%) 1 file
*.xml6 LOC (<1%) 1 file
Build and Deployment Code
Source code used to configure or support build and deployment process.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]sh".
    • files with paths like ".*/AndroidManifest[.]xml".
    • files with paths like ".*/build[.]xml".
    • files with paths like ".*[.]gradle".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]bat".
    • files with paths like ".*/[.]gitattributes".
  • 3801 files match defined criteria (46,559 LOC, 2.5% vs. main code):
    • 3,177 *.gradle files (36,154 LOC)
    • 577 *.xml files (7,885 LOC)
    • 38 *.bat files (2,451 LOC)
    • 9 *.sh files (69 LOC)
  • " *.gradle" is biggest, containing 77.65% of LOC.
  • " *.sh" is smallest, containing 0.15% of LOC.


*.gradle36154 LOC (77%) 3,177 files
*.xml7885 LOC (16%) 577 files
*.bat2451 LOC (5%) 38 files
*.sh69 LOC (<1%) 9 files
Other Code
txt
properties
patch
ini
xsd
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]properties".
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.]json".
    • files with paths like ".*/[Dd]ocumentation/.*".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[Ss]amples/.*".
    • files with paths like ".*/[Mm]an/.*".
    • files with paths like ".*/resources/.*[.]xsd".
    • files with paths like ".*[.]svg".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*[.]editorconfig".
    • files with paths like ".*[.]patch".
    • files with paths like ".*[.]ini".
    • files with paths like ".*/[Dd]emos?/.*".
  • 3078 files match defined criteria (2,156,631 LOC, 115.3% vs. main code):
    • 1,144 *.txt files (2,099,623 LOC)
    • 1,401 *.svg files (22,360 LOC)
    • 41 *.json files (16,765 LOC)
    • 362 *.properties files (7,734 LOC)
    • 23 *.java files (4,243 LOC)
    • 67 *.md files (3,779 LOC)
    • 16 *.kt files (1,718 LOC)
    • 8 *.html files (291 LOC)
    • 10 *.xml files (93 LOC)
    • 1 *.patch files (12 LOC)
    • 4 *.ini files (12 LOC)
    • 1 *.xsd files (1 LOC)
  • " *.txt" is biggest, containing 97.36% of LOC.
  • " *.xsd" is smallest, containing 0% of LOC.


*.txt2099623 LOC (97%) 1,144 files
*.svg22360 LOC (1%) 1,401 files
*.json16765 LOC (<1%) 41 files
*.properties7734 LOC (<1%) 362 files
*.java4243 LOC (<1%) 23 files
*.md3779 LOC (<1%) 67 files
*.kt1718 LOC (<1%) 16 files
*.html291 LOC (<1%) 8 files
*.xml93 LOC (<1%) 10 files
*.patch12 LOC (<1%) 1 file
*.ini12 LOC (<1%) 4 files
*.xsd1 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2026-01-18 17:04