详解Android打包上传使用AAR
https://www.jianshu.com/p/f653b1da549c?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
//就是添加四个镜像地址,我严重怀疑有些东西会下载不了,但是还是贴一下
maven { url “https://maven.aliyun.com/repository/gradle-plugin”}
maven { url “https://maven.aliyun.com/repository/google” }
maven { url “http://maven.aliyun.com/nexus/content/groups/public/” }
maven { url “https://maven.aliyun.com/repository/jcenter”}
Could not install Gradle distribution from
解决方法
gradle--all.zip 下载慢和依赖下载慢解决方法
下载gradle.zip提速(zip来源CSDN)
提一嘴,我感觉在网页上下载all的时候比较快一点,不知道as下载的是哪个地址
拿到 as4.x之后先新建一个项目(肯定卡),立马关掉项目
打开路径: ~.gradle\wrapper\dists\具体看版本!(我的路径C:\Users\Administrator.gradle\wrapper\dists\gradle-6.1.1-all\cfmwm155h49vnt3hynmlrsdst)删除 gradle-6.1.1-all.zip.lck 和 gradle-6.1.1-all.zip.part 把下载好的 zip放入这个文件夹地址: 链接:https://pan.baidu.com/s/1Kztl9R6y_uMs8MqRjEjxVA (提取码:e3x7)
Android Studio无法执行Java类的main方法问题及解决方法
1、修改.idea/gradle.xml文件
Gradle
https://blog.csdn.net/u010289802/category_9369147.html
https://juejin.im/post/6887581345384497165
gradle熟悉么,自动打包知道么?
知道,我们开发工具studio就是用gradle打包的
一般是在build.gradle文件里面配置
- 添加签名文件 signingConfigs {}
- 设置打包格式 applicationVariants.all
- 自定义apk名字 productFlavors {}
- 配置渠道
buildTypes {
release {
//注意下面这一句很重要,必须加上才会执行上面的signingConfigs函数。
signingConfig signingConfigs.release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
如何加快 Gradle 的编译速度?
调整AS的内存分配
增加Gradle的堆大小并启用dex-in-process
配置依赖包下载地址,使用阿里镜像
使用implementation替代compile
对于一些不常变动的 Android Library,我们可以直接引用 aar,加快编译速度
https://juejin.im/post/6844903728282091527
Gradle的Flavor能否配置sourceset?
gradle上sourceSets配置&同名文件合并问题
https://www.cnblogs.com/Im-Victor/p/11005270.html
Gradle生命周期
Gradle生命周期分为三个部分,如下:
1 初始化阶段: 解析整个工程中所有Project,构建所有的Project对应的project对象,这个阶段主要就是解析setting.gradle文件
2 配置阶段:解析所有的projects对象中的task,构建好所有的task拓扑图,主要解析各个project下的build.gradle文件
3 执行阶段:执行具体的的task及其依赖task
编译插桩
在代码编译期间修改已有的代码或者生成新代码,像ButterKnife
https://blog.csdn.net/u010289802/category_10019439.html
谈谈你对AOP技术的理解?
Aspect Oriented Programming 面向切面编程。解耦是程序员编码开发过程中一直追求的。AOP也是为了解耦所诞生
AOP 主要是利用代理模式的技术来实现的
在Android App中的横切关注点有Http, SharedPreferences, Log, Json, Xml, File, Device, System, 格式转换等
统一管理依赖版本
在根目录下,新建config.gradle文件
ext {
android = [
compileSdkVersion: 23,
]
dependencies = [
"support-v7" : 'com.android.support:appcompat-v7:23.2.0'
]
}
在根目录下的build.gradle,新增apply from: “config.gradle”
compileSdkVersion rootProject.ext.android.compileSdkVersion
compile rootProject.ext.dependencies[“support-v7”]
查看依赖关系
可以通过Android Studio的插件Gradle View来查看
命令查看./gradlew -q app:dependencies
标识符
统一指定Transitive
Force
用来表示强制设置某个模块的版本
configurations.all {
resolutionStrategy {
force 'com.android.support:support-v4:23.1.0'
}
}
exclude
该标识符用来设置不编译指定的模块
https://www.jianshu.com/p/47cbbb4eab13