最近有幸阅读了<高级C/C++编译技术>深受启发,该书深入浅出地讲解了构建过程(编译.链接)中的各种细节,从多个角度展示了程序与库文件或代码的集成方法,提出了面向代码复用和系统集成的软件架构设计方法,以及系统开发过程中疑难问题的解决方案. 以下将回头记录下其中的关键要点,以便后面查阅. 本节思维导图 1. 计算机体系结构抽象 2. 进程内存映射布局 (1)代码节:供CPU执行的机器指令码(.text节) (2)数据节:供CPU操作的数据,通常来说,初始化数据(.data).未初始化数据(.bs…
最近有幸阅读了<高级C/C++编译技术>深受启发,该书深入浅出地讲解了构建过程(编译.链接)中的各种细节,从多个角度展示了程序与库文件或代码的集成方法,提出了面向代码复用和系统集成的软件架构设计方法,以及系统开发过程中疑难问题的解决方案. 以下将回头记录下其中的关键要点,以便后面查阅. 本节思维导图 1. 位置无关代码(PIC) 首先,需要理解加载域与运行域的概念.加载域是代码存放的地址,运行域是代码运行时的地址.为什么会产生这2个概念?这2个概念的实质意义又是什么呢? 在一些场合,一些代码并…
最近有幸阅读了<高级C/C++编译技术>深受启发,该书深入浅出地讲解了构建过程(编译.链接)中的各种细节,从多个角度展示了程序与库文件或代码的集成方法,提出了面向代码复用和系统集成的软件架构设计方法,以及系统开发过程中疑难问题的解决方案. 以下将回头记录下其中的关键要点,以便后面查阅. 本节思维导图 1. 关于-fPIC编译器选项 1.1 -fPIC代表什么 “PIC”是位置无关代码(Position-independent Code)的缩写,说到位置无关代码,我们会立马想到加载重定位,加载重…
最近有幸阅读了<高级C/C++编译技术>深受启发,该书深入浅出地讲解了构建过程(编译.链接)中的各种细节,从多个角度展示了程序与库文件或代码的集成方法,提出了面向代码复用和系统集成的软件架构设计方法,以及系统开发过程中疑难问题的解决方案. 以下将回头记录下其中的关键要点,以便后面查阅. 本节思维导图 1. linux库命名规则 (1)静态库:lib+<library name>. + a (2)动态库:lib+<<library name> + .so + <…
最近有幸阅读了<高级C/C++编译技术>深受启发,该书深入浅出地讲解了构建过程(编译.链接)中的各种细节,从多个角度展示了程序与库文件或代码的集成方法,提出了面向代码复用和系统集成的软件架构设计方法,以及系统开发过程中疑难问题的解决方案. 以下将回头记录下其中的关键要点,以便后面查阅. 本节思维导图 1. 主次版本号与向后兼容性 并不是所有代码改动都会对模块的功能产生影响,有些改动只是对原有代码进行一些细微的改进或错误修正,而其它一些改动则会修改原有的功能实现,在复杂的版本控制策略中,根据代码…
Table of Contents 1 简介 2 系统初始化概论 2.1 引导期间选项 2.2 中断和定时器 2.3 初始化函数 3 设备注册和初始化 3.1 硬件初始化 3.2 软件初始化 3.3 功能初始化 4 NIC初始化的基本目标 5 IRQ线 6 I/O端口和内存注册 7 硬件中断 7.1 注册中断 7.2 解除中断 8 模块选项 9 设备处理层初始化 10 动态加载设备/设备驱动 简介 如果要使一个网络设备可用,它就必须能被内核正确识别并且与正确的设备驱动关联起来.首先,设备驱动既可…
在前一篇文章 深入探索Android热修复技术原理读书笔记 -- 热修复技术介绍中,对热修复技术进行了介绍,下面将详细介绍其中的代码修复技术. 1 底层热替换原理 在各种 Android 热修复方案中,Andfix 的即时生效令人印象深刻,它稍显另类, 并不需要重新启动,而是在加载补丁后直接对方法进行替换就可以完成修复,然而它的使用限制也遭遇到更多的质疑. 1.1 Andfix 回顾 我们先来看一下,为何唯独 Andfix 能够做到即时生效呢? 原因是这样的,在 app 运行到一半的时候,所有需…
该系列文章: 深入探索Android热修复技术原理读书笔记 -- 热修复技术介绍 深入探索Android热修复技术原理读书笔记 -- 代码热修复技术 1 普遍的实现方式 Android资源的热修复,就是在app不重新安装的情况下,利用下发的补丁包 直接更新本app中的资源. 目前市面上的很多资源热修复方案基本上都是参考了 Instant Run的实现. 简要说来,Instant Run中的资源热修复分为两步: 构造一个新的 AssetManager,并通过反射调用 addAssetPath,把这…
热修复系列文章: 深入探索Android热修复技术原理读书笔记 -- 热修复技术介绍 深入探索Android热修复技术原理读书笔记 -- 代码热修复技术 深入探索Android热修复技术原理读书笔记 -- 资源热修复技术 1. SO库加载原理 Java Api 提供以下两个接口加载一个 so 库 System. loadLibrary (String libName):传进去的参数:so 库名称, 表示的 so 库文件,位于apk压缩文件中的 libs 目录,最后复制到 apk 安装目录下. S…
1.1 什么是热修复 对于广大的移动开发者而言,发版更新是最为寻常不过的事了.然而,如果你 发现刚发出去的包有紧急的BUG需要修复,那你就必须需要经过下面这样的流程: 这就是传统的更新流程,步骤十分繁琐.总的来说,传统流程存在这几大弊端: 重新发布版本代价太大 用户下载安装成本太高 BUG 修复不及时,用户体验太差 相应的,许多开发者找到了比较合适的解决办法. Hybrid 方案.也就是把需要经常变更的业务逻辑以 H5 的方式独立出来.而这种方案, 需要传统的 java 开发者学习前端语言,不仅…