-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
281 lines (235 loc) · 31 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
<!DOCTYPE html><html lang="cn" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>旭恒呀</title><meta name="author" content="BruceXuheng"><meta name="copyright" content="BruceXuheng"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta property="og:type" content="website">
<meta property="og:title" content="旭恒呀">
<meta property="og:url" content="https://brucexuheng.github.io/index.html">
<meta property="og:site_name" content="旭恒呀">
<meta property="og:locale">
<meta property="og:image" content="https://brucexuheng.github.io/img/head_sculpture.png">
<meta property="article:author" content="BruceXuheng">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://brucexuheng.github.io/img/head_sculpture.png"><link rel="shortcut icon" href="/img/head_sculpture.png"><link rel="canonical" href="https://brucexuheng.github.io/index.html"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox/fancybox.min.css" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = {
root: '/',
algolia: undefined,
localSearch: {"path":"/search.xml","preload":false,"top_n_per_article":1,"unescape":false,"languages":{"hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found"}},
translate: undefined,
noticeOutdate: undefined,
highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
copy: {
success: 'Copy successfully',
error: 'Copy error',
noSupport: 'The browser does not support'
},
relativeDate: {
homepage: false,
post: false
},
runtime: '',
dateSuffix: {
just: 'Just',
min: 'minutes ago',
hour: 'hours ago',
day: 'days ago',
month: 'months ago'
},
copyright: undefined,
lightbox: 'fancybox',
Snackbar: undefined,
source: {
justifiedGallery: {
js: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.js',
css: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.css'
}
},
isPhotoFigcaption: false,
islazyload: false,
isAnchor: false,
percent: {
toc: true,
rightside: false,
},
autoDarkmode: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
title: '旭恒呀',
isPost: false,
isHome: true,
isHighlightShrink: false,
isToc: false,
postUpdate: '2024-11-15 11:28:44'
}</script><noscript><style type="text/css">
#nav {
opacity: 1
}
.justified-gallery img {
opacity: 1
}
#recent-posts time,
#post-meta time {
display: inline !important
}
</style></noscript><script>(win=>{
win.saveToLocal = {
set: function setWithExpiry(key, value, ttl) {
if (ttl === 0) return
const now = new Date()
const expiryDay = ttl * 86400000
const item = {
value: value,
expiry: now.getTime() + expiryDay,
}
localStorage.setItem(key, JSON.stringify(item))
},
get: function getWithExpiry(key) {
const itemStr = localStorage.getItem(key)
if (!itemStr) {
return undefined
}
const item = JSON.parse(itemStr)
const now = new Date()
if (now.getTime() > item.expiry) {
localStorage.removeItem(key)
return undefined
}
return item.value
}
}
win.getScript = url => new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = url
script.async = true
script.onerror = reject
script.onload = script.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
script.onload = script.onreadystatechange = null
resolve()
}
document.head.appendChild(script)
})
win.getCSS = (url,id = false) => new Promise((resolve, reject) => {
const link = document.createElement('link')
link.rel = 'stylesheet'
link.href = url
if (id) link.id = id
link.onerror = reject
link.onload = link.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
link.onload = link.onreadystatechange = null
resolve()
}
document.head.appendChild(link)
})
win.activateDarkMode = function () {
document.documentElement.setAttribute('data-theme', 'dark')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
}
}
win.activateLightMode = function () {
document.documentElement.setAttribute('data-theme', 'light')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
}
}
const t = saveToLocal.get('theme')
if (t === 'dark') activateDarkMode()
else if (t === 'light') activateLightMode()
const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
if (asideStatus === 'hide') {
document.documentElement.classList.add('hide-aside')
} else {
document.documentElement.classList.remove('hide-aside')
}
}
const detectApple = () => {
if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
document.documentElement.classList.add('apple')
}
}
detectApple()
})(window)</script><meta name="generator" content="Hexo 6.3.0"></head><body><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="/img/head_sculpture.png" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/archives/"><div class="headline">Articles</div><div class="length-num">10</div></a><a href="/tags/"><div class="headline">Tags</div><div class="length-num">5</div></a><a href="/categories/"><div class="headline">Categories</div><div class="length-num">3</div></a></div><hr class="custom-hr"/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 主页</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 存档</span></a></div></div></div></div><div class="page" id="body-wrap"><header class="full_page" id="page-header" style="background-image: url('/img/bg_home_page_cx.png')"><nav id="nav"><span id="blog-info"><a href="/" title="旭恒呀"><span class="site-name">旭恒呀</span></a></span><div id="menus"><div id="search-button"><a class="site-page social-icon search" href="javascript:void(0);"><i class="fas fa-search fa-fw"></i><span> Search</span></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 主页</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 存档</span></a></div></div><div id="toggle-menu"><a class="site-page" href="javascript:void(0);"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="site-info"><h1 id="site-title">旭恒呀</h1><div id="site_social_icons"><a class="social-icon" href="https://github.com/BruceXuheng" target="_blank" title="Github"><i class="fab fa-github"></i></a></div></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/11/15/%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F-%E5%86%85%E5%AD%98%E6%BA%A2%E5%87%BA/" title="内存泄漏/内存溢出">内存泄漏/内存溢出</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2024-11-15T02:06:05.000Z" title="Created 2024-11-15 10:06:05">2024-11-15</time></span></div><div class="content">一、内存泄漏 & 内存溢出 在软件开发与运行过程中,内存管理是一个至关重要的环节。然而,由于各种原因,如程序设计的缺陷或资源管理的不当,可能会导致两种常见的内存问题:内存泄漏(Memory Leak)和内存溢出(Memory Overflow)。各种语言/操作系统上预防和解决也有不同方式方案,以下是关于两者概念的详细介绍:
内存泄漏: 内存泄漏指程序中已经不再需要使用的内存没有被释放,从而造成内存资源浪费和程序性能下降。其特征是程序使用内存总量持续增加,直到程序崩溃或者系统强制关闭。
原因:
资源未被正确释放:程序动态分配了内存资源,但没有及时释放,导致内存泄漏。
垃圾回收机制失效:在使用Java等高级语言编写的程序中,垃圾回收机制负责自动释放不再使用的内存资源。但如果程序员在编写代码时存在逻辑错误,就有可能导致垃圾回收机制失效,进而导致内存泄漏。
循环引用:在使用面向对象编程语言时,两个对象之间可能会发生相互引用的情况。如果这种引用形成了一个环路,就会导致这些对象永远无法被释放,从而产生内存泄漏。
影响:
系统崩溃:内存泄漏会导致系统可用内存不足,从而造成 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/08/26/Android%E7%B3%BB%E7%BB%9F%E8%BF%9B%E7%A8%8B-%E6%80%9D%E7%BB%B4%E6%9E%84%E5%BB%BA/" title="Android系统进程-思维构建">Android系统进程-思维构建</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2024-08-26T03:26:52.000Z" title="Created 2024-08-26 11:26:52">2024-08-26</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/Android/">Android</a></span></div><div class="content">init进程概述init进程并非鼻祖进程, 真正的鼻祖是进程id为0的 swapper进程(idele进程).
init的进程(pid=1), 是Android用户空间所有进程的鼻祖, 还有一个兄弟进程kthread进程(pid=2), 是Android内核空间所有进程的鼻祖.
init会 fork/clone 多个子进程, vold\adbd\lmkd\logd\surfaceflinger\servicemanager\zygote(systemserver(AMS/WMS/PMS)/launcher/phone/camera)
surfaceflinger进程作用是:把多个来源的图像数据,如需合成则进行合成 否则直接提交给display驱动进行显示
lmkd进程 Low Memory Killer Daemon低内存杀手守护进程, 查杀进程的。会监控内存的使用情况,当达到一定阀值的时候,会去杀掉一些处于后台的、优先级低的、占用内存高的进程, 是一个守护进程,会在后台默默的为内存的健康保驾护航.
l ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/08/23/%E5%B9%B6%E8%A1%8C-%E5%B9%B6%E5%8F%91-%E9%9D%99%E5%BF%83%E7%90%86%E8%A7%A3/" title="并行&并发 静心理解">并行&并发 静心理解</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2024-08-23T07:55:25.000Z" title="Created 2024-08-23 15:55:25">2024-08-23</time></span></div><div class="content">并行 & 并发并行 : 并行是指多个任务或者操作再同一时间点上同时执行.(前提是在支持多处理器机器及调度系统上)
并发 : 并发是指多个任务或操作在同一时间段内交替执行, 快速地在多个任务之间切换, 看起来像是同时进行的.
并行 更依赖硬件TAG: 物理分离, 资源独立
在每个核上独立执行一个任务, 更依赖硬件
并发 更依赖系统TAG: 资源共享, 时间片, 上下文切换
操作系统通过时间分片实现并发, 快速的在多个任务之间切换, 每个任务获得一小段CPU时间.
从物理层面了解并行: 多个任务在物理上同时进行, 需要多个处理器或多核处理器来实现
并发: 多个任务在逻辑上同时进行, 实际是在单个处理器上通过快速切换来实现
问题并行: 包括负载均衡、通信开销、数据一致性等。需要处理任务之间的同步和通信问题。此外,并行程序可能受到资源限制(如内存带宽、网络延迟等)的影响,导致性能不如预期。
并发: 包括死锁、竞态条件、资源同步等。可以提高程序的响应性和吞吐量,但过多的上下文切换会增加系统开销,降低整体性能。
</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2023/10/08/Android-Rust-NDK/" title="Android Rust NDK">Android Rust NDK</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2023-10-08T07:36:41.000Z" title="Created 2023-10-08 15:36:41">2023-10-08</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/Android/">Android</a></span></div><div class="content">一、集成Rust&NDK开发
创建 moudle [:encrypt] 将完成Rust&NDK
当前项目 build.gradle.kts 中引入插件
Rust Android Gradle Plugin
id(“org.mozilla.rust-android-gradle.rust-android”) version “0.9.3” apply false
1234567// Top-level build file where you can add configuration options common to all sub-projects/modules.plugins { id("com.android.application") version "8.1.0" apply false id("org.jetbrains.kotlin.android") version "1.8.10" apply false id("c ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2023/09/05/%E5%9B%BD%E5%AF%86%E6%B1%87%E6%80%BB/" title="国密汇总">国密汇总</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2023-09-05T07:40:52.000Z" title="Created 2023-09-05 15:40:52">2023-09-05</time></span></div><div class="content">国产密码算法包括SM1、SM2、SM3、SM4和SM7。SM1 - 对称算法
分组长度和密钥长度均为128位.
该算法目前尚未公开.
该算法的安全性和软硬件实现性能与AES算法相当.
调用加密芯片的接口进行使用.
SM2 - 非对称密钥算法
加密强度为256位
该算法是一种基于椭圆曲线(ECC)
SM3 - 消息摘要
https://www.oscca.gov.cn/sca/xxgk/2010-12/17/content_1002389.shtml
密码杂凑算法消息分组长度 为 512b, 摘要长度 256b
该算法为不可逆的算法, 具体算法是保密的。
执行过程 = > 消息填充、消息扩展、迭代压缩
SM4
一种 Feistel 结构的分组密码算法,其分组长度和密钥长度均为128bit
该算法为对称加密算法,其加密强度为128位
SM7该算法是一种分组密码算法,分组长度为128比特,密钥长度也为128比特。
SM7适用于非接触式IC卡,应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2023/08/31/%E6%80%9D%E8%80%83-%E5%86%99%E6%80%8E%E6%A0%B7%E7%9A%84%E4%BB%A3%E7%A0%81%E7%9C%8B%E7%9D%80%E8%88%92%E6%9C%8D/" title="思考-写怎样的代码看着舒服(Java/Kotlin)">思考-写怎样的代码看着舒服(Java/Kotlin)</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2023-08-31T03:51:35.000Z" title="Created 2023-08-31 11:51:35">2023-08-31</time></span></div><div class="content">看整齐条理的类文件代码 真的会少几条皱纹
在想写怎么样的代码会舒服
深思熟虑问过各家AI后进行整合编码约定
目前对应代码量比较多的是Java\Kotlin, 算是阅读量和编写量最多的语言, 汇总如下
Java Class Layout属性变量
静态/常量变量
私有/公共成员变量(非静态变量)构造
构造方法方法
单例方法(如果有)
公共/私有方法(非静态)
静态方法内部类
静态/内部类(如果有)
Kotlin Class Layout
https://kotlinlang.org/docs/coding-conventions.html#class-layout
Property declarations and initializer blocks属性声明和初始值设定项块
Secondary constructors辅助构造函数
Method declarations方法声明
Companion object伴随对象
</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2023/08/08/Kotlin-Exception-Handling/" title="Kotlin Exception Handling">Kotlin Exception Handling</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2023-08-08T07:39:11.000Z" title="Created 2023-08-08 15:39:11">2023-08-08</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/Kotlin/">Kotlin</a></span></div><div class="content">1. 普通处理异常
这种是普通的写法,明了的处理异常Kotlin也支持多个catch捕获
1234567891011try { throw Throwable("Diy Exception")}catch (e: Exception) { print("Exception-> ${e.message}")}finally { print("finally")}
2. inline模式处理异常
封装处理不会导致程序异常终止, 易于使用, 提供代码质量和开发效率吐槽一点 kotlin 不支持异常检查很不好, 需要人去识别可能出现的各种异常, 在对接各类功能接口很容易被忽略异常
123456789101112131415161718192021222324fun main() { var p = Person() p.name = null nameCatch(action = { ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2023/06/25/Flutter-%E8%AE%B0%E5%BD%95/" title="Flutter 记录">Flutter 记录</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2023-06-25T09:46:25.000Z" title="Created 2023-06-25 17:46:25">2023-06-25</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/Flutter/">Flutter</a></span></div><div class="content">check 环境
1flutter doctor
同意 Android 协议
1flutter doctor --android-licenses</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2023/06/25/Android-Scrcpy-Frp-%E8%BF%9C%E7%A8%8B%E6%93%8D%E6%8E%A7-%E8%B0%83%E8%AF%95Android%E6%89%8B%E6%9C%BA/" title="Android Scrcpy Frp 远程操控/调试Android手机">Android Scrcpy Frp 远程操控/调试Android手机</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2023-06-25T06:36:01.000Z" title="Created 2023-06-25 14:36:01">2023-06-25</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/Android/">Android</a></span></div><div class="content">1234567891011121314151617181920212223242526272829303132333435361. 安装msys2https://www.msys2.org/2. 安装环境参考文档https://blog.csdn.net/u012787710/article/details/130430216pacman -S mingw-w64-x86_64-SDL2pacman -S mingw-w64-x86_64-ffmpegpacman -S mingw-w64-x86_64-libusbpacman -S mingw-w64-x86_64-makepacman -S mingw-w64-x86_64-pkg-configpacman -S mingw-w64-x86_64-meson3.pwdgit clone https://github.com/Genymobile/scrcpy.git4.# 进入代码仓cd./ scrcpy/# 编译scrcpy-server 如果慢 跳过 下载编译好的 https://github.com/Genymobile/s ...</div></div></div><div class="recent-post-item"><div class="recent-post-info"><a class="article-title" href="/2023/06/25/hello-world/" title="Hello World">Hello World</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2023-06-25T03:23:11.755Z" title="Created 2023-06-25 11:23:11">2023-06-25</time></span></div><div class="content">Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
</div></div></div><nav id="pagination"><div class="pagination"><span class="page-number current">1</span></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="/img/head_sculpture.png" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">BruceXuheng</div><div class="author-info__description"></div></div><div class="card-info-data site-data is-center"><a href="/archives/"><div class="headline">Articles</div><div class="length-num">10</div></a><a href="/tags/"><div class="headline">Tags</div><div class="length-num">5</div></a><a href="/categories/"><div class="headline">Categories</div><div class="length-num">3</div></a></div><a id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/BruceXuheng"><i class="fab fa-github"></i><span>Follow Me</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="https://github.com/BruceXuheng" target="_blank" title="Github"><i class="fab fa-github"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>Announcement</span></div><div class="announcement_content">👋 Hi, I’m Xuheng <br/> 👀 I’m interested in parkour sports . <br/> 🌱 I’m currently learning rust and moto. <br/> 📫 [email protected]. <br/></div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>Recent Post</span></div><div class="aside-list"><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2024/11/15/%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F-%E5%86%85%E5%AD%98%E6%BA%A2%E5%87%BA/" title="内存泄漏/内存溢出">内存泄漏/内存溢出</a><time datetime="2024-11-15T02:06:05.000Z" title="Created 2024-11-15 10:06:05">2024-11-15</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2024/08/26/Android%E7%B3%BB%E7%BB%9F%E8%BF%9B%E7%A8%8B-%E6%80%9D%E7%BB%B4%E6%9E%84%E5%BB%BA/" title="Android系统进程-思维构建">Android系统进程-思维构建</a><time datetime="2024-08-26T03:26:52.000Z" title="Created 2024-08-26 11:26:52">2024-08-26</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2024/08/23/%E5%B9%B6%E8%A1%8C-%E5%B9%B6%E5%8F%91-%E9%9D%99%E5%BF%83%E7%90%86%E8%A7%A3/" title="并行&并发 静心理解">并行&并发 静心理解</a><time datetime="2024-08-23T07:55:25.000Z" title="Created 2024-08-23 15:55:25">2024-08-23</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2023/10/08/Android-Rust-NDK/" title="Android Rust NDK">Android Rust NDK</a><time datetime="2023-10-08T07:36:41.000Z" title="Created 2023-10-08 15:36:41">2023-10-08</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2023/09/05/%E5%9B%BD%E5%AF%86%E6%B1%87%E6%80%BB/" title="国密汇总">国密汇总</a><time datetime="2023-09-05T07:40:52.000Z" title="Created 2023-09-05 15:40:52">2023-09-05</time></div></div></div></div><div class="card-widget card-categories"><div class="item-headline">
<i class="fas fa-folder-open"></i>
<span>Categories</span>
</div>
<ul class="card-category-list" id="aside-cat-list">
<li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Android/"><span class="card-category-list-name">Android</span><span class="card-category-list-count">3</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Flutter/"><span class="card-category-list-name">Flutter</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Kotlin/"><span class="card-category-list-name">Kotlin</span><span class="card-category-list-count">1</span></a></li>
</ul></div><div class="card-widget card-tags"><div class="item-headline"><i class="fas fa-tags"></i><span>Tags</span></div><div class="card-tag-cloud"><a href="/tags/Flutter/" style="font-size: 1.1em; color: #999">Flutter</a> <a href="/tags/Kotlin/" style="font-size: 1.1em; color: #999">Kotlin</a> <a href="/tags/Rust/" style="font-size: 1.1em; color: #999">Rust</a> <a href="/tags/Android/" style="font-size: 1.5em; color: #99a9bf">Android</a> <a href="/tags/Debug/" style="font-size: 1.1em; color: #999">Debug</a></div></div><div class="card-widget card-archives"><div class="item-headline"><i class="fas fa-archive"></i><span>Archives</span></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/11/"><span class="card-archive-list-date">November 2024</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/08/"><span class="card-archive-list-date">August 2024</span><span class="card-archive-list-count">2</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/10/"><span class="card-archive-list-date">October 2023</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/09/"><span class="card-archive-list-date">September 2023</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/08/"><span class="card-archive-list-date">August 2023</span><span class="card-archive-list-count">2</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/06/"><span class="card-archive-list-date">June 2023</span><span class="card-archive-list-count">3</span></a></li></ul></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>Info</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">Article :</div><div class="item-count">10</div></div><div class="webinfo-item"><div class="item-name">UV :</div><div class="item-count" id="busuanzi_value_site_uv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">PV :</div><div class="item-count" id="busuanzi_value_site_pv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">Last Push :</div><div class="item-count" id="last-push-date" data-lastPushDate="2024-11-15T03:28:44.757Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div class="copyright">©2020 - 2024 By BruceXuheng</div><div class="framework-info"><span>Framework </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>Theme </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="darkmode" type="button" title="Toggle Between Light And Dark Mode"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="Toggle between single-column and double-column"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="Setting"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="Back To Top"><span class="scroll-percent"></span><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox/fancybox.umd.min.js"></script><div class="js-pjax"></div><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script><div id="local-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">Search</span><span id="loading-status"></span><button class="search-close-button"><i class="fas fa-times"></i></button></nav><div class="is-center" id="loading-database"><i class="fas fa-spinner fa-pulse"></i><span> Loading the Database</span></div><div class="search-wrap"><div id="local-search-input"><div class="local-search-box"><input class="local-search-box--input" placeholder="Search for Posts" type="text"/></div></div><hr/><div class="no-result" id="local-search-results"></div><div id="local-search-stats-wrap"></div></div></div><div id="search-mask"></div><script src="/js/search/local-search.js"></script></div></div></body></html>