摘要: 动态链接 计算机程序链接时分两种形式:静态链接和动态链接。 静态链接在链接时将所有目标文件中的代码、数据等Section都组装到可执行文件当中,并将代码中使用到的外部符号(函数、变量)都进行了重定位。因此在执行时不需要依赖其他外部模块即可执行,并且可以获得更快的启动时间和执行速度。然而静态链接的方式 阅读全文
posted @ 2023-12-01 23:44 zxzhang 阅读(305) 评论(0) 推荐(1) 编辑
摘要: 概述 通过 mmap 技术实现的高性能通用 key-value 组件。同时选用 protobuf 协议,进一步压缩数据存储。 标准 protobuf 不提供增量更新的能力,每次写入都必须全量写入。考虑到主要使用场景是频繁地进行写入更新,我们需要有增量更新的能力:将增量 kv 对象序列化后,直接 ap 阅读全文
posted @ 2023-10-18 00:42 zxzhang 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 概述 RecyclerView 的预布局用于 Item 动画中,也叫做预测动画。其用于当 Item 项进行变化时执行的一次布局过程(如添加或删除 Item 项),使 ItemAnimator 体验更加友好。 考虑以下 Item 项删除场景,屏幕内的 RecyclerView 列表包含两个 Item 阅读全文
posted @ 2023-10-07 00:42 zxzhang 阅读(309) 评论(0) 推荐(1) 编辑
摘要: ## 概述 每个 Drawable 都有一个对应的`ConstantState`,这个 state 保存了 Drawable 所有的关键信息。由于 Drawable 的广泛使用,系统为了优化性能(节省内存占用),相同资源的 Drawable 都共享同一个`ConstantState`。这个的含义用较 阅读全文
posted @ 2023-09-08 21:40 zxzhang 阅读(110) 评论(1) 推荐(0) 编辑
摘要: 支持类型 该表显示了在 .proto 文件中指定的类型,以及自动生成的类中的相应类型: | .proto Type | Notes | C++ Type | Java/Kotlin Type[1] Java/Kotlin 类型 [1] | Python Type[3] | Go Type | Rub 阅读全文
posted @ 2023-05-02 21:55 zxzhang 阅读(484) 评论(1) 推荐(0) 编辑
摘要: 概述 这里以C语言为例描述移位运算的行为。 对于一个位表示为 $x_{w-1}$, $x_{w-2}$ ,..., $x_{0}$ 的操作数 x, C 表达式 $x << k$ 会生成一个値,其位表示为 $[$ $x_{w-k-1}$, $x_{w-k-2}$ ,..., $x_{0}$,0,... 阅读全文
posted @ 2023-04-30 21:51 zxzhang 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 官方编译方式 SQLite3 源码提供了非常便捷的编译脚本,通过执行以下命令可以编译得到sqlite3.c 、sqlite3.h、sqlite3ext.h、shell.c 以及一个可执行程序 sqlite3。所有的代码都被合并到了sqlite3.c 文件中,根据官网How To Compile SQ 阅读全文
posted @ 2022-11-06 20:20 zxzhang 阅读(798) 评论(0) 推荐(0) 编辑
摘要: 数据库如何发生损坏 SQLite 数据库具有很强的抗损坏能力。在执行事务时如果发生应用程序崩溃、操作系统崩溃甚至电源故障,那么在下次访问数据库文件时,会自动回滚部分写入的事务。恢复过程是全自动的,不需要用户或应用程序的任何操作。尽管 SQLite 数据库具有很强的抗损坏能力,但仍有可能发生损坏。 1 阅读全文
posted @ 2022-06-21 00:45 zxzhang 阅读(2847) 评论(1) 推荐(2) 编辑
摘要: 在 Android 中,Room 为 SQLite 提供了高效稳定的抽象层,简化开发流程。RoomDatabase.java 是初始化数据库的重要构建组件,通过它我们可以添加RoomDatabase#Callback监听,RoomDatabase#Callback提供了以下回调接口: /** * C 阅读全文
posted @ 2022-03-15 23:35 zxzhang 阅读(429) 评论(3) 推荐(0) 编辑
摘要: 概述 Android 在应用框架层为开发者提供了 SQLite 相关操作接口,其归属于android.database.sqlite包底下,主要包含SQLiteProgram, SQLiteDatabase, SQLiteSession, SQLiteConnectionPool和SQLiteCon 阅读全文
posted @ 2022-03-13 23:32 zxzhang 阅读(679) 评论(0) 推荐(0) 编辑
摘要: Bitmap内存模型 在 Android 2.2(API 8)及更低版本上,当发生垃圾回收时,应用的线程会停止(stop the world),这将导致卡顿。Android 2.3 添加了并发GC功能,这意味着系统不再引用位图后,很快就会回收内存。 在 Android 2.3.3(API 10)及更 阅读全文
posted @ 2021-05-15 01:43 zxzhang 阅读(1559) 评论(1) 推荐(0) 编辑
摘要: 数字在需要一个可空的引用时,会进行装箱操作,数字装箱不一定保留同一性。 另一方面,它保留了相等性 "kotlin相等性" 阅读全文
posted @ 2019-07-13 16:46 zxzhang 阅读(217) 评论(1) 推荐(0) 编辑
摘要: android:installLocation "App install location" AndroidManifest "App Manifest Overview" "Merge multiple manifest files" "AndroidManifest详解之Application( 阅读全文
posted @ 2019-06-24 00:17 zxzhang 阅读(314) 评论(0) 推荐(0) 编辑
摘要: git log p 显示每次提交的内容差异 git log 2 仅显示最近的两次更新 git log stat 显示简要的文件修改统计信息 git log follow stat 继续列出文件重命名前的 log 信息(只对单文件有效) git log oneline 单行显示 log 信息 git 阅读全文
posted @ 2019-06-16 00:15 zxzhang 阅读(956) 评论(0) 推荐(0) 编辑
摘要: Manifest "Manifest file" "Use of the MANIFEST.MF file in Java" "Working with Manifest Files: The Basics" 阅读全文
posted @ 2019-06-14 23:51 zxzhang 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 本文转载自: "深入解析String intern" 引言 在 JAVA 语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的缓存。 8种基本类型的常量池都是系统协调的,String 阅读全文
posted @ 2019-01-12 11:15 zxzhang 阅读(290) 评论(3) 推荐(0) 编辑
摘要: 以下针对 Android API 26 版本的源码进行分析。 在了解 之前,最好对 有初步的了解, 的实现主要借助 。`LinkedHashMap`的源码解析,可阅读 "Java——LinkedHashMap源码解析" 概述    其 Lru 是 Least Recently U 阅读全文
posted @ 2019-01-01 14:23 zxzhang 阅读(643) 评论(0) 推荐(0) 编辑
摘要: 转载自:https://blog.csdn.net/gatieme/article/details/21389603 常用编译选项 gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后 阅读全文
posted @ 2018-12-23 11:13 zxzhang 阅读(10125) 评论(1) 推荐(1) 编辑
摘要: 以下针对JDK 1.8版本中的 LinkedHashMap 进行分析。 对于 的源码解析,可阅读 "Java——HashMap源码解析" 概述   哈希表和链表基于 接口的实现,其具有可预测的迭代顺序。此实现与 的不同之处在于它维护了一个包括所有条目(Entry)的双向链表。相比 阅读全文
posted @ 2018-12-12 19:04 zxzhang 阅读(871) 评论(2) 推荐(3) 编辑
摘要: 以下针对JDK 1.8版本中的 ArrayList 进行分析。 概述      基于 接口实现的大小可变的数组。其实现了所有可选的 操作,并且元素允许为任意类型,包括 元素。除了实现 接口,此类还提供了操作内部用于存储列表数组大小的方法(这个类除了没有实现同步 阅读全文
posted @ 2018-11-07 00:35 zxzhang 阅读(956) 评论(1) 推荐(4) 编辑