最近公司项目不忙,想着要不把之前项目中写的代码、用的框架封装一下,于是便动手开始了。
项目基于Activity+多Fragment架构,其中多处会用到一个sdk,这个是我自己的核心工具库,已经上传到mavenCentral。
implementation 'com.redapplenet:HuicentCoreLibrary:1.0.3-rc3'
[注]经常迭代,最新版本请见HuicentCoreLibrary核心功能库更新说明
首先创建一个标准的AS空项目,根据习惯我会优化一下gradle文件结构,就把gradle优化写在第一篇吧。
Gradle优化
1、使用单独gradle文件管理引入库
在工程根目录创建一个build-third.gradle管理三方库的引用,如下:
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
implementation "com.android.support:appcompat-v7:${android_support_library_version}"
implementation "com.android.support:design:${android_support_library_version}"
implementation "com.android.support:support-v4:${android_support_library_version}"
// ...
}
在app模块的gradle中应用
apply plugin: 'com.android.application'
apply from: '../build-third.gradle'
2、在gradle.properties中配置参数
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.daemon=true
## init project compile params
compile_sdk_version=26
build_tool_version=26.0.2
application_id=com.huicent.tfp
min_sdk_version=19
target_sdk_version=26
android_support_library_version=26.1.0
## init app version param
version_code=100
version_name=1.0.0
在gradle应用配置,如
compileSdkVersion Integer.parseInt("${compile_sdk_version}")
buildToolsVersion "${build_tool_version}"
defaultConfig {
applicationId "${application_id}"
minSdkVersion Integer.parseInt("${min_sdk_version}")
targetSdkVersion Integer.parseInt("${target_sdk_version}")
versionCode Integer.parseInt("${version_code}")
versionName "${version_name}"
multiDexEnabled true
ndk {
abiFilters "armeabi", "armeabi-v7a"
}
}
===
就先写这些吧,下一篇进入正题。