What is the <module>/release/output.json generated by Android Studio

what is the d
what is the m
the definition of love
what is the p
what is the meaning of symbol
what is the s

I recently noticed a new file generated at <module>/release/output.json by Android Studio 3 Canary 1 each time I run Build -> Generate Signed APK..., which has contents that look like following.

Can anyone confirm seeing this behavior as well? Or is it due to some local configuration on my laptop?

And can anyone explain the purpose of this file? Is it safe to add to .gitignore?

  "outputType": {
    "type": "APK"
  "apkInfo": {
    "type": "MAIN",
    "splits": [],
    "versionCode": 32
  "outputFile": {
    "path": "/path/to/the/generated/release/filename.apk"
  "properties": {
    "packageId": "com.example.android",
    "split": ""

Android studio 3.0 is responsible for this file. You don't need to worry about the output.json file.

Let me explain this to you:

For older versions, what Android Studio did was generate a signed APK and put it in the "output" folder. Even If you had multiple flavour dimensions for your APK, all of them could be located at the same directory, which was the output folder. From the latest release of Android Studio 3.0 (canary and stable), they have organized this file structure. For every flavour dimension, whenever you sign an APK, it will have a separate folder with a corresponding output.json file in it. This file is actually nothing but a description of the source APK. As you can see, the file you shared here is describing the released APK.

The, used to point forward to a following qualifying or defining clause or phrase. What Is the What: The Autobiography of Valentino Achak Deng is a 2006 novel written by Dave Eggers. It is based on the life of Valentino Achak Deng, a Sudanese child refugee who immigrated to the United States under the Lost Boys of Sudan program.

THE, used to make a generalized reference to something rather than identifying a particular instance. The definition is - —used as a function word to indicate that a following noun or noun equivalent is definite or has been previously specified by context or by circumstance.

For anyone who want to disable this feature, here is my trick. It simply delete output.json after generation.

applicationVariants.all { variant ->
    variant.assemble.doLast {
        def buildType = variant.buildType.name
        def outputPath = ""

        // If you use separated output path for both condition.
        if (buildType == "debug") {
            outputPath = "${buildDir}/outputs/apk"
        if (buildType == "release") {
            outputPath = "${rootDir}/apk"
        println "outputPath:" + outputPath

        delete "${outputPath}/yourFlavor1/${buildType}/output.json"
        delete "${outputPath}/yourFlavor2/${buildType}/output.json"
        delete "${outputPath}/yourFlavor.../${buildType}/output.json"

The, "he hoped to publish monthly, if only he could find the money" What Is the What is the epic novel based on the life of Valentino Achak Deng who, along with thousands of other children —the so-called Lost Boys—was forced to leave his village in Sudan at the age of seven and trek hundreds of miles by foot, pursued by militias, government bombers, and wild animals, crossing the deserts of three countries to find freedom. When he finally is resettled in the United States, he finds a life full of promise, but also heartache and myriad new challenges.

In response to the elaborate answer by @wonsuc, you can have gradle remove the file upon a successful build by adding the following code to the android section:

android {
    applicationVariants.all { variant ->
        variant.assemble.doLast {
            variant.outputs.each { output ->
                delete "${output.outputFile.parent}/output.json"

Coronavirus FAQs: What Is A Pulse Oximeter? Why Are So Many , (pronounced stressing “the”) used to indicate that someone or something is the best known or most important of that name or type. Is definition is - present tense third-person singular of be; dialectal present tense first-person and third-person singular of be; dialectal present tense plural of be How to use is in a sentence.

With previous versions of Android Studio, I had attempted to automatically name the output apk based on the output of git describe. However, while "Syncing Project with Gradle Files" Android Studio would run the gradle script once and capture the build config, including the output filename, and then assume that every build would continue to use the same name.

So whenever I created a new commit, the actual output filename would change. But Android Studio would either install the old version or fail if it had been cleaned up.

I believe that output.json has been added to allow Android Studio to load everything it needs to know about the last build, even if you have customised your gradle script to change something in an unexpected way.

This change isn't specifically mentioned in the gradle plugin release notes (https://developer.android.com/studio/releases/gradle-plugin.html#3-0-0). Though they did make a bunch of drastic changes for performance reasons. It makes sense to me that they would prefer to run less of your gradle script when syncing. Instead capturing information about the build outputs directly from the build process.

Used Synonyms, Used Antonyms, used adverbially with comparatives to indicate how one amount or degree of something varies in relation to another. The World Wide Web (WWW) is a network of online content that is formatted in HTML and accessed via HTTP. The term refers to all the interlinked HTML pages that can be accessed over the Internet. The World Wide Web was originally designed in 1991 by Tim Berners-Lee while he was a contractor at CERN.

What is a pronoun? (video), "<b>the more</b> she thought about it, <b>the more</b> devastating it became" Question: "What is the gospel?". Answer: The word gospel literally means “good news” and occurs 93 times in the Bible, exclusively in the New Testament. In Greek, it is the word euaggelion, from which we get our English words evangelist, evangel, and evangelical.

Introduction to nouns (video), There are two main ways to pronounce this little word, based largely on what word follows it. If the is followed by a word which begins with a consonant sound (​  This is the ORIGINAL "What What (In the Butt)" video. The South Park version aired over a year after we made this video. There's been a lot of confusion about this. We can assure you, we are not

Coronavirus: What is 'flattening the curve,' and will it work?, used before nouns to refer to particular things or people that have already been talked about or are already known or that are in a situation where it is clear what​  What Does AQL Mean? ‘AQL‘ stands for ‘Acceptance Quality Limit‘, and is defined as the “quality level that is the worst tolerable” in ISO 2859-1.It represents the maximum number of defective units, beyond which a batch is rejected.

  • Normal configuration, you can use e.g.: putting on a server, checking from an older version of your app if there is an update and notify the user, or display on a website current version etc.
  • so there is no way to disable this folder and file generation and have all flavor APKs saved to the output folder?
  • I still doesn't know how to disable output.json . but every flavoured signed apk will have separate folder with the flavour name on it . In past all apks were generated and placed in output folder @chitgoks
  • yes you are correct. i find it annoying though why they do not have an option to have it all placed in the output folder. I liked its behavior in < v3.
  • is this needed when publishing app or just the release apk?
  • I seriously want to disable it.
  • Good research, but I'd add that it should be safe to delete the file if you don't need it.
  • I think you misunderstood the purpose of the file and possibly the entire build process as a whole. It sounds as though you placed your code to rename the file in the wrong place or did not make it dynamic.
  • I don't know why you think I'm wrong, be specific. FYI this is where I'm currently setting the output filename; github.com/servalproject/serval_chat/blob/… and that works just fine with the latest Android Studio. As I said above, attempting to do something similar with previous versions would result in the wrong apk being installed. Anyway, I've clarified my answer slightly to explain when Android Studio used to run your gradle script.
  • I am not sure if you are automating an install or just incorrectly labeling a build, but it sounds like something you didn't configure correctly. If you are generating a build based on the commit, you need to have a new commit to generate a new file. You will also need to make sure any sort of install you perform also updates the commit reference so it will locate the right file. None of this actually relies on the output.json file. It would be how you coded the build.gradle file.
  • I use git describe to generate the version name, and then set the output apk filename based on that name so I can easily archive it. My point is that when you "Run" / "Debug" from within Android Studio, the gradle build is run. The new version of the gradle plugin generates output.json with the actual output filename that was written. This is then read back in by Android Studio so it can identify the file to install & debug. Whereas previous versions of Android Studio would assume that the output filename had not changed since the previous gradle sync.
  • And I'm suggesting that this change was done mostly for performance reasons, as stated in the release notes, to simplify the gradle sync process. With the side effect that Android Studio doesn't have to assume anything about what the build will output, it can simply read the json file and know for certain what happened.