![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android开源框架
文章平均质量分 85
Android开源框架
小 黄 鸡
QQ:2500503624
展开
-
Android 插件化实践
文章目录1 动态加载apk2 Hook AMS3 动态代理startActivity()4 Hook ActivityThread#Handler5 动态代理 handleMessage()1 动态加载apkActivity初始化时,使用DexPathLoader动态加载apk@Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceS原创 2021-03-12 20:22:36 · 319 阅读 · 0 评论 -
Android框架 EventBus源码分析
文章目录1 两个Map1 subscriptionsByEventType2 typesBySubscriber2 订阅过程1 封装并获取SubscriberMethod集合2 添加到订阅者集合中3 总结:3 发送事件过程1 发送事件调用栈2 事件执行的线程1 两个Map首先理解两个HashMap对象的用途。1 subscriptionsByEventType表示同一个事件被多少个订阅者订阅用途:1 通过事件类型,找到所有的订阅者,然后将此事件发送给所有的订阅者。 private final原创 2021-03-11 20:05:25 · 168 阅读 · 0 评论 -
Android框架 DiskLruCache源码分析
缓存的文件结构1 初始化1 DiskLruCache的创建 DiskLruCache.open(cacheDir, 1, 1, 1024 * 1024 * 10);通过静态方法open()来创建DiskLruCache对象public static DiskLruCache open(File directory, int appVersion, int valueCount, long maxSize) throws IOException { //原创 2021-03-11 20:05:58 · 215 阅读 · 0 评论 -
OkHttp源码笔记
OkHttp框架源码解析原创 2017-12-04 14:53:55 · 375 阅读 · 1 评论 -
Retrofit源码解析
设计模式: 创建时通过Builder模式创建,即Retrofit#Builder.build()方法,下面的代理模式也算一种核心思想: 在调用Retrofit#create()方法时,创建动态代理对象。也就是说当通过接口的实现类调用Api的接口方法时,都会执行到动态代理的invoke()方法回调中。全局主线Call: 在invoke()方法回调中,会将接口方法缓存,然后返回一个Call对象,即serviceApi.getUser();时会返回的Call对象。原创 2017-11-24 14:02:13 · 479 阅读 · 1 评论 -
EventBus初识
Event使用与订阅线程控制接收方 注册EventBus.getDefault().register(this);定义消息类型public class EventA { String message; public EventA(String message) { this.message = message; } public Stri原创 2017-12-13 09:53:53 · 384 阅读 · 1 评论 -
Android架构设计05-基于IOC的布局,控件,事件注入
此框架类似XUtils里面的Inject工具。 实现的功能是Activity中初始化布局@ContentView(R.layout.activity_main)public class MainActivity extends BaseActivity {控件初始化@ViewInject(R.id.btn_inject_view)Button btnInjectView;监听事件 @onCli原创 2017-08-04 11:26:01 · 450 阅读 · 0 评论 -
Android架构设计04-实体类转Json框架
本文介绍一个Json解析的框架,此框架支持把Bean或者嵌套实体类或者List< Bean >转成Json字符串。代码下载1 调用示例 下面是模拟数据的生成,然后把数据转成json格式。public static void format() { List<News> newsList = new ArrayList<>(); News news = new N原创 2017-05-02 09:44:51 · 699 阅读 · 0 评论 -
Android框架设计03-图片加载框架
本片文章介绍一个图片加载的框架。框架优点: 支持高并发,支持不同的加载策略(加载图片的优先级),显示图片自适应(老生常谈的图片压缩),支持缓存策略扩展。设计模式: 建造者模式,生产者消费者模式,单例模式,策略模式,模板方法模式其他知识点 内存缓存LruCache,磁盘缓存DiskLruCache,下载时将请求任务转发类图 (看不清可以右键,在新标签中打开) 流程分析 由于整个框架的代码比较原创 2017-04-22 13:19:47 · 583 阅读 · 0 评论 -
Android架构设计02-网络请求框架(一)
这篇博文是介绍一个类似Volley的网络请求框架。因为整个框架较大。所以要分多篇完成。这一篇介绍通过网络请求得到json数据的部分。后续还有下载部分。通过发送http请求得到数据。这么简单的问题为什么还要搭建框架呢? 这样的问题如果举例子有点麻烦。我直接说框架的优点。方便扩展。 支持高并发。会用到的相关知识点:泛型 阻塞队列 单例模式 策略模式 生产者消费者模式类图原创 2017-04-18 10:46:38 · 1235 阅读 · 1 评论 -
Android架构设计01-数据库框架
1 使用场景 涉及到数据库的操作,一般的都是使用第三方的框架,如GreeoDao,OrmLitem等。或者是直接利用SQLiteOpenHelper来完成数据库的增删改查以及数据库升级。那么对于这种写法,一般都比较繁琐。操作如下:DBHelper dbHelper = new DBHelper(this);SQLiteDatabase sqLiteDatabase = dbHelper.getW原创 2017-04-10 15:43:46 · 1835 阅读 · 1 评论