Android学习笔记
来源:互联网 发布:孕婴店网络宣传广告语 编辑:程序博客网 时间:2024/06/05 11:55
前言
最近接触到了一个新的项目,里面应该有好多自己未曾学习过的地方,特此记录。
笔记
1.编译项目报错
Error:Execution failed for task ':app:dexInternalDebug'.> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'D:\SorftWare\JDK\bin\java.exe'' finished with non-zero exit value 3
因为项目中使用了DEX分包方案。
解决办法是在gradle文件的android节点中加入下面的配置,意思是增加java堆内存的大小。
dexOptions { javaMaxHeapSize "4g" }
2.provideComplie和compile的区别
如果你的jar包/依赖代码 在编译的时候需要依赖,在运行的时候也需要,那么就用compile
如果你的jar包/依赖代码 仅在编译的时候需要,但是在运行时不需要依赖,就用providedCompile
3.关于studio项目结构中文件的作用
gradle.properties: 配置文件,可以定义常量供build.gradle文件使用
settings.gradle:配置多模块
gradle-wrapper.jar和gradle-wrapper.properties,只要是gradle项目都会有,通过gradle init命令来创建。
gradlew和gradlew.bat:分别是linux下的shell脚本和windows下的批处理文件,
4.gradle命令所在位置
想要在命令行直接能够输入gradle命令,我们需要配置环境变量,这时候我们就要知道gradle命令所在路径
//Studio安装路径下的gradle文件夹中D:\SorftWare\AndroidStudio\gradle\gradle-2.4\bin
5.gradle命令
gradlew build编译项目
gradlew clean清理项目
gradlew -v查看gradle版本
gradlew assembleDebug编译Debug包
gradlew assembleRelease编译Release包
6.gradle配置
gradle有三种仓库,maven仓库,ivy仓库以及flat本地仓库。声明方式如下:
maven{ url "..."}ivy{ url "..."}flatDir{ dirs 'xxx'}
一般引用aar的时候使用flatDir
首先将aar文件放到模块的libs目录下,然后在该模块的build.gradle中声明flat仓库:
repositories{ flatDir{ dirs 'libs' }}
//使用外部脚本构建apply from: 'xxx.gradle'
//指定单元测试的配置 sourceSets { androidTest { java.srcDirs = ['tests/src'] manifest.srcFile 'tests/AndroidManifest.xml' } }
7.解决第三方库最低支持的版本高于应用最低支持的版本
在AndroidManifest.xml文件中 标签中添加
<uses-sdk tools:overrideLibrary="xxx.xxx.xxx"/>
,其中的xxx.xxx.xxx为第三方库包名,如果存在多个库有此异常,则用逗号分割它们,例如:,这样做是为了项目中的AndroidManifest.xml和第三方库的AndroidManifest.xml合并时可以忽略最低版本限制。
8.其他配置
minifyEnabled//主要用来控制是否运行混淆的zipAlignEnabled//zipAlign优化,可以提高应用运行效率versionNameSuffix//后缀名 ndk { //设置支持的SO库架构 abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a' } // 移除无用的resource文件 shrinkResources true //执行lint检查,有任何的错误或者警告提示,都会终止构建,我们可以将其关掉。 lintOptions { abortOnError false }
9.代码中设置权重
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); lp.weight = 1; itemView.setLayoutParams(lp);
- Android学习笔记--Gson笔记
- Android学习笔记
- Android学习笔记(二)
- android学习笔记--序
- android学习笔记1
- android学习笔记2
- android学习零碎笔记
- Android 学习笔记
- Android学习笔记(一)
- Android ExpandableListActivity 学习笔记
- Android EditText 学习笔记
- Android学习笔记3
- Android学习笔记4
- Android学习笔记5
- Android学习笔记9
- Android Animation学习笔记
- Android 学习笔记
- Android 数字签名学习笔记
- Android APP架构设计——MVC、MVP和MVVM介绍
- ubuntu配置samba
- 12.6static类成员
- 单例模式
- Codeforces 92A-Chips
- Android学习笔记
- 虚拟机克隆后改网卡
- 按F7进行编译时,有些项目无法编译
- git 分支
- URL Schemes
- Android中的命名空间
- js插件怎么写?
- Java设计模式学习02——工厂模式
- Linux JDK安装及配置 (tar.gz版)