android / enterprise-samples
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 24% duplication:
    • 2,144 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 524 duplicated lines
  • 12 duplicates
system24% (524 lines)
Duplication per Extension
java24% (524 lines)
Duplication per Component (primary)
NfcProvisioning/Application/src/main/java/com/example/android/common/logger98% (177 lines)
AppRestrictionSchema/Application/src/main/java/com/example/android/common/logger98% (177 lines)
NfcProvisioning/Application/src/main/java/com/example/android/nfcprovisioning14% (43 lines)
AppRestrictionSchema/Application/src/main/java/com/example/android/apprestrictionschema21% (43 lines)
AppRestrictionEnforcer/Application/src/main/java/com/example/android/apprestrictionenforcer6% (33 lines)
BasicManagedProfile/Application/src/main/java/com/example/android/basicmanagedprofile8% (27 lines)
NfcProvisioning/Application/src/main/java/com/example/android/common/activities92% (12 lines)
AppRestrictionSchema/Application/src/main/java/com/example/android/common/activities92% (12 lines)
AppRestrictions/Application/src/main/java/com/example/android/apprestrictions0% (0 lines)
DeviceOwner/Application/src/main/java/com/example/android/deviceowner0% (0 lines)

Duplication Between Components (50+ lines)

G AppRestrictionSchema/Application/src/main/java/com/example/android/common/logger AppRestrictionSchema/Application/src/main/java/com/example/android/common/logger NfcProvisioning/Application/src/main/java/com/example/android/common/logger NfcProvisioning/Application/src/main/java/com/example/android/common/logger AppRestrictionSchema/Application/src/main/java/com/example/android/common/logger--NfcProvisioning/Application/src/main/java/com/example/android/common/logger 354 AppRestrictionSchema/Application/src/main/java/com/example/android/apprestrictionschema AppRestrictionSchema/Application/src/main/java/com/example/android/apprestrictionschema NfcProvisioning/Application/src/main/java/com/example/android/nfcprovisioning NfcProvisioning/Application/src/main/java/com/example/android/nfcprovisioning AppRestrictionSchema/Application/src/main/java/com/example/android/apprestrictionschema--NfcProvisioning/Application/src/main/java/com/example/android/nfcprovisioning 86

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 12 longest duplicates.
See data for all 12 duplicates...
Size#FoldersFilesLinesCode
60 x 2 AppRestrictionSchema/App...e/android/common/logger
NfcProvisioning/Applicat...e/android/common/logger
LogView.java
LogView.java
25:141 (100%)
25:141 (100%)
view
46 x 2 AppRestrictionSchema/App...e/android/common/logger
NfcProvisioning/Applicat...e/android/common/logger
Log.java
Log.java
26:234 (100%)
26:234 (100%)
view
42 x 2 AppRestrictionSchema/App...e/android/common/logger
NfcProvisioning/Applicat...e/android/common/logger
LogFragment.java
LogFragment.java
49:107 (100%)
49:107 (100%)
view
20 x 2 AppRestrictionSchema/App...id/apprestrictionschema
NfcProvisioning/Applicat...android/nfcprovisioning
MainActivity.java
MainActivity.java
78:111 (44%)
79:110 (44%)
view
16 x 2 AppRestrictionSchema/App...e/android/common/logger
NfcProvisioning/Applicat...e/android/common/logger
LogWrapper.java
LogWrapper.java
24:72 (100%)
24:72 (100%)
view
15 x 2 AppRestrictionEnforcer/A.../apprestrictionenforcer
BasicManagedProfile/Appl...oid/basicmanagedprofile
SetupProfileFragment.java
SetupProfileFragment.java
88:107 (33%)
85:104 (32%)
view
14 x 2 AppRestrictionSchema/App...id/apprestrictionschema
NfcProvisioning/Applicat...android/nfcprovisioning
MainActivity.java
MainActivity.java
55:76 (31%)
56:77 (31%)
view
13 x 2 AppRestrictionSchema/App...e/android/common/logger
NfcProvisioning/Applicat...e/android/common/logger
MessageOnlyLogFilter.java
MessageOnlyLogFilter.java
23:57 (100%)
23:57 (100%)
view
12 x 2 AppRestrictionSchema/App...droid/common/activities
NfcProvisioning/Applicat...droid/common/activities
SampleActivityBase.java
SampleActivityBase.java
30:52 (92%)
30:52 (92%)
view
9 x 2 AppRestrictionEnforcer/A.../apprestrictionenforcer
AppRestrictionEnforcer/A.../apprestrictionenforcer
MainActivity.java
StatusFragment.java
41:51 (19%)
88:98 (13%)
view
9 x 2 AppRestrictionSchema/App...id/apprestrictionschema
NfcProvisioning/Applicat...android/nfcprovisioning
MainActivity.java
MainActivity.java
40:53 (20%)
41:54 (20%)
view
6 x 2 BasicManagedProfile/Appl...oid/basicmanagedprofile
BasicManagedProfile/Appl...oid/basicmanagedprofile
BasicManagedProfileFragment.java
BasicManagedProfileFragment.java
117:123 (2%)
220:226 (2%)
view
Duplicated Units
The list of top 7 duplicated units.
See data for all 7 unit duplicates...
Size#FoldersFilesLinesCode
43 x 2 NfcProvisioning/Applicat...e/android/common/logger
AppRestrictionSchema/App...e/android/common/logger
LogView.java
LogView.java
48:106 
48:106 
view
22 x 2 NfcProvisioning/Applicat...e/android/common/logger
AppRestrictionSchema/App...e/android/common/logger
LogFragment.java
LogFragment.java
56:83 
56:83 
view
14 x 2 NfcProvisioning/Applicat...e/android/common/logger
AppRestrictionSchema/App...e/android/common/logger
LogFragment.java
LogFragment.java
86:104 
86:104 
view
12 x 2 NfcProvisioning/Applicat...e/android/common/logger
AppRestrictionSchema/App...e/android/common/logger
LogWrapper.java
LogWrapper.java
52:74 
52:74 
view
10 x 2 BasicManagedProfile/Appl...oid/basicmanagedprofile
AppRestrictionEnforcer/A.../apprestrictionenforcer
SetupProfileFragment.java
SetupProfileFragment.java
95:105 
98:108 
view
9 x 2 NfcProvisioning/Applicat...android/nfcprovisioning
AppRestrictionSchema/App...id/apprestrictionschema
MainActivity.java
MainActivity.java
95:111 
96:112 
view
8 x 2 NfcProvisioning/Applicat...e/android/common/logger
AppRestrictionSchema/App...e/android/common/logger
LogView.java
LogView.java
125:134 
125:134 
view