getCacheDir
getCacheDir()其对应着应用程序内的内部缓存,用来存储临时数据。因此在系统空间较少时有可能会被自动清除。存放路径一般是/data/data/<应用包名>/cache目录。

getExternalCacheDir
getExternalCacheDir()对应着应用程序内的外部缓存,同样是用来存储临时数据的。但是其由于脱离了应用管理,因此并不会在空间少时被自动清除。存放路径一般是/storage/sdcard/Android/data/<应用包名>/cache目录。

应用卸载
当用户卸载当前应用程序时,以上两个方法里的内容都会随着应用卸载所清除。若有想要一直保存的内容,可以调用getExternalStorageDirectory目录下(抑或其他sd卡下的目录)进行保存。

当然,如果想要保存文件数据(长时间保存),上面对应着getFilesDir()和getExternalFilesDir(),类比即可。

笔记
可以看到,当有External(外存)时,数据都是缓存在sd卡中的(若存在);否则则是内部缓存(可管理)。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/CarsonWoo/article/details/89142756

在使用Gradle打包成一个可运行的Jar包的时候,需要把编译时依赖的库也打包进去,因此要搞清楚打包时如何才能将库文件打包进去。

对于implementation引入的库,则需要如下的语句:

from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }

对于testImplementation引入的库,则需要如下的语句:

from {
        configurations.testRuntimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }

我们只需要打包运行时的依赖包即可,则完整build.gradle如下:

plugins {
    id 'java'
    id 'org.jetbrains.kotlin.jvm' version '1.3.21'
}

group 'com.zhuyanbin'
version '1.0.0'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

jar {
    manifest {
        attributes 'Implementation-Title' : 'DropBox-Backup-Service'
        attributes 'Manifest-Version': '1.0.0'
        attributes 'Main-Class': 'com.zhuyanbin.dropbox.AppKt'
    }

    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }
}

dependencies {

    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    implementation 'com.dropbox.core:dropbox-core-sdk:3.0.10'
    implementation 'commons-configuration:commons-configuration:1.9'
    testImplementation group: 'org.junit.platform', name: 'junit-platform-launcher', version:'1.4.0'
    testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version:'5.4.0'
    testImplementation group: 'org.junit.vintage', name: 'junit-vintage-engine', version:'5.4.0'
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}