androidstudio中各种gradle配置解释说明
来源:互联网 发布:js日期时间插件 编辑:程序博客网 时间:2024/06/17 20:44
androidstudio中各种gradle配置解释说明
我们知道每一个app就是as里面的一个modle,最进由于工作接触了各种gradle配置眼花缭乱,现在此记录下来,以防止以后忘记,笔记如下:
- 关于一个app的gradle的配置
- 关于一个sdk的gradle的配置
- 如何设置一个只有服务没有mainactivity的应用让其运行并安装无桌面图标
关于一个app的gradle的配置
下面是一个app,它支持编译不同版本的app,配置如下:
import java.text.SimpleDateFormatapply plugin: 'com.android.application' //这个代表当前modle是一个app而不是一个libraryandroid { 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" />
0 0
- androidstudio中各种gradle配置解释说明
- androidstudio中各种gradle配置解释说明
- AndroidStudio Gradle简要配置说明
- AndroidStudio中build.gradle文件详细配置说明
- Androidstudio中gradle配置和使用
- Androidstudio中gradle配置和使用
- Mac下AndroidStudio中手动配置Gradle
- Mac下AndroidStudio中手动配置Gradle
- Androidstudio中gradle配置资源文件
- Mac下AndroidStudio中手动配置Gradle
- Mac下AndroidStudio中手动配置Gradle
- Mac下AndroidStudio中手动配置Gradle
- Androidstudio配置本地Gradle
- AndroidStudio NDK Gradle配置
- AndroidStudio gradle配置
- AndroidStudio配置gradle
- AndroidStudio gradle配置
- AndroidStudio gradle配置
- swift 常用动画
- 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
- IOS推送总结
- Web安全测试之XSS
- 关于使用AsyncHttpClient做断点上传功能时无法回调进度的问题
- androidstudio中各种gradle配置解释说明
- python及常用库numpy、scipy、matplotlib安装与卸载
- java使用jsp servlet来防止csrf 攻击的实现方法
- Android-Interview-Preparation
- 软导正值表与门电路
- 下决心概率图模型学习
- Xcode:Playground中延时调用的新写法
- 互联网广告系统综述三业务描述
- Raspberry Pi3 安装 ROS桌面完整版攻略