aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/contrib/lite/java/demo/app/build.gradle
blob: 192162cfce787ffbf13e2b0db2da972116407888 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        applicationId "android.example.com.tflitecamerademo"
        // Required by Camera2 API.
        minSdkVersion 21
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

        // Remove this block.
        jackOptions {
            enabled true
        }
    }
    lintOptions {
        abortOnError false
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    aaptOptions {
        noCompress "tflite"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

repositories {
    maven {
        url 'https://google.bintray.com/tensorflow'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.2.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.android.support:design:25.2.0'
    compile 'com.android.support:support-annotations:25.3.1'
    compile 'com.android.support:support-v13:25.2.0'

    compile 'org.tensorflow:tensorflow-lite:0.0.0-nightly'

    testCompile 'junit:junit:4.12'
}

def modelDownloadUrl = "https://storage.googleapis.com/download.tensorflow.org/models/tflite/mobilenet_v1_224_android_quant_2017_11_08.zip"
def localCache = "build/intermediates/mobilenet_v1_224_android_quant_2017_11_08.zip"
def targetFolder = "src/main/assets"

task downloadModel(type: DownloadUrlTask) {
    doFirst {
        println "Downloading ${modelDownloadUrl}"
    }
    sourceUrl = "${modelDownloadUrl}"
    target = file("${localCache}")
}

task unzipModel(type: Copy, dependsOn: 'downloadModel') {
    doFirst {
        println "Unzipping ${localCache}"
    }
    from zipTree("${localCache}")
    into "${targetFolder}"
}

// Ensure the model file is downloaded and extracted before every build
preBuild.dependsOn unzipModel

class DownloadUrlTask extends DefaultTask {
    @Input
    String sourceUrl

    @OutputFile
    File target

    @TaskAction
    void download() {
        ant.get(src: sourceUrl, dest: target)
    }
}