首页 > 编程知识 正文

android中的data能删吗,android中的布局分为6种,分别是

时间:2023-05-06 13:10:47 阅读:267931 作者:1197

说明:本文参考自《Android群英传–神兵利器》

对于Android开发者来说Gradle是个绕不过去的技术点,只有能理解并熟练的使用Gradle才可以高效有序的开发。

Gradle是什么:

简单来说Gradle就是一个新兴的项目构建工具,他有着很高的灵活度,可以满足我们很多的项目需求。关于Gradle的介绍可以看这篇博文:

Gradle for Android 系列:为什么 Gradle 这么火

Android的Gradle:

Android中的一个project主要有四个Gradle文件:

属于项目的build.gradle: buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.1.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }}allprojects { repositories { jcenter() }}

在这里边指定了使用的代码仓库,声明了使用的Android Gradle插件版本,在这里边主要是可以对整个项目进行配置,这些配置适用于该项目下的所有Module

属于Module的build.gradle: apply plugin: 'com.android.application'android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.wei.rxjavademo" minSdkVersion 21 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' compile 'io.reactivex:rxjava:1.0.14' compile 'io.reactivex:rxandroid:1.0.1'}

在这里边主要是对于指定的Module进行具体的配置。主要分为三大块:apply plugin(声明了Gradle引入的插件),android(描述了该Android Module在构建过程中的配置参数等信息),dependencies(描述了构建过程中所有依赖的库)。我们绝大部分的配置都是在这里完成。

本地配置local.properties: ## This file is automatically generated by Android Studio.# Do not modify this file -- YOUR CHANGES WILL BE ERASED!## This file must *NOT* be checked into Version Control Systems,# as it contains information specific to your local configuration.## Location of the SDK. This is only used by Gradle.# For customization when using a Version Control System, please read the# header note.#Mon Jun 06 16:24:18 CST 2016ndk.dir=E:\Android\Android_SDK\ndk-bundlesdk.dir=E:\Android\Android_SDK

这个文件主要是指定使用的SDK和NDK的路径,一般情况不需要改动。

设置settings.gradle: include ':app'

这个里边主要是声明了整个项目所引用的Module,每当新建一个Module时就会自动的添加进来。

Gradle实践:

Gradle的配置项有很多,我们只需要知道一些常见的即可,更多更详细的Gradle配置项可以查看Android提供的Gradle参考文档:

Android Plugin DSL Reference

使用Gradle自定义项目目录结构:

可以在Module的build.gradle文件的android领域内进行项目结构的自定义:

sourceSets{ main{ java.srcDirs=['src'] res.srcDirs=['src'] jniLibs.srcDirs=['libs'] jni.srcDirs=['jni'] } }

可以根据需要配置相应的目录,达到修改文件目录的结果。

使用Gradle自定义代码目录结构: sourceSets{ main{ res.srcDirs=[ 'src/main/src', 'src/main/res/layout/activity', 'src/main/res/lauout/fragment'] } }

通过这样可以很好的对代码进行分类管理。

使用Gradle配置全局属性:

在project的gradle文件中可以通过ext来配置一些全局的属性,然后在Module文件中直接引用使用,这样可以保证版本的一致性和后期的可维护性。
在project的build.gradle中配置这些全局需要的变量

ext{ compileSdkVersion=23}

在需要用到的Module的build.gradle文件中引用:

android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion "23.0.3" defaultConfig { applicationId "com.wei.rxjavademo" minSdkVersion 21 targetSdkVersion 23 versionCode 1 versionName "1.0" } } 使用Gradle对某一Module进行配置:

这些操作都是在Module的build.gradle文件中配置的。

配置默认的一些属性:

一些常见的参数都可以在这里配置,最小版本号,目标版本号等。

defaultConfig { applicationId "com.wei.rxjavademo" minSdkVersion 21 targetSdkVersion 23 versionCode 1 versionName "1.0" }

配置buildTypes:

在这里可以针对不同的编译类型进行不同的配置,常见的有debug版本和release版本,也可以自定义编译类型,同时声明一些编译时的参数。

buildTypes { debug{} release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release } wqc{ applicationIdSuffix ".wqc" minifyEnabled false } }

同时buildType也支持通过继承的方式来进行拓展,而不必须每次都重新写一个:

wqc.initWith(buildTypes.debug)wqc{ applicationIdSuffix ".wqc"}

配置signingConfigs:

在这里可以配置签名信息,当然也可以每次打包时通过AS提供的窗口进行打包。

使用配置好的signingConfigs来进行签名:

//在我们之前自定义的编译版本中使用签名 wqc{ applicationIdSuffix ".wqc" signingConfig signingConfigs.release }

配置ProGuard:
可以通过配置ProGuard来进行代码混淆,但是不仅仅只是用于代码混淆,它可以对apk文件进行一定的优化和精简。

buildTypes { debug{} release { //通过将minifyEnable 设置为true来开启代码混淆 //下边的文件一个是SDK提供的默认混淆文件,另一个是项目中的混淆规则文件,我们可以在里边进行混淆规则的定制。 minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release } } Gradle动态配置参数:

System.properties方式:

在项目的gradle.properties文件中定义需要设置的参数名和具体的值

systemProp.keyAlias=myusingkey

在需要使用该参数的地方通过System.properties[]来获取相对应的值

keyAlias System.properties['keyAlias']

通过key/value的方式:
在gradle.properties文件中定义需要的变量参数:

wqc.keyAlias=myusingkey

使用时可以通过project.property来获取

keyAlias project.property('wqc.keyAlias') Gradle多渠道打包:

关于Gradle的多渠道打包可以看慕课网的这个讲解视频,很详细完善:

Android apk多渠道打包

Android中Gradle常用命令:

gradlew task : 查看项目中的所有Task

gradlew task –all:查看所有task的作用和相互之间的调用关系

gradlew assemble :可以编译出release包和debug包,可以使用gradlew assembleRelease或者gradlew assembleDebug来单独编译一种包

gradlew check:用于检测任务

gradlew clean:清理项目的中间数据

gradlew build:构建项目,相当于同时执行了check任务和assemble任务

总结

以上就是一些Gradle的基础的使用方式,对于入门的初学者已经足够的,更高级和详细的配置可以查看Android给出的文档:Android Plugin DSL Reference 或者是查看Gradle的官网: Gradle官网

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。