All Projects → bihe0832 → SDKHoxFix

bihe0832 / SDKHoxFix

Licence: Apache-2.0 license
Android 上SDK的代码热更方案(Android-HoxFix-SDK-Native-Java)

Programming Languages

java
68154 projects - #9 most used programming language
groovy
2714 projects
c
50402 projects - #5 most used programming language
shell
77523 projects
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to SDKHoxFix

Mango
MangoFix is a DSL which syntax is very similar to Objective-C,MangoFix is also an iOS App hotfix SDK. You can use MangoFix method replace any Objective-C method.
Stars: ✭ 847 (+1311.67%)
Mutual labels:  hotfix
Amigo
A hotfix library for Android platform, and not just this...
Stars: ✭ 1,350 (+2150%)
Mutual labels:  hotfix
Htframework
Unity HTFramework, a rapid development framework of client to the unity.
Stars: ✭ 179 (+198.33%)
Mutual labels:  hotfix
Tinkerpatch Sample
已经改造完自身App的Application的应用的参考Sample
Stars: ✭ 63 (+5%)
Mutual labels:  hotfix
Injectfix
InjectFix is a hot-fix solution library for Unity
Stars: ✭ 1,198 (+1896.67%)
Mutual labels:  hotfix
Hotfix
一种轻量级的可以通过苹果审核的热修复方案,可以替代JSPatch的热修复方案。
Stars: ✭ 114 (+90%)
Mutual labels:  hotfix
Tinker Manager
微信tinker补丁管理,后端代码+客户端sdk
Stars: ✭ 670 (+1016.67%)
Mutual labels:  hotfix
Advancedandroid
Android 进阶
Stars: ✭ 2,446 (+3976.67%)
Mutual labels:  hotfix
Speed tools
敏捷开发工具包
Stars: ✭ 85 (+41.67%)
Mutual labels:  hotfix
Jspatch
JSPatch bridge Objective-C and Javascript using the Objective-C runtime. You can call any Objective-C class and method in JavaScript by just including a small engine. JSPatch is generally used to hotfix iOS App.
Stars: ✭ 11,337 (+18795%)
Mutual labels:  hotfix
Tinker app
Android热更新Tinker + 多渠道打包 + 加固的流程详解demo
Stars: ✭ 67 (+11.67%)
Mutual labels:  hotfix
Dynamicoc
深入理解 iOS 热修复原理
Stars: ✭ 76 (+26.67%)
Mutual labels:  hotfix
Glean
hotfix for go applications via plugin, supports Linux and MacOS
Stars: ✭ 125 (+108.33%)
Mutual labels:  hotfix
Andfix
AndFix is a library that offer hot-fix for Android App.
Stars: ✭ 6,925 (+11441.67%)
Mutual labels:  hotfix
Android article
Android热更新、异步并发、性能优化、编译打包、适配相关等文档 by yang。huh...The palest ink is better than the best memory.
Stars: ✭ 181 (+201.67%)
Mutual labels:  hotfix
Aceso
A hotfix library for Android
Stars: ✭ 790 (+1216.67%)
Mutual labels:  hotfix
Fastdex
🚀 加快 apk 的编译速度 🚀
Stars: ✭ 1,457 (+2328.33%)
Mutual labels:  hotfix
U3dFrameworkTolua
游客学院框架,Fairygui+Tolua
Stars: ✭ 61 (+1.67%)
Mutual labels:  hotfix
Rocketcocoa
A framework for running any extra Cocoa code dynamically
Stars: ✭ 187 (+211.67%)
Mutual labels:  hotfix
Nice Ts
基于puerts的Unity游戏框架,集成fairygui,protobufjs并采用addressables管理资源
Stars: ✭ 131 (+118.33%)
Mutual labels:  hotfix

SDKHotFix

关键词

Android-HoxFix-SDK-Native-Java(Android 上SDK的代码热更方案)

README介绍项目相关的一些核心内容,个人会陆续通过一系列文档来介绍这个项目的实现原理及运行方法的详细内容。如想了解更多细节,请点击http://blog.bihe0832.com/sdk_hotfix_project.html前往个人博客了解。

一、项目介绍

继插件化后,热补丁技术在2015年开始爆发,目前已经是非常热门的Android开发技术。关于热更新以及这些方案的优缺点,之前微信团队已经分享过,而且分析的很好,因此这里就不重点介绍了。感兴趣的同学可以点击了解:微信Android热补丁实践演进之路

目前的热更新方案中比较著名的有淘宝的Dexposed、支付宝的AndFix以及Qzone的multidex和微信的tinker。然而这些热更新方案基本上都有以下两个特点:

  1. 都是APP级别的的热更新解决方案,对于SDK的开发者来说很多地方需要一些调整
  2. 在理解、开发上成本都比较高;而且很多更多的是方案的推广。

因此为了解决SDK的热更新方案,也为了方便大家了解Android热更新,因此开发这个项目。

该项目主要是提供给SDK的开发者使用,提供了SDK开发者如何实现SDK自身热更新(包括Java代码和Native),如果是APP的开发者了解应用的热更新,建议参考dodola的HotFix项目,里面介绍的更全面。

为了降低项目的理解难度,关于java热更新,该项目暂时不会涉及怎么管理版本号、同时将怎么在代码中插桩、怎么生成版本差异包、怎么将差异包编为dex文件等内容封装在构建脚本中,这部分内容在体验时可以不用关注。

**由于本项目重点介绍重点SDK的热更新相关的内容,因此项目中的代码虽然是实现简单的功能,但是使用了SDK和demo等多个项目以及java和Native多层调用。**本项目中不会再介绍SDK相关的内容,建议可以先通过下面的链接了解这个项目的结构,然后再看热更新项目的内容,点击了解Android-gradle-jni-so

二、体验Demo

个人博客的SDK热更之Demo体验方法:http://blog.bihe0832.com/sdk_hotfix_demo.html中介绍了SDK的热更项目的详细体验方法,包括项目运行、补丁生成、热更效果验证等,大家可以前往博客查看。其中直接下载的方式,补丁包已经放在作者的服务器,体验时直接下载安装APK即可。这里仅附上直接体验方式的apk现在地址:

Demo下载二维码

三、工程介绍

代码目录简介

SDKHoxFix
	│
	├─── BuildPatch SDK自动插桩、自动生成补丁的插件工程
	│
	├─── DemoRes 目前线上的demo使用的相关补丁内容
	│
	├─── GradleTest 普通的Android应用工程,调用了SDK提供的相关函数,也就是SDK的使用者
	│
	├─── MD5 SDK项目的工程,最终打包后对外提供jar包和so,本项目主要也是介绍他的热更新
	|
	├─── build.sh SDK相关的自动构建脚本,生成SDK的jar、so、Demo、补丁文件
	│
   	└─── README.md 项目介绍

运行方法

如何修改配置及运行工程,请参考本人博客:终端基于gradle的开源项目运行环境配置指引

代码介绍

四、其他

参考及引用

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