All Projects → meili → Aceso

meili / Aceso

Licence: apache-2.0
A hotfix library for Android

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Aceso

symdl
symdl is a simple little tool, its function is very similar to dlsym, with symdl, you can pass any global C function name string, so as to achieve the dynamic call of C function.
Stars: ✭ 49 (-93.8%)
Mutual labels:  hotfix
Tinker
Tinker is a hot-fix solution library for Android, it supports dex, library and resources update without reinstall apk.
Stars: ✭ 16,151 (+1944.43%)
Mutual labels:  hotfix
Robust
Robust is an Android HotFix solution with high compatibility and high stability. Robust can fix bugs immediately without a reboot.
Stars: ✭ 4,125 (+422.15%)
Mutual labels:  hotfix
Xlua UGUI Demo
A MVC UGUI hot fix demo using Xlua.
Stars: ✭ 16 (-97.97%)
Mutual labels:  hotfix
UnityHotFix
Unity assetsbundle hotfix。Unity 资源热更新方案。
Stars: ✭ 24 (-96.96%)
Mutual labels:  hotfix
Ilruntime hotgames
基于ILRuntime的热更新能力实现的可以直接使用的框架,友情赠送C# WebService + WebSocketServer服务器端。
Stars: ✭ 293 (-62.91%)
Mutual labels:  hotfix
ultron
Another Android Real-time Hotfix Based Instant Run
Stars: ✭ 20 (-97.47%)
Mutual labels:  hotfix
Sdkhotfix
在用户规模千万级别的app中验证过,稳定无兼容问题,5分钟让你的SDK拥有热修复能力。A SDK hotfix library with stable verified in tens of millions of users can be accessed in only five minutes.
Stars: ✭ 585 (-25.95%)
Mutual labels:  hotfix
CSwift
C Module for Swift, Swift Script and Dynamic Library Call;Swift中直接调用C语言源程序的展示程序
Stars: ✭ 46 (-94.18%)
Mutual labels:  hotfix
Ttpatch
热修复、热更新、JS代码动态下发、动态创建类
Stars: ✭ 372 (-52.91%)
Mutual labels:  hotfix
GeekServer
基于.Netcore的开发效率高,性能强,跨平台,持久化层透明,支持不停服热更新的游戏服务器。Best for your unity game server!
Stars: ✭ 171 (-78.35%)
Mutual labels:  hotfix
tinkerpatch-easy-sample
无需修改自己App代码,一键接入的Sample
Stars: ✭ 79 (-90%)
Mutual labels:  hotfix
Knight
Knight is a game framework based on Unity3D engine. It includes a complete assetbundle manager, a c# hotfix module based on ILRuntime, and a UI module based on MVVM, and other basic functions support.
Stars: ✭ 302 (-61.77%)
Mutual labels:  hotfix
JVMTI Demo
android p jvmti/android studio apply change
Stars: ✭ 46 (-94.18%)
Mutual labels:  hotfix
Small
A small framework to split app into small parts
Stars: ✭ 5,012 (+534.43%)
Mutual labels:  hotfix
hotfix
Lua 5.2/5.3 hotfix. Hot update functions and keep old data.
Stars: ✭ 67 (-91.52%)
Mutual labels:  hotfix
Tinkerpatch Sdk
TinkerPatch SDK
Stars: ✭ 290 (-63.29%)
Mutual labels:  hotfix
Tinker Manager
微信tinker补丁管理,后端代码+客户端sdk
Stars: ✭ 670 (-15.19%)
Mutual labels:  hotfix
Jengine
JEngine是针对Unity开发者设计的开箱即用的框架,封装了强大的功能,小白也能快速上手,轻松制作可以热更新的游戏 | JEngine is a streamlined and easy-to-use framework designed for Unity Programmers which contains powerful features, beginners can start up quickly and making hot update-able games easily
Stars: ✭ 564 (-28.61%)
Mutual labels:  hotfix
Ocrunner
Execute Objective-C patch file generated by ORPatchGenerator. iOS hotfix SDK.
Stars: ✭ 314 (-60.25%)
Mutual labels:  hotfix

Aceso

Aceso is a Android HotFix by optimizing the AOSP's "InstantRun HotSwap" solution, it is used to fix online bugs without a new APK publish.

wiki

中文说明

Features

  • Support 4.x to 7.0 Android OS
  • Perfect compatibility
  • Taking effect immediately after download without reboot
  • Support fixing at method level
  • Support adding new classes

Limitations

  • Current not support fixing static code block and constructors.
  • Functions that shrinked/inlined by proguard are NOT repariable.
  • Only the Method's body can be fixed.

Usage

1.Add below codes in the outest project's build.gradle file

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
         classpath 'com.mogujie.aceso:aceso-build:0.0.3'
    }
}

2.Add below codes in the module's build.gradle

apply plugin: 'AcesoHost'

dependencies {
    compile 'com.mogujie.aceso:aceso-android-lib:0.0.1'
}

Add below codes once you need aceso for Debug version.

Aceso {
    instrumentDebug = true
}

3.Add below codes at the place after HotFix downloaded and Application's onAttachedBaseContext() or onCreate()

 new Aceso().installPatch(optDir, patchFile);

4.Pls. reserve the file folder "build/intermediates/aceso" under module directory at each HotFix publishment.

Generate Patch

1.An additional Fix project is needed(pls. refer to aceso-demo-fix)

2.Pls. add below codes in the outest prject's build.gradle:

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
         classpath 'com.mogujie.aceso:aceso-build:0.0.3'
    }
}

3.Pls. add below codes in the module's build.gradle:

apply plugin: 'AcesoFix'

Aceso {
    // The HotFix is for method level once methodLevelFix set to true, i.e., only fix the designated method, the annotation @FixMtd should be added above the method to be fixed. Once set to false, the HotFix is for class level. 
    methodLevelFix = true
    // Below files are those aceso file folders whch mentioned in 4th step of Usage, pls. refer to the file usage in the wiki.
    instrumentJar = The path of instrument.jar which generated in host project
    acesoMapping = The path of aceso-mapping.txt which generated in host project
}

dependencies {
	// refer to the file usage in the wiki and aceso-demo-fix project
    provided files(The path of all-classes.jar which generated in host project)
}

4.Pls copy the class to be fixed to Fix project, and reserve the package name, e.g., the class to be fixed named com.mogujie.aceso.demo.MainActivity, the MainActivity in fix project should reserve the package name as com.mogujie.aceso.demo.MainActivity.

5.Fix you bug in Fix project.

6.Pls. add @FixMtd above the method to be fixed once methodLevelFix is set.

7.Execute command gradle acesoRelease(or acesoDebug) to generate the patch package, the patch would be generated under directory build/outputs/apk

8.Deploy the patch to the target phones.

Demo

1.Compile and install aceso-demo, press the test button, the 'not fix' would be displayed

2.Execute command gradle acesoRelease(or acesoDebug) in project 'aceso-demo-fix'

3.Use adb push command to push the apk generated to path '/sdcard/fix.apk'

4.Press fix button on the phone

5.Press test button, the 'has been fixed' would be displayed!

Thanks

License

Aceso is under the Apache 2.0 license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].