AndroidDependencySizeAnalyzer

Are you looking for a gradle script to analyze your dependency size and aar file content? well today is your lucky day.

Last Version

1.0.0

usage

add

classpath "io.github.chinacoolder:android_dependency_size_analyzer:${last_version}"

to your project build gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "io.github.chinacoolder:android_dependency_size_analyzer:${last_version}"
    }
}

apply plugin

plugins {
    id 'happy.jyc.android_dependency_analyzer'
}

now after sync the gradle, run

./gradlew tasks

then you will see

JYCAndroidAnalyzer tasks
------------------------
jycAARAnalyze - analyze aar file's size
jycDependencySize - list all the dependency and it's size of class path

now is time to enjoy the fun

Analyze Dependency Size

run

./gradlew jycDependencySize --name=app

then will list all classpath and the dependency size of the classpath

For classpath releaseCompileClasspath:
Total dependencies size :                                                                                               12.93 mb
com.google.android.material:material:1.4.0@aar                                                                          1573.87 kb
org.jetbrains.kotlin:kotlin-stdlib:1.6.10@jar                                                                           1472.73 kb
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0@jar                                                             1447.78 kb
androidx.appcompat:appcompat:1.3.1@aar                                                                                  1058.66 kb
androidx.core:core:1.7.0@aar                                                                                            957.23 kb
com.squareup.okhttp3:okhttp:4.9.1@jar                                                                                   772.84 kb
com.tencent:mmkv-static:1.2.10@aar                                                                                      693.48 kb
com.google.android.gms:play-services-base:17.1.0@aar                                                                    522.27 kb
androidx.constraintlayout:constraintlayout:2.0.4@aar                                                                    375.35 kb
androidx.recyclerview:recyclerview:1.1.0@aar                                                                            349.86 kb
androidx.fragment:fragment:1.3.6@aar                                                                                    291.21 kb
com.google.android.gms:play-services-basement:17.0.0@aar                                                                271.39 kb
com.squareup.okio:okio:2.8.0@jar                                                                                        237.48 kb
com.google.code.gson:gson:2.8.8@jar                                                                                     236.37 kb
androidx.constraintlayout:constraintlayout-solver:2.0.4@jar                                                             225.67 kb
org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10@jar                                                                    195.92 kb
jp.co.cyberagent.android:gpuimage:2.1.0@aar                                                                             190.46 kb
androidx.transition:transition:1.2.0@aar                                                                                166.82 kb
androidx.core:core-ktx:1.7.0@aar                                                                                        158.69 kb

for task jycDependencySize, these are the supported params:

Name Optional Multiple Remark
name false false the module name which module need to be an analyze
classpath true true which classpath need to be analyze
filter true true dependency filter, eg. com.facebook
gradlew true false the gradlew file path, default is project root dir, eg D:\project\projectname
cache true false the gradle cache path, default is {user_home}\.gradle\caches, eg. D:\.gralde\caches

Analyze AAR Size

run

./gradlew jycAARAnalyze --aar=com.google.android.material:material:1.4.0

then will list all file of this aar and the size of every file

For aar com.google.android.material:material:1.4.0:
Total size:                                                                                                             2.47 mb
classes.jar                                                                                                             1304.39 kb
res/values/values.xml                                                                                                   272.35 kb
R.txt                                                                                                                   213.27 kb
public.txt                                                                                                              19.67 kb
annotations.zip                                                                                                         13.63 kb
res/values-v21/values-v21.xml                                                                                           8.90 kb
res/values-ml/values-ml.xml                                                                                             6.51 kb
res/values-ta/values-ta.xml                                                                                             6.41 kb
res/values-te/values-te.xml                                                                                             6.26 kb
res/values-my/values-my.xml                                                                                             6.18 kb
res/values-km/values-km.xml                                                                                             6.15 kb
res/values-kn/values-kn.xml                                                                                             6.14 kb
res/values-ne/values-ne.xml                                                                                             6.10 kb
res/values-ka/values-ka.xml                                                                                             6.05 kb
res/values-th/values-th.xml                                                                                             5.86 kb
res/values-gu/values-gu.xml                                                                                             5.84 kb

for task jycAARAnalyze, these are the supported params:

Name Optional Multiple Remark
aar false false target aar need to be an analyze
ext true true extension filter, eg. png,jpg
filter true true content file filter, eg. com.facebook
cache true false the gradle cache path, default is {user_home}\.gradle\caches, eg. D:\.gralde\caches

License

Copyright JiaYiChi.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

GitHub

View Github