- 博客(8)
- 资源 (7)
- 收藏
- 关注
原创 代理模式
静态代理定义抽象接口 public interface IRequest{ void request(String params); } 被代理类1 static class Retrofit implements IRequest{ @Override public void request(String params) {
2017-12-21 20:16:30 292
原创 Git Submodule
场景:假如A项目团队,有一个项目A,里面有一个不错的网络模块NetModule,这时候B团队的B项目想直接用NetModule,这时候有两种方式进行导入: 方案一:下载A项目,然后将NetModule导入进去 方案二:git submodule的方式,cloneA项目到B项目的lib文件下假如后续过程中A对NetModule进行了修改 方案一需要下载A项目,还要根据哪里修改了,修改自己项目中的
2017-12-18 18:42:36 416
原创 Android跨进程通信
本文基于《Android开发艺术探索》,是一本不错的进阶书籍。多进程IPC(Inter-Process Communication):进程间通信或者跨进程通信,两个进程间进行数据交换的过程。 线程:CPU调度的最小单元。 进程:一个执行单元,比如一个程序活着应用。 一个进程可以包含多个线程。在Android中使用多进程的方法:在AndroidManifest.xml中指定android:pro
2017-12-12 17:01:46 739
原创 RxJava源码分析(二)
这次聊的是RxJava的线程切换流程,先看一张图: 这个时序图对应的RxJava代码: public void demo2(){ createObservable() .subscribeOn(Schedulers.newThread())//被观察者在新线程执行subscribe .observeOn(Andr
2017-12-08 19:00:54 276
原创 RxJava源码分析(一)
RxJava官网快速入门,推荐下面大神整理的教程: 给初学者的RxJava2.0教程(一) 给初学者的RxJava2.0教程(二) ….. 给初学者的RxJava2.0教程(九)AndroidStudio配置: implementation 'io.reactivex.rxjava2:rxjava:2.1.7' implementation 'io.reactivex.rxja
2017-12-06 20:06:29 384
原创 替换dex实现热修复
安卓App热补丁动态修复技术介绍本文就是对上面的原理进行简单实现。 主要思想: 首先一个确保apk是由多个dex组成的,dex1、dex2、dex3等。 dex1一般会包含application等。假如dex2中出现了bug,那么我们可以修复相应的bug,生成对应的newdex2,然后将newdex2放置到dexements数组的前面。那么其他方法调用dex2中的方法时,会先从数组的由前往后遍
2017-12-04 19:31:13 1294 1
原创 ijkplayer编译
ijkplayer安装homebrew、git、yasm# install homebrew, git, yasm ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew install git brew install yasm根据自己需要,进行如下设置If you
2017-12-04 15:14:39 1162
原创 AndFix实现原理
AndFix不需要重启app即可实现bug修复,AndFix是“Android hot-fix”的缩写。AndFix实现步骤: 1.通过注解的生成补丁包(.apatch) 2.通过获取.apatch中的补丁类,然后通过注解方式获取需要打补丁的方法。 3.补丁中的方法替换bug中的方法。补丁包暂且不考虑,现在实现2、3步骤获取补丁包中要替换的方法新建项目,项目最终结构如下: 注解方法Methd
2017-12-01 16:44:31 1955
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人