androidstudio中各种gradle配置解释说明
2016-10-19 12:55
260 查看
androidstudio中各种gradle配置解释说明
我们知道每一个app就是as里面的一个modle,最进由于工作接触了各种gradle配置眼花缭乱,现在此记录下来,以防止以后忘记,笔记如下:关于一个app的gradle的配置
关于一个sdk的gradle的配置
如何设置一个只有服务没有mainactivity的应用让其运行并安装无桌面图标
关于一个app的gradle的配置
下面是一个app,它支持编译不同版本的app,配置如下:import java.text.SimpleDateFormat apply plugin: 'com.android.application' //这个代表当前modle是一个app而不是一个library android { compileSdkVersion 24 //源码编译使用的api的版本 buildToolsVersion "24.0.1" //构建工具的版本 defaultConfig { applicationId "com.zhangsan.lisi.services" //app的唯一标示,上架到市场上就是通过这个区分不同的app,相当于身份证 minSdkVersion 19 //19对应的系统是4.4,也就是说4.4以下版本的系统装不了这个app,此为最小兼容 targetSdkVersion 24 //目标sdk的版本,当遇到7.0系统的手机,这时的app运行效率最好 versionCode 1 //版本code,一般用于升级的时候使用,根据对比code来比大小判断是否该升级 versionName "1.2." + getBuildTime() //版本名称,起一个显示的作用,常常看到设置里面显示的版本的介绍里面的数字就是这个 // signingConfig signingConfigs.platformKey 配置默认的签名,指向platformKey ,必须把这句话注释掉的时候才可以打一个没有签名的包 } //签名的配置,platformKey ,userKey 这个可以随便取名字,只要对上号就行了singningConfigs.userkey,然后就是那几个签名的密码,在新建签名的时候有几个配置,对照一下就知道填啥了 signingConfigs { platformKey { keyPassword 'zhangsan12345678' storeFile file(getProjectDir().getParent() + '/key_store/platform.keystore')//签名文件放在你的电脑哪里 storePassword 'zhangsan12345678' keyAlias 'zhansan' } userKey { keyPassword 'lisi12345678' storeFile file("C:/Users/zhangxiaoya/Desktop/demo.jks") storePassword 'lisi12345678' keyAlias '李四' } } //这里是编译不同的版本,有debug ,release ,home ,business ,honour 几个版本,由于在业务上需要区分不同版本的区别,所以这里单独配置 buildTypes { debug { buildConfigField "int", "Type", "1" minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' // signingConfig signingConfigs.userKey 可以单独为不同的版本配置不同的签名,图标之类的,具体百度 } release { buildConfigField "int", "Type", "1" //自定义type字段,编译运行后在app->build->buildconfig->对应的版本下有个BuildConfig文件里面会有type这个字段,在java文件中可以导入应用 minifyEnabled false //是否打开混淆 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //混淆的配置文件规则 } home { buildConfigField "int", "Type", "1" minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } business { buildConfigField "int", "Type", "2" minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } honour { buildConfigField "int", "Type", "3" minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } android.applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk') && !outputFile.name.contains("debug")) { //这里修改apk文件名 def fileName = getProject().name + "-" + variant.baseName + "-${defaultConfig.versionName}.apk" output.outputFile = new File(outputFile.parent, fileName) } } } } } def getBuildTime() { //设置时间格式 SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHH"); //获取当前时间 Date curDate = new Date(System.currentTimeMillis()); return formatter.format(curDate); } dependencies { //引入对应的文件 compile files('libs/microlog4android-1.0.0.jar') compile files('libs/xUtils-2.6.14.jar') // compile project(':sdk-framework') compile 'com.bot.library.urlconfig:urlconfig:0.0.2' }
关于一个sdk的gradle的配置
下面是一个library的gridle,将来会打包成jar供其他人使用,它的配置如下://由于这里是提供给别人使用的一个依赖库,所以这个需要应用com.android.library这个插件,同时需要吧代码提交到maven仓库,因为也申明需要应用一下maven插件 apply plugin: 'com.android.library' apply plugin: 'maven' android { compileSdkVersion 24 buildToolsVersion "24.0.1" defaultConfig { minSdkVersion 15 targetSdkVersion 24 versionCode 1 versionName "1.0.1" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } //这个你利用gradle上传到maven中央库的基本配置,需要提供javadoc.jar,sources.jar,aar或者jar,pom,这个是生成sources.jar的配置 task androidSourcesJar(type: Jar) { classifier = 'sources' from android.sourceSets.main.java.sourceFiles } artifacts { archives androidSourcesJar } //项目中使用到了其他的库,所以这里是添加对这个库的依赖 dependencies { //吧lib下面的jar加载进来,才可以使用 compile fileTree(include: ['*.jar'], dir: 'libs') //在ecplise里面有jar和项目的引用,这句话就类似项目引用,意思是指把名字叫cos的library引用到项目中 // compile project(':library-cos') } //下面是要提交到maven的配置 uploadArchives { configuration = configurations.archives repositories.mavenDeployer { //远程仓库的地址,貌似有具体ip的基本上都是建在局域网的仓库 repository(url: 'http://101.154.73.251:8080/nexus/content/repositories/releases/') {//仓库地址 authentication(userName: "admin",//用户名 password: "@xx321!@#")//密码 } pom.project { name 'juude-library' //项目的名称 packaging 'aar' //要提交文件的类型 description 'none' //描述 url 'http://101.123.25.110:8080/nexus/content/repositories/releases/'//仓库地址 groupId "com.bot.library.sdk" //注册sonatype账号时有填,这里是域名反转+项目名 artifactId "sdk" version android.defaultConfig.versionName } } }
如何设置一个只有服务没有mainactivity的应用让其运行并安装无桌面图标
只有服务的应用本来就没有图标,服务本来就是工作在后台的,一般系统内置的应用都是没得图标在桌面上的,在ecplise里面你只需要吧这2句话去掉就好了或者根本不配置mainactivity,可是不知为何在as里面去掉了这两句话,app编译就会出错,报找不到mainactivity的错误<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
如果你是用as开发,那么只需要在mainactivty配置中加上这么一句话就好了
<data android:host="AuthActivity" android:scheme="com.android.example" />
相关文章推荐
- androidstudio中各种gradle配置解释说明
- AndroidStudio中build.gradle文件详细配置说明
- AndroidStudio Gradle简要配置说明
- Gradle常用命令操作及配置说明
- AndroidStudio gradle配置
- AndroidStudio gradle配置
- AndroidStudio gradle配置
- SpringBoot application.properties各种配置解释
- 【IBatis.Net】 各种配置说明
- Mac下AndroidStudio中手动配置Gradle
- 在AndroidStudio中,使用Gradle打包aar到JCenter仓库!完整版教程!填补各种坑
- 关于AndroidStudio 配置gradle和gradle插件的问题
- Android studio gradle文件说明与配置
- Android Studio Gradle Scripts配置说明
- 关于《在AndroidStudio中,使用Gradle打包aar到JCenter仓库!完整版教程!填补各种坑》更新验证
- linux内核编译过程及配置说明解释(1)--Kernel Configuration
- Java正则表达式中各种字符以及转义字符的解释说明
- httpd2.4.6配置文件解释说明
- hbm配置文件 generator节点各种解释
- Android Studio里面的Build.gradle的详细配置说明