在本文中,我们将详细介绍AndroidStudio中统一管理版本号引用配置问题的各个方面,并为您提供关于androidstudio版本号的相关解答,同时,我们也将为您带来关于androidstudio
在本文中,我们将详细介绍Android Studio中统一管理版本号引用配置问题的各个方面,并为您提供关于android studio 版本号的相关解答,同时,我们也将为您带来关于android studio 3.0加载其他人项目时的一些配置问题、android studio gradle 统一管理版本、Android studio Gradle配置通用配置、Android studio so文件 配置问题 CPU架构不同 apk缩小的有用知识。
本文目录一览:- Android Studio中统一管理版本号引用配置问题(android studio 版本号)
- android studio 3.0加载其他人项目时的一些配置问题
- android studio gradle 统一管理版本
- Android studio Gradle配置通用配置
- Android studio so文件 配置问题 CPU架构不同 apk缩小
Android Studio中统一管理版本号引用配置问题(android studio 版本号)
方式一:
在gradle.properties中写入:
#测试环境 ENV_TEST=test #开发环境 ENV_DEV=dev #生产环境 ENV_ONLINE=online APPLICATION_ID=com.xxx.xxxx COMPILE_SDK_VERSION=26 TARGET_SDK_VERSION=26 MIN_SDK_VERSION=15 SUPPORT_V4_SUPPORT=com.android.support:support-v4:26.1.0 SUPPORT_ANNOTATIONS=com.android.support:support-annotations:26.1.0 SUPPORT_V7_APPCOMPAT=com.android.support:appcompat-v7:26.1.0 SUPPORT_V7_RECYCLERVIEW=com.android.support:recyclerview-v7:26.1.0
使用规则,字符串直接用,整形需在后加 as int
android { compileSdkVersion COMPILE_SDK_VERSION as int defaultConfig { applicationId APPLICATION_ID minSdkVersion MIN_SDK_VERSION as int targetSdkVersion TARGET_SDK_VERSION as int versionCode 100 versionName "1.0.0" multiDexEnabled true flavorDimensions "versionCode" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" }
方式二:
在根目录下的build.gradle文件下添加 buildscript{ .... } 中的内容:
buildscript { ext.kotlin_version = '1.1.51' ext.rxandroid = '2.0.1' ext.anko_version = '0.8.2' ext.support_version = '26.1.0' ext.target_sdk_version = 26 ext.min_sdk_version = 15 ext.applicationId = 'com.beiyijinfu.rxbusdemo' repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.0.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } }
使用规则,字符串需使用“$”,整形直接用
android { compileSdkVersion compile_sdk_version defaultConfig { applicationId "com.xxx.xxxx" minSdkVersion min_sdk_version targetSdkVersion target_sdk_version versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } } dependencies { implementation filetree(dir: 'libs',include: ['*.jar']) implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" implementation "com.android.support:appcompat-v7:$support_version" implementation "io.reactivex.rxjava2:rxandroid:$rxandroid" implementation "org.jetbrains.anko:anko-common:$anko_version" implementation "com.android.support:recyclerview-v7:$support_version" }
方式三:
在根目录下的build.gradle文件下添加 ext{ .... } 中的内容:
ext{ kotlin_version = '1.1.51' rxandroid = '2.0.1' anko_version = '0.8.2' support_version = '26.1.0' target_sdk_version = 26 compile_sdk_version = 26 min_sdk_version = 15 }
使用规则,字符串需使用“$rootProject.”,整形直接用rootProject.。ext可加可不加
android { compileSdkVersion rootProject.compile_sdk_version defaultConfig { applicationId "com.xxx.xxxx" minSdkVersion rootProject.ext.min_sdk_version targetSdkVersion rootProject.ext.target_sdk_version versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } } dependencies { implementation filetree(dir: 'libs',include: ['*.jar']) implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$rootProject.ext.kotlin_version" implementation "com.android.support:appcompat-v7:$rootProject.support_version" implementation "io.reactivex.rxjava2:rxandroid:$rootProject.rxandroid" compile "org.jetbrains.anko:anko-common:$rootProject.anko_version" compile "com.android.support:recyclerview-v7:$rootProject.support_version" }
方式四:
在项目根目录下创建.gradle文件,如:config.gradle,config.gradle中文件内容可以自己定义,如下示例:
ext{ kotlin_version = '1.1.51' rxandroid = '2.0.1' anko_version = '0.8.2' support_version = '26.1.0' target_sdk_version = 26 compile_sdk_version = 26 min_sdk_version = 15 }
使用规则,在build.gradle中先引用进来:
apply from :"config.gradle" dependencies { compile filetree(include: ['*.jar'],dir: 'libs') compile "com.android.support
总结
以上所述是小编给大家介绍的Android Studio中统一管理版本号引用配置问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持!
android studio 3.0加载其他人项目时的一些配置问题
1 首先确定自己的Android Studio 确实可以正确运行一个project
2 修改 build.gradle:
build.gradle 文件有两个级别
项目级:针对module的全局配置 ./build.gradle
module级: . app/buile.gradle, 更细致的配置
按照你的可以运行的project 的两个build.gradle 文件,修改导入的其他人的project中这两个文件以下配置
a. ./build.gradle
将其改成你已经下好的gradle版本
b . app/buile.gradle
修改sdk版本 和 buildtools 版本
android studio gradle 统一管理版本
创建 config.gradle
ext {
android = [
compileSdkVersion : 26,
buildToolsVersion : "26.0.2",
minSdkVersion : 15,
targetSdkVersion : 26,
versionCode : 1,
versionName : "1.0",
androidSupportVersion: "26.1.0",
]
dependencies = [
"annotations" : "com.android.support:support-annotations:${android["androidSupportVersion"]}",
"appcompat-v7" : "com.android.support:appcompat-v7:${android["androidSupportVersion"]}",
"design" : "com.android.support:design:${android["androidSupportVersion"]}",
]
}
使用
project--gradle
apply from : "config.gradle"
app--gradle
defaultConfig {
applicationId "com.example.ma.demo"
minSdkVersion rootProject.ext.android["minSdkVersion"]
targetSdkVersion rootProject.ext.android["targetSdkVersion"]
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
dependencies {
implementation fileTree(include: [''*.jar''], dir: ''libs'')
implementation rootProject.ext.dependencies["appcompat-v7"]
}
Android studio Gradle配置通用配置
在使用Android studio Android开发中Gradle通常会遇到很多相同的配置例如在不同的module中都要配置相同的compileSdkVersion、buildToolsVersion等
这时我们可以定义一个共享变量统一他们的配置,防止不同module因为配置不同而导致的一些兼容性问题,或一些其他bug
一、定义共享变量
在工程根目录创建一个名为common_config.gradle的文件
文件内容举例
project.ext{
//java相关
java_version=8
java_max_heap_size=4G
//JDK版本兼容
source_compatibility = this.&getJavaVersion()
target_compatibility = this.&getJavaVersion()
//kotlin 版本‘
kotlin_version = ''1.3.41''
//Android编译相关版本
compile_sdk_version =28
build_tools_version =''28.0.3''
min_sdk_version= 16
target_sdk_version =29
//混淆相关
minify_enabled =false
}
def getJavaVersion(){
switch (project.ext.java_version){
case "6":
return JavaVersion.VERSION_1_6
case "7":
return JavaVersion.VERSION_1_7
case "8":
return JavaVersion.VERSION_1_8
}
}
二、引入通用配置
apply from:"${project.rootDir}/common_config.gradle"
示例:
buildscript {
//引入通用配置
apply from:"${project.rootDir}/common_config.gradle"
repositories {
google()
jcenter()
}
dependencies {
classpath ''com.android.tools.build:gradle:3.5.0''
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
//small 插件框架
// classpath ''net.wequick.tools.build:gradle-small:1.1.0-alpha2''
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
......
三、在Module中使用这个通用配置
示例:
compileSdkVersion compile_sdk_version
buildToolsVersion build_tools_version
defaultConfig {
applicationId "com.jelly.smalldemo"
minSdkVersion minSdkVersion
targetSdkVersion targetSdkVersion
versionCode 1
versionName "1.0.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
applicationIdSuffix =kotlin_version
}
buildTypes {
release {
minifyEnabled minify_enabled
proguardFiles getDefaultProguardFile(''proguard-android-optimize.txt''), ''proguard-rules.pro''
}
}
Android studio so文件 配置问题 CPU架构不同 apk缩小
-
android支持的cpu架构(目前是七种)
armeabi | 第5代 ARM v5TE,使用软件浮点运算,兼容所有ARM设备,通用性强,速度慢 --只支持这个就够了 |
armeabi-v7a | 第7代 ARM v7,使用硬件浮点运算,具有高级扩展功能 --只支持这个就够了 |
arm64-v8a | 第8代,64位,包含AArch32、AArch64两个执行状态对应32、64bit |
x86 | intel 32位,一般用于平板 |
x86_64 | intel 64位,一般用于平板 |
mips | 少接触 |
mips64 | 少接触 |
Android 设备的CPU类型(通常称为”ABIs”)
- armeabiv-v7a: 第7代及以上的 ARM 处理器。2011年15月以后的生产的大部分Android设备都使用它.
- arm64-v8a: 第8代、64位ARM处理器,很少设备,三星 Galaxy S6是其中之一。
- armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多。
- x86: 平板、模拟器用得比较多。
- x86_64: 64位的平板。
- 问题
这是最新应用的lib下的目录结构,然后同样打旧版本包的lib目录,发现,旧的包只有armeabi-v7a这个文件夹,再查看各个文件夹下的文件,又发现,新版本的包中确实只有在armeabi-v7a文件夹下有libmupdf.so文件,其他文件夹下的都是fresco的so文件,而armeabi-v7a存放的是32位的so文件。
只保留某一个abi,比如armeabi
为了包大小的考虑,去掉多余的本地库
build.gradle中
android {
defaultConfig {
ndk {
abiFilters ''armeabi''
//abiFilters "armeabi","armeabi-v7a"
}
}
}
-
建议
来自于博客:《与 .so 有关的一个长年大坑 》给的建议是:
1.为了减小 apk 体积,只保留 armeabi 和 armeabi-v7a 两个文件夹,并保证这两个文件夹中 .so 数量一致
2.对只提供 armeabi 版本的第三方 .so,原样复制一份到 armeabi-v7a 文件夹
-
文档
GRADLE构建最佳实践
用GRADLE构建安卓项目已是大势所趋,具体实战中姿势啥的很重要,结合具体应用场景,最佳实践给你最佳的体验
http://www.figotan.org/2016/04/01/gradle-on-android-best-practise/
与 .so 有关的一个长年大坑
https://zhuanlan.zhihu.com/p/21359984
https://zhuanlan.zhihu.com/p/23102158
关于Android Studio中统一管理版本号引用配置问题和android studio 版本号的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于android studio 3.0加载其他人项目时的一些配置问题、android studio gradle 统一管理版本、Android studio Gradle配置通用配置、Android studio so文件 配置问题 CPU架构不同 apk缩小的相关信息,请在本站寻找。
本文标签: