#Amigo Usage
Amigo is a hotfix library which can hotfix almost everything for your app.
In your project's build.gradle
dependencies {
classpath 'me.ele:amigo:0.0.3'
}
In your module's build.gradle
apply plugin: 'me.ele.amigo'
you are good to go now, as simple as this.
There are two ways to make hotfix work.
-
if you don't need hotfix work immediately
you just need to download new apk file to /data/data/{your pkg}/files/amigo/demo.apk, when app restarts next time, hotfix apk will be loaded as fresh as new.
File hotfixApk = Amigo.getHotfixApk(context);
And you can use Amigo's tools to copy your apk to the specified folder.
FileUtils.copyFile(yourApkFile, amigoApkFile);
-
work immediately, app will restart immediately
Amigo.work(context); Amigo.work(context, apkFile);
Amigo.clear(context);
note:if apk has changed we will automatic clear the old apk.
some time-tense operation is handled in a new process with an activity, you may customize it
<meta-data
android:name="amigo_layout"
android:value="{your-layout-name}" />
<meta-data
android:name="amigo_theme"
android:value="{your-theme-name}" />
you can add activities & receivers whatever you like to add in your hotfix apk, waiting for Service & ContentProvider
if you would like to RTFC, please checkout support_new_added_components branch
this's in beta version for now, so you may use this
classpath 'me.ele:amigo:0.0.1-beta1'
...
if you try to experience Amigo's magic, you can integrate with your own app as you like; also you can play with this app demo following the procedures below.
- ./gradlew clean assembleRelease & adb install .../build/outputs/apk/app-release.apk
- change code wherever you like & ./gradlew clean assembleRelease
- adb push .../build/outputs/apk/app-release.apk /sdcard/demo.apk
- kill Amigo demo by yourself & restart to check if your change works
Copyright 2016 ELEME Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR COND