====== Android Freeline ======
Freeline is an open source solution to speed up your compiling, like 2 seconds compared to 2 minutes in the old way.
It's super fast because of the increment build only for the changed class.
- Github: https://github.com/alibaba/freeline
- QCon Shanghai 2016 Presentation: https://github.com/pjq/QConShanghai2016/tree/master/Mobile
===== How to Integrate =====
1. Add to the build.gradle in the root directory of your project
buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:2.2.2'
classpath 'com.google.gms:google-services:1.4.0-beta3'
//Freeline
classpath 'com.antfortune.freeline:gradle:0.8.2'
}
2. Add to the app/build.gradle
//Freeline
apply plugin: 'com.antfortune.freeline'
android {
...
freeline {
hack true
productFlavor 'flavorA'
}
productFlavors {
flavorA {}
}
...
}
===== How to Use =====
When you are the first time to run it
./gradlew initFreeline
Then enjoy it
python freeline.py
python freeline.py -d //with debug information logs
==== Force Clean Build ====
Also try the force clean build if it doesn't work
python freeline.py -f//If you need the force clean build.
===== Questions&Tips =====
- When you clean the cache of the App, you need to do the clean build
- When you files changed a lot, you also need to do the clean build
- When you switch between different branches, you may need to do the clean build
- You can add alias to your .bashrc or .zshrc if you like
* alias freeline='python freeline.py'
- If you don't want to commit the changes, you can use the patch command to do it
* Create the patch: git diff > freeline.patch
* Apply the patch: patch -p1 < freeline.patch
* Revert the patch: patch -p1 -R