-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
executable file
·246 lines (187 loc) · 9.75 KB
/
index.html
File metadata and controls
executable file
·246 lines (187 loc) · 9.75 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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>SparkInLee's Blog</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="静思、勤写、乐享">
<link href="/images/favicon.png" rel="shortcut icon">
<script src="/js/jquery.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
<link href="/css/bootstrap.min.css" rel="stylesheet" type="text/css">
<link href="/css/theme.css" rel="stylesheet" type="text/css">
<link href="/css/syntax.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="container-fluid">
<div class="row-fluid">
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle Navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/" style="padding:5px;">
<img src="/images/self.png" style="width: 40px;height: 40px;" alt="SparkInLee's Blog" />
</a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="/">主页</a></li>
<li><a href="/archive.html">文章列表</a></li>
<li><a href="/about.html">关于我</a></li>
<li class="visible-xs-block"><a href="/links.html">相关链接</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="container container-left">
<div class="row">
<div class="col-md-9">
<div class="article" style="border-bottom: 2px solid #eee;">
<div class="well" style="margin-bottom: 0px;">
<h1 style="margin-bottom: 10px;">
<a href="/2016/08/Android-Animator%E8%BF%90%E8%A1%8C%E5%8E%9F%E7%90%86%E8%AF%A6%E8%A7%A3">Android Animator运行原理详解</a>
</h1>
<p style="color: #999;font-size: 10px;margin-bottom: 10px;">
<span>2016-08-14</span>
<span class="author" style="margin-left: 10px;">
<a href="/2016/08/Android-Animator%E8%BF%90%E8%A1%8C%E5%8E%9F%E7%90%86%E8%AF%A6%E8%A7%A3#disqus_thread">查看评论</a>
</span>
</p>
<div class="content">
<p><strong>摘要</strong>:本文根据Animator的源码分析其运行原理,包括:属性动画包含哪些基本元素;属性动画的运行流程是怎样的;属性动画是怎么对View起作用的;怎么组合并运行多个属性动画;属性动画的帧率决定者<code class="highlighter-rouge">Choreographer</code>是如何工作的。</p>
</div>
</div>
</div>
<div class="article" style="border-bottom: 2px solid #eee;">
<div class="well" style="margin-bottom: 0px;">
<h1 style="margin-bottom: 10px;">
<a href="/2016/08/Android-Animation%E8%BF%90%E8%A1%8C%E5%8E%9F%E7%90%86%E8%AF%A6%E8%A7%A3">Android Animation运行原理详解</a>
</h1>
<p style="color: #999;font-size: 10px;margin-bottom: 10px;">
<span>2016-08-06</span>
<span class="author" style="margin-left: 10px;">
<a href="/2016/08/Android-Animation%E8%BF%90%E8%A1%8C%E5%8E%9F%E7%90%86%E8%AF%A6%E8%A7%A3#disqus_thread">查看评论</a>
</span>
</p>
<div class="content">
<p><strong>摘要</strong>:本文根据Animation的源码分析其运行原理,包括:Matrix如何控制动画参数;动画中各参数具体起什么作用;透明度动画、缩放动画、平移动画以及旋转动画的运行逻辑;动画在View的绘制过程中如何被应用。</p>
</div>
</div>
</div>
<div class="article" style="border-bottom: 2px solid #eee;">
<div class="well" style="margin-bottom: 0px;">
<h1 style="margin-bottom: 10px;">
<a href="/2016/08/dex%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E5%8F%8Adexdiff%E5%8E%9F%E7%90%86">DexDiff:基于dex文件反编译生成dex增量包</a>
</h1>
<p style="color: #999;font-size: 10px;margin-bottom: 10px;">
<span>2016-08-02</span>
<span class="author" style="margin-left: 10px;">
<a href="/2016/08/dex%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E5%8F%8Adexdiff%E5%8E%9F%E7%90%86#disqus_thread">查看评论</a>
</span>
</p>
<div class="content">
<p><strong>摘要</strong>:本文主要分享如何通过对比新旧dex的反编译数据生成差分数据,然后利用旧dex与差分数据合成新dex,这技术可应用于Android的热补丁、增量更新。</p>
</div>
</div>
</div>
<div class="article" style="border-bottom: 2px solid #eee;">
<div class="well" style="margin-bottom: 0px;">
<h1 style="margin-bottom: 10px;">
<a href="/2016/07/%E8%8E%B7%E5%8F%96%E9%9D%9ERoot%E6%89%8B%E6%9C%BA%E4%B8%8B%E5%BA%94%E7%94%A8%E7%A7%81%E6%9C%89%E6%95%B0%E6%8D%AE-copy">获取非Root手机下应用私有数据</a>
</h1>
<p style="color: #999;font-size: 10px;margin-bottom: 10px;">
<span>2016-07-31</span>
<span class="author" style="margin-left: 10px;">
<a href="/2016/07/%E8%8E%B7%E5%8F%96%E9%9D%9ERoot%E6%89%8B%E6%9C%BA%E4%B8%8B%E5%BA%94%E7%94%A8%E7%A7%81%E6%9C%89%E6%95%B0%E6%8D%AE-copy#disqus_thread">查看评论</a>
</span>
</p>
<div class="content">
<p><strong>摘要</strong>:本文主要分享一款Android辅助调试工具——Debugger,可获取各种手机下各种版本应用的私有数据。</p>
</div>
</div>
</div>
<div class="article" style="border-bottom: 2px solid #eee;">
<div class="well" style="margin-bottom: 0px;">
<h1 style="margin-bottom: 10px;">
<a href="/2016/06/Touch%E4%BA%8B%E4%BB%B6%E5%88%86%E5%8F%91%E5%A4%84%E7%90%86%E6%9C%BA%E5%88%B6%E8%AF%A6%E8%A7%A3">Touch事件分发处理机制详解</a>
</h1>
<p style="color: #999;font-size: 10px;margin-bottom: 10px;">
<span>2016-06-16</span>
<span class="author" style="margin-left: 10px;">
<a href="/2016/06/Touch%E4%BA%8B%E4%BB%B6%E5%88%86%E5%8F%91%E5%A4%84%E7%90%86%E6%9C%BA%E5%88%B6%E8%AF%A6%E8%A7%A3#disqus_thread">查看评论</a>
</span>
</p>
<div class="content">
<p><strong>摘要</strong>:本文主要分析Android中Touch事件的分发与处理。</p>
</div>
</div>
</div>
<div class="pagination">
<span class="page_number" style="margin: 0 10px;">1 / 3</span>
<a class="btn btn-default" href="/page2" class="next">下一页</a>
</div>
</div>
<div class="col-md-3 hidden-xs" style="border-left: 1px solid #eee;" >
<div style="min-height: 900px;">
<div class="sidebar well">
<h1>最新文章</h1>
<ul>
<li><a href="/2016/08/Android-Animator%E8%BF%90%E8%A1%8C%E5%8E%9F%E7%90%86%E8%AF%A6%E8%A7%A3">Android Animator运行原理详解</a></li>
<li><a href="/2016/08/Android-Animation%E8%BF%90%E8%A1%8C%E5%8E%9F%E7%90%86%E8%AF%A6%E8%A7%A3">Android Animation运行原理详解</a></li>
<li><a href="/2016/08/dex%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E5%8F%8Adexdiff%E5%8E%9F%E7%90%86">DexDiff:基于dex文件反编译生成dex增量包</a></li>
<li><a href="/2016/07/%E8%8E%B7%E5%8F%96%E9%9D%9ERoot%E6%89%8B%E6%9C%BA%E4%B8%8B%E5%BA%94%E7%94%A8%E7%A7%81%E6%9C%89%E6%95%B0%E6%8D%AE-copy">获取非Root手机下应用私有数据</a></li>
<li><a href="/2016/06/Touch%E4%BA%8B%E4%BB%B6%E5%88%86%E5%8F%91%E5%A4%84%E7%90%86%E6%9C%BA%E5%88%B6%E8%AF%A6%E8%A7%A3">Touch事件分发处理机制详解</a></li>
</ul>
</div>
<div class="sidebar well">
<h1>相关链接</h1>
<ul>
<li><a href="https://github.com/SparkInLee/Debugger" target="blank">GitHub: Debugger</a></li>
<li><a href="https://github.com/SparkInLee/dexdiff" target="blank">GitHub: DexDiff</a></li>
<li><a href="https://github.com/SparkInLee/jbsdiff" target="blank">GitHub: JBsdiff</a></li>
</ul>
</div>
<div class="sidebar well">
<h1>微信</h1>
<img src="/images/qr.png" style="width: 320px;height: 320px;" alt="SparkInLee's Blog" />
</div>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row-fluid">
<div class="span12 footer navbar-inverse navbar-fixed-bottom">
<p class="copyright">©2016 SparkInLee's Blog.</p>
</div>
</div>
</div>
<!--
<script type="text/javascript">
var disqus_shortname = 'sparklee';
var disqus_config = function () {
this.page.identifier = '';
};
(function () {
var s = document.createElement('script'); s.async = true;
s.type = 'text/javascript';
s.src = '//' + disqus_shortname + '.disqus.com/count.js';
(document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
}());
</script>
-->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-75606848-1', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>