最近公司项目不忙,想着要不把之前项目中写的代码、用的框架封装一下,于是便动手开始了。
项目基于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" } }
===
就先写这些吧,下一篇进入正题。