Skip to content
forked from eleme/Amigo

A hotfix library for Android platform, and not just this...

Notifications You must be signed in to change notification settings

peacepassion/Amigo

 
 

Repository files navigation

#Amigo Usage

中文版

amigo.png

Amigo is a hotfix library which can hotfix almost everything for your app.

Usage

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.

to make hotfix work

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);

maybe hotfix needs to be cleared

Amigo.clear(context);

note:if apk has changed we will automatic clear the old apk.

customize the fix layout

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}" />

load new Activity and BroadcastReceiver

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'
 ...

play with demo

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.

  1. ./gradlew clean assembleRelease & adb install .../build/outputs/apk/app-release.apk
  2. change code wherever you like & ./gradlew clean assembleRelease
  3. adb push .../build/outputs/apk/app-release.apk /sdcard/demo.apk
  4. kill Amigo demo by yourself & restart to check if your change works

license

  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