-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
474 lines (281 loc) · 25.2 KB
/
index.html
File metadata and controls
474 lines (281 loc) · 25.2 KB
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
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
<!DOCTYPE html>
<html >
<head>
<!--[if lt IE 9]>
<style>body {display: none; background: none !important} </style>
<meta http-equiv="Refresh" Content="0; url=//outdatedbrowser.com/" />
<![endif]-->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="format-detection" content="telephone=no" />
<meta name="author" content="bstonl" />
<meta property="og:type" content="website">
<meta property="og:title" content="aWriter Process">
<meta property="og:url" content="http://yoursite.com/index.html">
<meta property="og:site_name" content="aWriter Process">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="aWriter Process">
<link rel="apple-touch-icon" href= "/apple-touch-icon.png">
<link rel="alternate" href="/atom.xml" title="aWriter Process" type="application/atom+xml">
<link rel="shortcut icon" href="/favicon.png">
<link href="//cdn.bootcss.com/animate.css/3.5.1/animate.min.css" rel="stylesheet">
<link href="//cdn.bootcss.com/fancybox/2.1.5/jquery.fancybox.min.css" rel="stylesheet">
<script src="//cdn.bootcss.com/pace/1.0.2/pace.min.js"></script>
<link href="//cdn.bootcss.com/pace/1.0.2/themes/blue/pace-theme-minimal.css" rel="stylesheet">
<link rel="stylesheet" href="/css/style.css">
<style> .article { opacity: 0;} </style>
<link href="//cdn.bootcss.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet">
<title>aWriter Process</title>
<script src="//cdn.bootcss.com/jquery/2.2.4/jquery.min.js"></script>
<script src="//cdn.bootcss.com/clipboard.js/1.5.10/clipboard.min.js"></script>
<script>
var yiliaConfig = {
fancybox: true,
animate: true,
isHome: true,
isPost: false,
isArchive: false,
isTag: false,
isCategory: false,
fancybox_js: "//cdn.bootcss.com/fancybox/2.1.5/jquery.fancybox.min.js",
scrollreveal: "//cdn.bootcss.com/scrollReveal.js/3.1.4/scrollreveal.min.js",
search: undefined
}
</script>
<script> yiliaConfig.jquery_ui = [false]; </script>
<script> yiliaConfig.rootUrl = "\/";</script>
</head>
<body>
<div id="container">
<div class="left-col">
<div class="overlay"></div>
<div class="intrude-less">
<header id="header" class="inner">
<a href="/" class="profilepic">
<img src="/img/Coding.png" class="animated zoomIn">
</a>
<hgroup>
<h1 class="header-author"><a href="/">bstonl</a></h1>
</hgroup>
<div id="switch-btn" class="switch-btn">
<div class="icon">
<div class="icon-ctn">
<div class="icon-wrap icon-house" data-idx="0">
<div class="birdhouse"></div>
<div class="birdhouse_holes"></div>
</div>
<div class="icon-wrap icon-ribbon hide" data-idx="1">
<div class="ribbon"></div>
</div>
<div class="icon-wrap icon-link hide" data-idx="2">
<div class="loopback_l"></div>
<div class="loopback_r"></div>
</div>
<div class="icon-wrap icon-me hide" data-idx="3">
<div class="user"></div>
<div class="shoulder"></div>
</div>
</div>
</div>
<div class="tips-box hide">
<div class="tips-arrow"></div>
<ul class="tips-inner">
<li>菜单</li>
<li>标签</li>
<li>友情链接</li>
<li>关于我</li>
</ul>
</div>
</div>
<div id="switch-area" class="switch-area">
<div class="switch-wrap">
<section class="switch-part switch-part1">
<nav class="header-menu">
<ul>
<li><a href="/">主页</a></li>
<li><a href="/archives/">所有文章</a></li>
<li><a href="/tags/">标签云</a></li>
<li><a href="/about/">关于我</a></li>
</ul>
</nav>
<nav class="header-nav">
<ul class="social">
<a class="fa Email" href="mailto:123@123.com" title="Email"></a>
<a class="fa GitHub" href="#" title="GitHub"></a>
<a class="fa RSS" href="/atom.xml" title="RSS"></a>
</ul>
</nav>
</section>
<section class="switch-part switch-part2">
<div class="widget tagcloud" id="js-tagcloud">
</div>
</section>
<section class="switch-part switch-part3">
<div id="js-friends">
<a class="main-nav-link switch-friends-link" href="https://hexo.io">Hexo</a>
<a class="main-nav-link switch-friends-link" href="https://pages.github.com/">GitHub</a>
<a class="main-nav-link switch-friends-link" href="http://moxfive.xyz/">MOxFIVE</a>
</div>
</section>
<section class="switch-part switch-part4">
<div id="js-aboutme">专注于前端</div>
</section>
</div>
</div>
</header>
</div>
</div>
<div class="mid-col">
<nav id="mobile-nav">
<div class="overlay">
<div class="slider-trigger"></div>
<h1 class="header-author js-mobile-header hide"><a href="/" title="回到主页">bstonl</a></h1>
</div>
<div class="intrude-less">
<header id="header" class="inner">
<a href="/" class="profilepic">
<img src="/img/Coding.png" class="animated zoomIn">
</a>
<hgroup>
<h1 class="header-author"><a href="/" title="回到主页">bstonl</a></h1>
</hgroup>
<nav class="header-menu">
<ul>
<li><a href="/">主页</a></li>
<li><a href="/archives/">所有文章</a></li>
<li><a href="/tags/">标签云</a></li>
<li><a href="/about/">关于我</a></li>
<div class="clearfix"></div>
</ul>
</nav>
<nav class="header-nav">
<ul class="social">
<a class="fa Email" target="_blank" href="mailto:123@123.com" title="Email"></a>
<a class="fa GitHub" target="_blank" href="#" title="GitHub"></a>
<a class="fa RSS" target="_blank" href="/atom.xml" title="RSS"></a>
</ul>
</nav>
</header>
</div>
<link class="menu-list" tags="标签" friends="友情链接" about="关于我"/>
</nav>
<div class="body-wrap">
<article id="post-bstonl-post" class="article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2016/11/26/bstonl-post/" class="article-date">
<time datetime="2016-11-26T14:07:09.000Z" itemprop="datePublished">2016-11-26</time>
</a>
</div>
<div class="article-inner">
<input type="hidden" class="isFancy" />
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2016/11/26/bstonl-post/">bstonl post</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<h2 id="初级"><a href="#初级" class="headerlink" title="初级"></a>初级</h2><figure class="highlight java"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div></pre></td><td class="code"><pre><div class="line"><span class="keyword">int</span> i = <span class="number">0</span>;</div><div class="line"><span class="function"><span class="keyword">public</span> <span class="keyword">void</span> <span class="title">getI</span><span class="params">()</span></span>{</div><div class="line"> Xutils.get();</div><div class="line">}</div></pre></td></tr></table></figure>
<h3 id="Handler-Message-Looper"><a href="#Handler-Message-Looper" class="headerlink" title="Handler-Message-Looper"></a><strong>Handler-Message-Looper</strong></h3><p>Handler 被称为 “异步提交器”,是 Android 开发入门教程必定谈及的东西,这也是 Activity 等组件的工作机制需要用到的东西,是“数据驱动” 框架的重要组成,作为阅读源码的入门最适合不过。</p>
<h3 id="Activity-和-Service"><a href="#Activity-和-Service" class="headerlink" title="Activity 和 Service"></a><strong>Activity 和 Service</strong></h3><p>作为经常使用到的组件,阅读其源码的花费和带来的技术提高的性价比肯定是最高的,Service 可以不看,但是 Activity 总不能少吧。</p>
<h3 id="Fragment"><a href="#Fragment" class="headerlink" title="Fragment"></a><strong>Fragment</strong></h3><p>还在认为 Fragment 是一个视图吗,还在认为 FragmentActivity 的界面有多个 Fragment 组成吗,看看 Fragment 和 FragmentManager 吧,了解下生命周期的本质到底是什么。</p>
<h3 id="View"><a href="#View" class="headerlink" title="View"></a><strong>View</strong></h3><p>想自定义高级的 View 类吗,那总得知道 onMeasure/onLayout/onDraw 这些方法是怎么被调用的,了解 LayoutParams 是怎么工作的,知道调用 requestLayout 和 Invalidate 的时候有什么区别。</p>
<h3 id="MotionEvent"><a href="#MotionEvent" class="headerlink" title="MotionEvent"></a><strong>MotionEvent</strong></h3><p>在懂的怎么自定义高级的 View 后,只能向用户显示界面,还得知道怎么与用户交互才能做出华丽的 UI。所以必须知道 TouchEvent 的分发和拦截的工作机制,起码也得知道其特点,才不会一直在困扰 “为什么无法监听用户的触摸事件”、“View 之间的触摸事件冲突了” 或者 “View 的滑动与点击事件冲突了” 之类的问题。</p>
<h3 id="LayoutInflator"><a href="#LayoutInflator" class="headerlink" title="LayoutInflator"></a><strong>LayoutInflator</strong></h3><p>布局渲染器也是开发 Android UI 的时候经常用到的,不过 LayoutInflator 实例的创建方式有好几种,你至少得知道其之间的区别。还有,LayoutInflator 在渲染指定布局的时候,有 container 和 attachToRoot 等参数,阅读源码后很快能了解其区别。</p>
<h3 id="SurfaceView-和-TextureView"><a href="#SurfaceView-和-TextureView" class="headerlink" title="SurfaceView 和 TextureView"></a><strong>SurfaceView 和 TextureView</strong></h3><p>阅读完 View 的工作机制后,就能理解为什么 View 在绘制复杂的 UI 效果时效率这么低,这时候就需要 SurfaceView 和 TextureView 了。理解双缓冲对 UI 更新效率的帮助,了解 SurfaceView 在视图叠加的时候的缺陷,了解 TextureView 在 Android Lollipop 之前的内容窜台 BUG,才能用正确姿势使用这俩。</p>
<h3 id="AsyncTask"><a href="#AsyncTask" class="headerlink" title="AsyncTask"></a><strong>AsyncTask</strong></h3><p>异步任务也是 Android 开发经常遇到的问题,相比自己从 Thread 和 Handler 写起,被称为 “异步任务大师” 的 AsyncTask 类自然更受到许多小伙伴的喜欢。不过 AsyncTask 在早期的 Android 版本中差别甚大,需要做大量的适配工作,而且特别容易引起异步任务引用着组件的实例导致内存泄露从而引发 OOM 问题,所以不推荐直接使用 AsyncTask 类,不过强烈推荐阅读 AsyncTask 的源码学习 Google 优秀的异步任务设计理念。此外,如果真的要使用 AsyncTask,不要直接使用系统提供的 AsyncTask 类,AsyncTask 本身就是一个单一的 Java 类,没有耦合其他系统类,推荐自己从最新的 Android 版本中复制一份 AsyncTask 类的代码,自己维护,在项目中当做 Support 包一样使用,以规避其兼容性问题。</p>
<h3 id="Volley"><a href="#Volley" class="headerlink" title="Volley"></a><strong>Volley</strong></h3><p>这个强烈推荐,是 Google 官方的异步任务框架,没有随 Android 发布,需要自己在 Framework 里下载代码。Volley 的中文意思就是 “并发”,阅读其源码能让你见识到原来异步任务框架也能写得这么低耦合和高扩扩展,其用“生产者 - 消费者” 模式来处理异步请求的框架会让人拍案叫绝。此外,Volley 框架是用于处理 Http 任务和 Image 加载任务,但是其优秀的异步控制思想也能运用与 File、Sqlite 等耗时任务的处理,当你能够自己写出类似 Volley 框架的代码时,说明你的 Android 技术已经有所突破。</p>
<h3 id="android-util"><a href="#android-util" class="headerlink" title="android.util."></a><strong>android.util.</strong></h3><p>“android.util.*” 包名下有许多优秀的实用类,大多是作为 Java 自带类的补充,比如数据结构类的 SparseArray、ArrayMap、ArraySet,用于加密的 Base64,用于处理屏幕分辨率自适应的 DisplayMetrics 和 TypedValue,用于时间换算的 TimeUtils,以及用于内存缓存的 LruCache,熟悉这些类对 Android 开发非常有帮助,也会让代码显得成熟。<br><a href="http://kaedea.com/2016/02/09/android-about-source-code-how-to-read/#进阶" target="_blank" rel="external"></a></p>
<h2 id="进阶"><a href="#进阶" class="headerlink" title="进阶"></a>进阶</h2><h3 id="Context"><a href="#Context" class="headerlink" title="Context"></a><strong>Context</strong></h3><p>阅读 Context 源码能帮助我们了解其工作机制,了解 Google 是怎么在 Java 代码上添加 Android 特性的,了解 Android 是怎么保存和获取 res 资源的,了解 ContextWrapper 和 Activity 这些 Context 有什么区别,了解 Context 设计的装饰者模式(Description Pattern)。</p>
<h3 id="ClassLoader"><a href="#ClassLoader" class="headerlink" title="ClassLoader"></a><strong>ClassLoader</strong></h3><p>类加载器 ClassLoader 是 Android 虚拟机工作的基础,了解其 “双亲代理模式” 能让你更好的了解系统的类和你写的类是怎么工作的。Multi-Dex 和 ART 模式也和 ClassLoader 的工作机制息息相关。</p>
<h3 id="Binder"><a href="#Binder" class="headerlink" title="Binder"></a><strong>Binder</strong></h3><p>Binder 是 Android 上 RPC(Remote Procedure Call Protocol)的实现,Android 系统许多功能就是居于 Binder 实现的,平时应用层对 Binder 的使用大多是在于和 Service 通讯的时候,不过,当我们需要使用 AIDL 功能的时候,就需要接触到 Binder 了。(推荐阅读原理即可,反正 C++ 驱动层我是看不下去了)</p>
<h3 id="WMS,AMS,PMS,NMS,IMS-等系统-Service"><a href="#WMS,AMS,PMS,NMS,IMS-等系统-Service" class="headerlink" title="WMS,AMS,PMS,NMS,IMS 等系统 Service"></a><strong>WMS,AMS,PMS,NMS,IMS 等系统 Service</strong></h3><p>SystemServer 是 Android 的 Framework 层工作的核心,Android 系统启动过程包含从 Linux 内核加载到 Home 应用程序启动的整个过程。SystemServer 是 Zygnote 孵化的第一个进程,这个进程会启动许多 Framework 层功能需要用到的线程,比如用于管理窗口的 WindowManagerService,用于管理 Activity 的 ActivityManagerService,用于管理 APK 包信息的 PackageManagerService,用于管理网络的 NetworkManager,用于处理用户触摸的 InputManagerService 等,这些系统 Service 提供了 APP 运行时需要的大多系统功能,大多使用 “stub-server” 的模式进行交互,而且有大量的 JNI 的调用。这部分的源码比较适合从事 ROM 开发的人阅读,应用层的开发基本不会用到,但是这方面的只是能让我们对 Android Framework 层的工作机制有个大抵的认识。(非常惭愧,这部分我自己看了几次,还是没能产生融会贯通的感觉,整体的认识还是比较模糊,希望继续跟着老罗的博客,捡捡肉吃)</p>
<h2 id="第三方开源项目"><a href="#第三方开源项目" class="headerlink" title="第三方开源项目"></a>第三方开源项目</h2><h3 id="EventBus"><a href="#EventBus" class="headerlink" title="EventBus"></a><strong>EventBus</strong></h3><p>Android 上的一个 “订阅者 - 发布者” 模式的实现框架,非常适合业务多而且经常变动的项目,能够有效预防“接口爆炸”,现在基本上中型以上的项目都会采用类似的框架。</p>
<h3 id="OTTO"><a href="#OTTO" class="headerlink" title="OTTO"></a><strong>OTTO</strong></h3><p>同上,只不过实现的具体方案不一样,而且 OTTO 相比 EventBus 来,比较小巧,代码也比较简练,非常适合处女座的开发者食用。</p>
<h3 id="RxJava"><a href="#RxJava" class="headerlink" title="RxJava"></a><strong>RxJava</strong></h3><p>相比起上面两个,RxJava 可以说是把异步的思想发挥到了极致,RxJava 的兴起代表了 Android 开发中响应式编程的崛起,同样非常适合业务多而且经常变动的项目,只不过相比传统的基于接口的开发方式,RxJava 框架的开发方式会有点难以适应,特别是团队开发的时候。</p>
<h3 id="Guava"><a href="#Guava" class="headerlink" title="Guava"></a><strong>Guava</strong></h3><p>这个其实也是 Google 自己开源的,提供了许多优秀的 Java 工具类,比如 “one to one mapping” 的 Bimap,有时候一些工具类 Android 或 Java 自带的库没有提供,或许我们可以先参考 Guava 的。<br>以上是我自己个人推荐阅读的源码,不过每个开发者自身的兴趣和侧重点都不一样,有兴趣的参考着看就是。同时,如果有一些有趣的系统类,随时欢迎推荐给我。</p>
<h3 id="dagger-vs-butterknife"><a href="#dagger-vs-butterknife" class="headerlink" title="dagger vs butterknife"></a><strong>dagger vs butterknife</strong></h3><p>编译器、运行期</p>
</div>
<div class="article-info article-info-index">
<div class="clearfix"></div>
</div>
</div>
</article>
<article id="post-hello-world" class="article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2016/11/26/hello-world/" class="article-date">
<time datetime="2016-11-26T12:57:01.266Z" itemprop="datePublished">2016-11-26</time>
</a>
</div>
<div class="article-inner">
<input type="hidden" class="isFancy" />
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2016/11/26/hello-world/">Hello World</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<p>Welcome to <a href="https://hexo.io/" target="_blank" rel="external">Hexo</a>! This is your very first post. Check <a href="https://hexo.io/docs/" target="_blank" rel="external">documentation</a> for more info. If you get any problems when using Hexo, you can find the answer in <a href="https://hexo.io/docs/troubleshooting.html" target="_blank" rel="external">troubleshooting</a> or you can ask me on <a href="https://github.com/hexojs/hexo/issues" target="_blank" rel="external">GitHub</a>.</p>
<h2 id="Quick-Start"><a href="#Quick-Start" class="headerlink" title="Quick Start"></a>Quick Start</h2><h3 id="Create-a-new-post"><a href="#Create-a-new-post" class="headerlink" title="Create a new post"></a>Create a new post</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ hexo new <span class="string">"My New Post"</span></div></pre></td></tr></table></figure>
<p>More info: <a href="https://hexo.io/docs/writing.html" target="_blank" rel="external">Writing</a></p>
<h3 id="Run-server"><a href="#Run-server" class="headerlink" title="Run server"></a>Run server</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ hexo server</div></pre></td></tr></table></figure>
<p>More info: <a href="https://hexo.io/docs/server.html" target="_blank" rel="external">Server</a></p>
<h3 id="Generate-static-files"><a href="#Generate-static-files" class="headerlink" title="Generate static files"></a>Generate static files</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ hexo generate</div></pre></td></tr></table></figure>
<p>More info: <a href="https://hexo.io/docs/generating.html" target="_blank" rel="external">Generating</a></p>
<h3 id="Deploy-to-remote-sites"><a href="#Deploy-to-remote-sites" class="headerlink" title="Deploy to remote sites"></a>Deploy to remote sites</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ hexo deploy</div></pre></td></tr></table></figure>
<p>More info: <a href="https://hexo.io/docs/deployment.html" target="_blank" rel="external">Deployment</a></p>
</div>
<div class="article-info article-info-index">
<div class="clearfix"></div>
</div>
</div>
</article>
</div>
<footer id="footer">
<div class="outer">
<div id="footer-info">
<div class="footer-left">
<i class="fa fa-copyright"></i>
2016 bstonl
</div>
<div class="footer-right">
<a href="http://hexo.io/" target="_blank" title="快速、简洁且高效的博客框架">Hexo</a> Theme <a href="https://github.com/MOxFIVE/hexo-theme-yelee" target="_blank" title="简而不减 Hexo 双栏博客主题 v3.5">Yelee</a> by MOxFIVE <i class="fa fa-heart animated infinite pulse"></i>
</div>
</div>
<div class="visit">
<span id="busuanzi_container_site_pv" style='display:none'>
<span id="site-visit" title="本站到访数"><i class="fa fa-user" aria-hidden="true"></i><span id="busuanzi_value_site_uv"></span>
</span>
</span>
<span>| </span>
<span id="busuanzi_container_page_pv" style='display:none'>
<span id="page-visit" title="本页阅读量"><i class="fa fa-eye animated infinite pulse" aria-hidden="true"></i><span id="busuanzi_value_page_pv"></span>
</span>
</span>
</div>
</div>
</footer>
</div>
<script data-main="/js/main.js" src="//cdn.bootcss.com/require.js/2.2.0/require.min.js"></script>
<div class="scroll" id="scroll">
<a href="#" title="返回顶部"><i class="fa fa-arrow-up"></i></a>
<a href="#comments" onclick="load$hide();" title="查看评论"><i class="fa fa-comments-o"></i></a>
<a href="#footer" title="转到底部"><i class="fa fa-arrow-down"></i></a>
</div>
<script>
// Open in New Window
var oOpenInNew = {
archives: ".archive-article-title",
miniArchives: "a.post-list-link",
friends: "#js-friends a",
socail: ".social a"
}
for (var x in oOpenInNew) {
$(oOpenInNew[x]).attr("target", "_blank");
}
</script>
<script async src="https://dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js">
</script>
</div>
</body>
</html>