首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
十方旅人
掘友等级
android rd
|
绕树三匝,何枝可依?
我与Android,since 2015。
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
0
文章 0
沸点 0
赞
0
返回
|
搜索文章
最新
热门
MVC/MVP/MVVM
将数据模型和视图分离,用控制器作为连接两者的桥梁以实现解耦。 Android的UI系统框架就是MVC架构模式。 -互相持有引用,耦合性高。
设计模式(结构型)
结构型模式,共七种: 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 为其他对象提供一种代理以控制对这个对象的访问。 场景:控制访问,添加额外行为等。 将一组相似地对象看做一个对象处理,并根据一个树状结构来组合对象,然后提供一个统一的方法区访问相应的…
插件化原理
插件化:将一个应用按照插件的方式进行改造的过程就叫做插件化。 使用占坑Activity通过AMS验证,还原插件Activity。 同上,不同在于Hook对象不一样。 使用代理ContentProvider分发对插件Activity的请求。 静态注册转换为动态注册。 将so插件插…
Hook技术
更改被劫持对象(Hook点,静态变量或单例)的行为。 也叫委托模式,结构型设计模式。 为其他对象提供一种代理以控制对这个对象的访问称为代理模式。
热修复原理
Hot swap:修改一个现有方法中的代码时采用。 Warm swap:Activity需要重启。修改或删除一个现有的资源文件时采用。 Cold swap:APP需要重启。比如添加、删除或修改一个字段和方法、添加一个类等。 (1)创建新的AssetManager,通过反射调用a…
理解ClassLoader
首先判断该Class是否已经加载,没有则委托给父加载器进行查找,依次递归,直到委托到顶层Bootstrap Classloader,找到就返回,没找到则依次向下查找。 PathClassLoader:加载系统类和应用程序的类,通常加载已安装的apk的dex文件(存储在data/…
Dalvik和ART
基于的架构不同,JVM基于栈,DVM基于寄存器。 执行的字节码不同。 DVM允许同时运行多个进程。 DVM由Zygote创建和初始化。 DVM有共享机制。 DVM早期没有使用JIT编译器。 AOT,JIT在运行中将热点代码编译成机器码;支持64位兼容32位CPU;改进垃圾回收机…
Java虚拟机
Java文件被编译后生成了Class文件,二进制格式,不依赖于特定的硬件和操作系统。 每一个Class文件都对应着唯一的类或者接口的定义信息。 无论任何语言只要能编译成Class文件,就可以被Java虚拟机识别并执行。 一个Java文件被加载到JVM内存中到从内存中卸载的过程。…
JNI原理
Java Native Interface. 需要调用Java语言不支持的依赖于操作系统平台特性的一些功能。 为了整合一些以前的非Java语言开发的系统。 为了节省程序的运行时间,必须采用其他语言(比如C/C++)来提升运行效率。 JNIEnv是Native世界中Java环境的…
理解WindowManagerService
mPolicy:WindowManagerPolicy,定制窗口层级和特殊窗口类型以及关键的调度和布局。 mSessions:ArraySet,用于进程通信,每一个应用程序进程都会对应一个Session。 对所要添加的窗口进行检查,如果窗口不满足一些条件,就不会再执行下面的代码…
下一页
个人成就
文章被点赞
2
文章被阅读
6,222
掘力值
195
关注了
2
关注者
2
收藏集
1
关注标签
4
加入于
2020-04-19