Android开发之gradle理解

Android开发之gradle理解

1. gradle插件和gradle构建库

二者是不同的,但有对应关系,请参考:gradle插件与gradle构建库对应关系

2. project最外层build.gradle理解,见下代码:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()//代码托管库:设置之后可以在项目中轻松引用jcenter上的开源项目
    }
    dependencies {
        //声明gradle插件版本,
        // 插件目录%install dir%\Android Studio\gradle\m2repository\com\android\tools\build\gradle
        //注意:gradle插件和gradle不是一回事,且二者版本需要匹配,详见:https://developer.android.google.cn/studio/releases/gradle-plugin.html#updating-plugin
        classpath 'com.android.tools.build:gradle:2.3.1'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

3.app层build.gradle理解,见下代码:

apply plugin: 'com.android.application' //默认的应用程序模块(插件)

android {
    compileSdkVersion 26 //编译版本,目录:android-sdk\platforms
    buildToolsVersion '26.0.2' //构建工具版本,目录:E:\Android\android-sdk\build-tools
    defaultConfig {
        applicationId "com.test.pack" //包名
        minSdkVersion 19    //最低兼容版本
        targetSdkVersion 26 //充分测试过版本(建议版本)
        versionCode 1 //版本号
        versionName "1.0" //版本名称
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        buildConfigField("boolean", "enableLog", "false")
    }
    buildTypes {
        release {
            minifyEnabled false  //是否混淆(true为混淆)
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            buildConfigField("boolean", "enableLog", "false")
        }
    }
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs') //本地依赖声明
    compile 'com.leon:lfilepickerlibrary:1.0'
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { //测试用例库
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    testCompile 'junit:junit:4.12'  //声明测试用例库
    compile files('libs/test.jar') //引入库编译
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值