笔记——Gradle入门(十三)

2019-08-07 17:51:29 浏览数 (1)

——》个人平时笔记,看到的同学欢迎指正错误,文中多处摘录于各大博主精华、书籍

1、在现在的Android开发工具Android Studio中有几个Gradle文件,什么是Gradle,Gradle简单的说就是新一代的自动化构建工具,它是一个独立的项目,跟 AS、Android 无关,它使用的是Groovy语言开发。

之前我们使用Eclipse开发时我们可以直接在 Eclipse 上进行编译、运行、签名、打包等一系列流程,而这背后的工作都是 ADT 的功劳,某种意义上 ADT 就是我们的构建工具。而自 Google 推出 Android Studio 以来,就宣布默认使用 Gradle 来作为构建工具,并且之后放弃更新 ADT ,从此 Gradle 走入 Android 开发者的视野,而且Gradle还具备管理能力。——参考:给 Android 初学者的 Gradle 知识普及

Groovy是一门jvm语言,它最终是要编译成class文件然后在jvm上执行,所以Java语言的特性Groovy都支持,我们完全可以混写Java和Groovy。——参考:任主席Gradle从入门到实战 - Groovy基础

微信截图_123.png微信截图_123.png

2、安卓向前兼容:安卓系统向前兼容低版本的sdk

minSdkVersion <targetSdkVersion<= compileSdkVersion

  • app当前运行的Android版本API取决于安卓设备版本与targetSdkVersion版本比较

,如果安卓设备>=targetSdkVersion版本,则当前app运行的版本为targetSdkVersion;如果安卓设备<targetSdkVersion版本,则当前app运行版本为安卓设备系统版本。

  • compileSdkVersion: 他的环境也只是构建工具的构建环境,也就是编译环境,不代表你app应用运行时的环境,compileSDKVersion是不会被打包到APK文件中的。选择最新的API版本,在编译的时候检查代码的错误和警告,提示开发者修改和优化,V4,V7包,必须和compileSdkVersion的版本相匹配。尽量设置compileSdkVersion=targetSdkVersion,且是最新的API版本。
  • minSdkVersion:app能够运行的最小API版本。targetSdkVersion和minSdkVersion的版本是要打包到APK文件中的。
  • targetSdkVersion : targetSdkVersion 简单的说是给APP应用打包的版本,是Android 系统提供向前兼容低版本API的主要依据。因谷歌在28以后强制只能使用加密的https传输,最好是设置targetSdkVersion<=27或者采用设置网络安全忽略方法android:networkSecurityConfig="@xml/network_security_config"。
  • gradle-wrapper.properties:distributionUrl=https://services.gradle.org/distributions/gradle-4.4-all.zip,工程所依赖的gradle的版本信息。如果我们的工程中没有gradle,AndroidStudio会根据这个url去下载对应版本的gradle

3、implementation、api、compile区别:

  • api和compile关键字作用效果是一样的,使用时可以互相替换。实际上,api关键字是用来替代compile关键字的,因为compile关键字将来会被弃用。在高版本的gradle,使用compile关键字会报错并提示使用api关键字代替。
  • api或compile在moudle模式开发中,添加的依赖库对外是可见的。例如当使用api(compile)方法添加依赖A时,当A有对外接口改动时,所有(直接或间接)引用依赖了模块A的gradle都会重新编译,这就明显增加了编译时间,而使用了 implementation就很好的解决了这个问题。
  • implementation添加的依赖库是私有的,对外是不可见的,所有间接依赖于模块A的module都不能访问模块A中implementation所添加的依赖库。

我的博客即将同步至腾讯云 社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=32eky3gtsgsgk

0 人点赞