SVG(
Scalable Vector Graphics,可缩放的矢量图形)
:就是用于描述二维矢量图形的图形格式。
svg网站:https://www.iconfont.cn/collections/detail?cid=20979
还有在线转化工具。
VectorDrawable
: 从5.0(API等级21)开始,android了支持矢量图,优点:文件比位图要小,可以缩小我们apk体积,并且可以任意放大矢量图形,而不会丢失细节或影响清晰度,在屏幕适配时,只用一套图即可。它是Android
当中的SVG
实现,它并不支持SVG
的全部语法,只是支持部分有必要的部分。
https://www.cnblogs.com/guanxinjing/p/9708577.html
Gradle
详解
基本配置:AS
中的Android
项目通常至少包含两个build.gradle
,一个是Project
范围的,另一个是Module
范围的,由于一个Project
可以有多个Module
,所以每个Module
下都会对应一个build.gradle
。
Project
下的build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
apply from: "config.gradle"
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.1'
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
buildscript
下的repositories
是gradle
脚本自身需要的资源,allprojects
下的repositories
是项目所有模块需要的资源。
build.gradle
//声明插件,表明这是一个Android程序;如果是库,那么应当是com.android.library
apply plugin: 'com.android.application'
//Android构建过程需要配置的参数
android {
//编译版本
compileSdkVersion rootProject.ext.android.compileSdkVersion
//buildTool版本
buildToolsVersion rootProject.ext.android.buildToolsVersion
//默认配置,同时应用到debug和release版本上
defaultConfig {
applicationId rootProject.ext.android.applicationId
minSdkVersion rootProject.ext.android.minSdkVersion
targetSdkVersion rootProject.ext.android.targetSdkVersion
versionCode rootProject.ext.android.versionCode
versionName rootProject.ext.android.versionName
testInstrumentationRunner rootProject.ext.android.testInstrumentationRunner
}
//配置debug和release版本的一些参数,例如混淆,签名配置等
buildTypes {
//release版本
release {
minifyEnabled false //是否开启混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //混淆文件位置
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile rootProject.ext.dependencies["support-v7"]
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
}
下面对Android
构建过程中需要配置的参数做一些解释:
compileSdkVersion
:告诉gradle
用那个Android SDK
的版本编译你的应用,修改它不会改变运行时的行为,因为它不会被包含进入最终的APK
中;因此,推荐使用最新的SDK
编译;如果使用Suppport Library
,那么compileSdkVersion
必须要大于等于它的大版本号。minSdkVersion
:应用最低可运行的要求;它必须要大于等于你所依赖的库的minSdkVersion
;targetSdkVersion
:Android
提供向前兼容的重要依据。(targetSdkVersion is the main way Android provides forward compatibility
) 因为随着Android
系统的升级,某个api
或者模块的行为有可能发生改变,但是为了保证老APK
的行为和以前兼容,只要APK
的targetSdkVersion
不变,那么即使这个APK
安装在新的Android
系统上,那么行为还是保持老的系统上的行为。 系统在调用某个api
或者模块的时候,会先检查调用的APK
的targetSdkVersion
,来决定执行什么行为。
minSdkVersion
和targetSdkVersion
最终会被包含进入最终的APK
文件中,如果你查看生成的AndroidManifest.xml
,那么会发现:
所以,我们一般遵循的规则是:
minSdkVersion (lowest possible)
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?