Android 源码分析
文章平均质量分 94
从Android原生程序开始一路向下
Jesse-csdn
典型软件攻城狮
展开
-
Java对象在内存中的结构和锁状态升级过程
11原创 2019-12-25 10:12:37 · 388 阅读 · 0 评论 -
Thread中断解析
目录原创 2019-12-19 17:12:48 · 317 阅读 · 0 评论 -
ThreadPoolExecutor精简解析
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2019-12-16 10:33:46 · 260 阅读 · 0 评论 -
React Native Application和Activity源码分析
基于V0.43.3版本 React Native Android端的ReactApplication和ReactActivity的实现原理.原创 2017-06-04 16:26:03 · 3202 阅读 · 2 评论 -
Android 热修复方案Tinker(七) 插桩实现
Tinker V1.7.5是最后一个还支持回退Qzone方案插桩实现补丁修复的版本.由于Tinker的全量合成需要拿到原dex,而第三方的加固通常会将原dex隐藏起来做保护所以使用了第三方加固就只能用V1.7.5的Qzone模式.除非自己做dex保护或者不使用加固,但是有时候用不用第三方加固不是开发者能决定的并且自己实现加固的门槛和成本都是很高的.基于这些因素还是很有必要分析Tinker的Qzone方案实现,用了这套原创 2017-02-03 14:17:01 · 6990 阅读 · 2 评论 -
Android 热修复方案Tinker(六) Gradle插件实现
这篇文章主要分析一下Tinker中gradle插件的设计以及各个任务的职能.Gradle插件工作流程的简单实现在Android Gradle 插件编写文章中有讲过,这里就不复述了.下图是Tinker Gradle插件的类图结构.原创 2016-12-29 11:53:43 · 8722 阅读 · 1 评论 -
Android 热修复方案Tinker(五) SO补丁加载
SO文件加载的时机和Dex跟资源的加载有些不一样,像Dex和资源的加载都是系统在特定的时机自动去加载,而SO加载的时机则是让开发者自己控制.开发者可以通过System类对外暴露出来的两个静态方法load和loadLibarary加载SO.这两个方法都拿到ClassLoader再通过Runtime实现的.原创 2016-12-11 18:00:25 · 9110 阅读 · 10 评论 -
Android 热修复方案Tinker(四) 资源补丁加载
想要做资源的更新首先需要了解分析资源加载流程,这样才能找到突破口.一般我们在应用中使用和加载资源都是通过Context对象的getResources方法.这里以Android 6.0的源码分析资源加载的流程.原创 2016-12-04 16:37:27 · 10052 阅读 · 9 评论 -
Android 热修复方案Tinker(三) Dex补丁加载
之前有说到Tinker的修复原理是跟Qzone类似,这里就详细分析一下为什么这样做可以修复补丁.虽然其他Android版本的源码实现可能不一样,但是都是基于相同的原理.所以这里就以Android 6.0的源码为例介绍原理.具体每个系统版本的不同实现下面会详细说明.首先从加载dex文件的入口开始看, /libcore/dalvik/src/main/java/dalvik/system/DexC原创 2016-11-23 17:02:36 · 8590 阅读 · 12 评论 -
Android 热修复方案Tinker(二) 补丁加载流程
这篇文章从加载补丁的入口tryLoad处开始分析Tinker补丁加载的流程.根据不同的类别Tinker可以支持dex,SO和资源更新,接下来会详细分析.先贴出补丁加载的主要类图.从tryLoad入口开始,tryLoad中调用加载补丁流程的方法,并统计出这次Load Patch所消耗的时间. Intent resultIntent = new Intent(); //统计原创 2016-11-20 12:31:16 · 7839 阅读 · 6 评论 -
Android 热修复方案Tinker(一) Application改造
这篇文章主要分析一下Tinker隔离Application.至于为什么要隔离Application?可以参考上一篇 Android 热修复方案分析文章中说到的Qzone方案,要给除了Application子类所有的类注入一个独立dex中的类引用,来避免class被打上CLASS_ISPREVERIFIED标记.而这个独立的dex是在Application启动之后加载的,所以Application子原创 2016-11-16 16:06:44 · 17511 阅读 · 2 评论 -
Android源码之DeskClock (四)
一.概述 之前写三的时候饶了个弯,通过DeskClock这个项目简单实现了一下加固+热修复,在这篇继续回到正规继续分析源码.在二里面大致分析了DeskClock的主入口,跟四个主要功能Fragment的转换,从这篇开始就着手分析这四大功能.先从Clock功能的Fragment开始讲起.原创 2015-08-09 18:20:43 · 11979 阅读 · 2 评论 -
Android源码之DeskClock (三) Proxy/Delegate Application 框架应用
1.概述当项目有加壳子的需求的时候,可以使用Proxy/Delegate Application框架的方式,在正常的模式中,一个程序一般只有一个Application入口,而Proxy/Delegate模式中需要有两个Application,原程序的Application改为Delegate Application,再新加一个Proxy Application原创 2015-07-20 09:09:17 · 14409 阅读 · 7 评论 -
Android源码之DeskClock (二)
1.概述 在DeskClock(一)中介绍了该程序源码的迁出,现在开始分析该应用的源码,DeskClock主要有四个功能,闹钟,时钟,定时,和秒表,在这篇博客中主要分析DeskClock的入口和主UI上的逻辑结构,在后续的系列中会把这四个功能都串起来.原创 2015-07-13 18:01:59 · 16317 阅读 · 1 评论 -
Android源码之DeskClock (一)
一.概述二.移植出DeskClock这个系列分析的是Android kitkat(4.4)版本的DeskClock程序.用4.4版本来分析主要原因是博主的手机是4.4的,之前有移植lollipop的DeskClock程序到手机上,结果不兼容,后来就用kitkat的DeskClock程序了.既然分析参考DeskClock的内容,当然需要有源码才行,还必须得原汁原味的.大家原创 2015-07-06 14:16:21 · 20529 阅读 · 4 评论