本文翻译自 Javassist Tutorial-2 4. 自省和自定制 (Introspection and customization) CtClass 提供了自省的方法...
本文翻译自 Javassist Tutorial-2 4. 自省和自定制 (Introspection and customization) CtClass 提供了自省的方法...
RePlugin,360开源的全面插件化框架,按照官网说的,其目的是“尽可能多的让模块变成插件”,并在很稳定的前提下,尽可能像开发普通App那样灵活。那么下面就让我们一起深入...
前言 Replugin 已经开源一个月了,最近几天终于抽出时间来研究研究,这里将我的一些心得体会写下来,分享给大家,希望能帮助后来者少走弯路。关于 Replugin 的基本介...
1 前言 在文章开头,有一点我要说明,这篇文章很长,请耐心看完,有什么不对的地方,欢迎指正哦。以下分析是基于android 9.0,全文概述了系统从selector的xml的...
前言 前一片文章讲了Systrace的基本用发,本片文章讲解通过一个例子的分析,如何在生成的trace信息中找到你想要的内容。 一. App启动方式以及启动流程 1.1 Ap...
更多移动技术文章请关注本文集:知乎移动平台专栏 背景 知乎 Android 客户端作为一个比较大型的应用,由于功能不断地迭(zeng)代(jia),启动速度也会受到影响,为了...
更多移动技术文章请关注本文集:知乎移动平台专栏 背景 知乎 Android 客户端最早使用的是最常见的单工程 MVC 架构,所有业务逻辑都放在了主工程 Module 里,网络...
背景 2018 年初,知乎 Android 客户端处于组件化中期阶段,组件的拆分和建立正在如火如荼的进行。得益于组件化, java 文件可以提前编译为 class 文件, a...
1, 明文流量网络请求 CLEARTEXT communication to * not permitted by network OkHttp3做了检查,所以如果使用了明文...
jvm原理 Java虚拟机是整个java平台的基石,是java技术实现硬件无关和操作系统无关的关键环节,是java语言生成极小体积的编译代码的运行平台,是保护用户机器免受恶意...
前言 任何一个傻瓜都可以写出计算机可以理解的代码。唯有写出人类容易理解的代码,才是优秀的程序员 重构的意图 重构不产生新的功能,狭义范围来说也不修复原有的bug 重构:对软件...
一、背景 MVI在架构分层上和MVP没有本质区别,但区别主要体现在架构风格和编程思想上 MVI风格面向意图,响应式编程状态模式 + 流处理思想 = 单向不可变数据流统一状态源...
本文为读书笔记 一、架构决策的案例 架构设计决策交流 对并发的考虑不足,使用Spark导致瓶颈无法解决 由于是微服务,接口保证了可扩展性,整体迁移到ES,前端不需要修改 决策...
一、集合 基本集合 CollectionList 有序,可重复,索引速度快;插入删除速度慢Set 无序,不可重复。位置由HashCode决定并由此判断是否重复 Map 键唯一...
一、内存 虚拟机管理的内存包括以下运行时数据区域 线程私有 程序计数器。 当前线程所执行的字节码的行数指示器。native方法则数值为空 Java虚拟机栈。 每个方法执行时都...