
Android进阶解密
读书笔记
享学课代表
这个作者很懒,什么都没留下…
展开
-
Android进阶解密⑤—热修复
在此之前已经总结过ClassLoader的原理,以及通过ClassLoader方式实现的热修复思路,实现热修复的方法有很多,大致有三种方式:ClassLoaderInstant Run(ASM字节码插装)底层替换方案本文重点介绍后两种实现热修复的方式, 第一种方式可以参考这篇文章:ClassLoader&双亲委派模型Instant Run方案(ASM字节码插装)关于Instant Run的了解可以参考这篇文章: Android Studio新功能解析,你真的了解Instant R原创 2020-11-12 17:27:20 · 277 阅读 · 0 评论 -
Android进阶解密④—插件化原理
在学习插件化之前需要看前面几篇文章:Android进阶解密①—activity的启动过程Android进阶解密②—Service的启动Android进阶解密③—Hook动态加载技术:在程序运行时,动态加载一些程序中原本不存在的可执行文件并运行起来,,随着应用技术的发展,动态加载技术逐渐派生出两个分支,热修复和插件化;热修复:用于修复bug插件化:解决应用庞大,功能模块解耦,复用其他apk的代码插件化思想:将复用的apk作为插件,插入另一个apk中,比如淘宝中会有咸鱼的页面,用淘宝为原创 2020-11-12 17:24:57 · 2144 阅读 · 7 评论 -
Android进阶解密③—Hook
源码的执行是按照一定流程思路进行的,hook就是在源码的执行流程之间插入一步操作,起到拦截,替换的作用;被改变的对象称为hook点,一般将不易发生变化的类作为hook点;常见的hook点有:静态变量单例代理模式:学习hook必须了解代理模式,可以参考我这篇文章:反射和动态代理Hook startActivity首先需要知道startactivity的流程:Android进阶解密①——activity的启动过程我们知道startActivity会通过mInstrumentation这个原创 2020-11-12 17:21:50 · 302 阅读 · 0 评论 -
Android进阶解密②—Service的启动
文章目录一 StartServiceContextImpl到AMSContextImpl.startServiceCommon()AMS到ActivityThreadActivityThread.scheduleCreateService()H的处理二 BindService:AMS的bindService逻辑都交给了`ActiveServices`ActiveServices.requestServiceBindingLocked():ActivityThread.scheduleBindService(原创 2020-11-12 17:11:26 · 311 阅读 · 0 评论 -
Android进阶解密1⃣️—Activity的启动流程
文章目录根Activity启动的整理流程:步骤1 Launcher请求AMS1.1 Launcher.startActivitySafely()1.2 Activity.startActivityForResult():1.3 Instrumentation.execStartActivity():步骤2 AMS到ApplicationThread2.1 AMS.startActivityAsUser():2.2 ActivityStarter.startActivityMayWait():2.3 Act原创 2020-11-12 16:57:50 · 655 阅读 · 0 评论