PageSourceSearch

https://frodoking.github.io/

html frodoking.github.io collected 2026-10-03 09:12:53 UTC 27,008 bytes, 803 lines download raw bytes

1<!DOCTYPE html>
2<html>
3<head>
4  <meta charset="utf-8">
5  
6  <meta http-equiv="X-UA-Compatible" content="IE=edge" >
7  <title>Frodo&#39;s Blog</title>
8  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
9  <meta name="description" content="技术海洋中一名默默的Geek">
10<meta property="og:type" content="website">
11<meta property="og:title" content="Frodo's Blog">
12<meta property="og:url" content="http://frodoking.github.io/index.html">
13<meta property="og:site_name" content="Frodo's Blog">
14<meta property="og:description" content="技术海洋中一名默默的Geek">
15<meta name="twitter:card" content="summary">
16<meta name="twitter:title" content="Frodo's Blog">
17<meta name="twitter:description" content="技术海洋中一名默默的Geek">
18  
19    <link rel="alternative" href="/atom.xml" title="Frodo&#39;s Blog" type="application/atom+xml">
20  
21  
22    <link rel="icon" href="/favicon.png">
23  
24  <link rel="stylesheet" href="/css/style.css">
25</head>
26
27<body>
28  <div id="container">
29    <div class="left-col">
30    <div class="overlay"></div>
31<div class="intrude-less">
32	<header id="header" class="inner">
33		<a href="/" class="profilepic">
34			
35			<img lazy-src="https://avatars0.githubusercontent.com/u/7484982?v=3&amp;u=4e45871de440c2bd2302a5420358118d6a4950f7&amp;s=140" class="js-avatar">
36			
37		</a>
38
39		<hgroup>
40		  <h1 class="header-author"><a href="/">Frodo</a></h1>
41		</hgroup>
42
43		
44		<p class="header-subtitle">熟悉的歌谣里,藏着童话的影子。</p>
45		
46
47		
48			<div class="switch-btn">
49				<div class="icon">
50					<div class="icon-ctn">
51						<div class="icon-wrap icon-house" data-idx="0">
52							<div class="birdhouse"></div>
53							<div class="birdhouse_holes"></div>
54						</div>
55						<div class="icon-wrap icon-ribbon hide" data-idx="1">
56							<div class="ribbon"></div>
57						</div>
58						
59						<div class="icon-wrap icon-link hide" data-idx="2">
60							<div class="loopback_l"></div>
61							<div class="loopback_r"></div>
62						</div>
63						
64						
65					</div>
66					
67				</div>
68				<div class="tips-box hide">
69					<div class="tips-arrow"></div>
70					<ul class="tips-inner">
71						<li>Menu</li>
72						<li>Tags</li>
73						
74						<li>Links</li>
75						
76						
77					</ul>
78				</div>
79			</div>
80		
81
82		<div class="switch-area">
83			<div class="switch-wrap">
84				<section class="switch-part switch-part1">
85					<nav class="header-menu">
86						<ul>
87						
88							<li><a href="/">主页</a></li>
89				        
90							<li><a href="/archives">文章列表</a></li>
91				        
92						</ul>
93					</nav>
94					<nav class="header-nav">
95						<div class="social">
96							
97								<a class="github" target="_blank" href="https://github.com/frodoking" title="github">github</a>
98					        
99								<a class="weibo" target="_blank" href="http://weibo.com/u/2351718353" title="weibo">weibo</a>
100					        
101								<a class="zhihu" target="_blank" href="#" title="zhihu">zhihu</a>
102					        
103								<a class="rss" target="_blank" href="/atom.xml" title="rss">rss</a>
104					        
105								<a class="Sitemap" target="_blank" href="/sitemap.xml" title="Sitemap">Sitemap</a>
106					        
107						</div>
108					</nav>
109				</section>
110				
111				
112				<section class="switch-part switch-part2">
113					<div class="widget tagcloud" id="js-tagcloud">
114						<a href="/tags/android/" style="font-size: 20px;">Android</a> <a href="/tags/java/" style="font-size: 15px;">Java</a> <a href="/tags/tools/" style="font-size: 10px;">tools</a> <a href="/tags/music/" style="font-size: 10px;">音乐</a>
115					</div>
116				</section>
117				
118				
119				
120				<section class="switch-part switch-part3">
121					<div id="js-friends">
122					
123			          <a target="_blank" class="main-nav-link switch-friends-link" href="http://zipperary.com/">Zipperra&#39;s Blog</a>
124			        
125			          <a target="_blank" class="main-nav-link switch-friends-link" href="http://litten.github.io/">Litten&#39;s Blog</a>
126			        
127			          <a target="_blank" class="main-nav-link switch-friends-link" href="http://scatterman.github.io/">Scatterman&#39;s Blog</a>
128			        
129			          <a target="_blank" class="main-nav-link switch-friends-link" href="http://blog.danlew.net/">Dan Lew&#39;s Blog</a>
130			        
131			          <a target="_blank" class="main-nav-link switch-friends-link" href="http://diptech.sinaapp.com/">老苗的blog</a>
132			        
133			          <a target="_blank" class="main-nav-link switch-friends-link" href="http://codekk.com/open-source-project-analysis">codekk</a>
134			        
135			          <a target="_blank" class="main-nav-link switch-friends-link" href="http://androidweekly.net/">AndroidWeekly</a>
136			        
137			          <a target="_blank" class="main-nav-link switch-friends-link" href="http://www.google.com.cn">Google</a>
138			        
139			          <a target="_blank" class="main-nav-link switch-friends-link" href="http://www.baidu.com">Baidu</a>
140			        
141			        </div>
142				</section>
143				
144
145				
146			</div>
147		</div>
148	</header>				
149</div>
150
151    </div>
152    <div class="mid-col">
153      <nav id="mobile-nav">
154  	<div class="overlay">
155  		<div class="slider-trigger"></div>
156  		<h1 class="header-author js-mobile-header hide">Frodo</h1>
157  	</div>
158	<div class="intrude-less">
159		<header id="header" class="inner">
160			<div class="profilepic">
161			
162				<img lazy-src="https://avatars0.githubusercontent.com/u/7484982?v=3&amp;u=4e45871de440c2bd2302a5420358118d6a4950f7&amp;s=140" class="js-avatar">
163			
164			</div>
165			<hgroup>
166			  <h1 class="header-author">Frodo</h1>
167			</hgroup>
168			
169			<p class="header-subtitle">熟悉的歌谣里,藏着童话的影子。</p>
170			
171			<nav class="header-menu">
172				<ul>
173				
174					<li><a href="/">主页</a></li>
175		        
176					<li><a href="/archives">文章列表</a></li>
177		        
178		        <div class="clearfix"></div>
179				</ul>
180			</nav>
181			<nav class="header-nav">
182				<div class="social">
183					
184						<a class="github" target="_blank" href="https://github.com/frodoking" title="github">github</a>
185			        
186						<a class="weibo" target="_blank" href="http://weibo.com/u/2351718353" title="weibo">weibo</a>
187			        
188						<a class="zhihu" target="_blank" href="#" title="zhihu">zhihu</a>
189			        
190						<a class="rss" target="_blank" href="/atom.xml" title="rss">rss</a>
191			        
192						<a class="Sitemap" target="_blank" href="/sitemap.xml" title="Sitemap">Sitemap</a>
193			        
194				</div>
195			</nav>
196		</header>				
197	</div>
198</nav>
199
200      <div class="body-wrap">
201  
202    <article id="post-android-github-client" class="article article-type-post" itemscope itemprop="blogPost">
203  
204    <div class="article-meta">
205      <a href="/2016/06/07/android-github-client/" class="article-date">
206  	<time datetime="2016-06-07T08:27:28.000Z" itemprop="datePublished">Jun 7</time>
207</a>
208    </div>
209  
210  <div class="article-inner">
211    
212      <input type="hidden" class="isFancy" />
213    
214    
215      <header class="article-header">
216        
217  
218    <h1 itemprop="name">
219      <a class="article-title" href="/2016/06/07/android-github-client/">Github Android Client</a>
220    </h1>
221  
222
223      </header>
224      
225    
226    <div class="article-entry" itemprop="articleBody">
227      
228        <p>前一段时间找了很久Github在Android端上的App,但是无果。同时为了验证个人开源的App框架<a href="https://github.com/frodoking/App-Architecture.git">App-Architecture</a>,因此,花了一些时间编写了这个应用。另外个人相信针对拥有众多开发者的Github开发一个好的App是很有用的。</p>
229      
230    </div>
231    
232    <div class="article-info article-info-index">
233      
234      
235	<div class="article-tag tagcloud">
236		<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/android/">Android</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/java/">Java</a></li></ul>
237	</div>
238
239      
240	<div class="article-category tagcloud">
241	<a class="article-category-link" href="/categories/programming/">编程</a>
242	</div>
243
244
245      
246        <p class="article-more-link">
247          <a  href="/2016/06/07/android-github-client/#more">more >></a>
248        </p>
249      
250      <div class="clearfix"></div>
251    </div>
252    
253  </div>
254  
255</article>
256
257
258
259
260
261
262
263
264
265  
266    <article id="post-android-weekly" class="article article-type-post" itemscope itemprop="blogPost">
267  
268    <div class="article-meta">
269      <a href="/2016/03/01/android-weekly/" class="article-date">
270  	<time datetime="2016-03-01T03:30:27.000Z" itemprop="datePublished">Mar 1</time>
271</a>
272    </div>
273  
274  <div class="article-inner">
275    
276      <input type="hidden" class="isFancy" />
277    
278    
279      <header class="article-header">
280        
281  
282    <h1 itemprop="name">
283      <a class="article-title" href="/2016/03/01/android-weekly/">Android Weekly 值得收藏的项</a>
284    </h1>
285  
286
287      </header>
288      
289    
290    <div class="article-entry" itemprop="articleBody">
291      
292        <p><strong> 第193期 </strong></p>
293<ol>
294<li><a href="http://saulmm.github.io/avoding-android-cold-starts">Avoiding cold starts on Android</a>  </li>
295</ol>
296<p><strong> 第192期 </strong></p>
297<ol>
298<li><a href="http://www.schibsted.pl/2016/02/hood-okhttps-cache/">What’s under the hood of the OkHttp’s cache?</a>  </li>
299</ol>
300<p><strong> 第191期 </strong></p>
301<ol>
302<li><a href="https://medium.com/@workingkills/10-things-didn-t-know-about-android-s-service-component-a2880b74b2b3#.eu5ls3cic">10 things you didn’t know about Android’s Service component</a></li>
303</ol>
304<p><strong> 第190期 </strong></p>
305<ol>
306<li><a href="http://riggaroo.co.za/fixing-memory-leaks-in-android-outofmemoryerror/">Fixing Memory Leaks in Android - OutOfMemoryError</a></li>
307</ol>
308<p><strong> 第189期 </strong></p>
309<ol>
310<li><a href="https://medium.com/@v.danylo/implementing-video-playback-in-a-scrolled-list-listview-recyclerview-d04bc2148429#.mzto2r2u2">Implementing video playback in a scrolled list </a>
311      
312    </div>
313    
314    <div class="article-info article-info-index">
315      
316      
317	<div class="article-tag tagcloud">
318		<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/android/">Android</a></li></ul>
319	</div>
320
321      
322	<div class="article-category tagcloud">
323	<a class="article-category-link" href="/categories/programming/">编程</a>
324	</div>
325
326
327      
328        <p class="article-more-link">
329          <a  href="/2016/03/01/android-weekly/#more">more >></a>
330        </p>
331      
332      <div class="clearfix"></div>
333    </div>
334    
335  </div>
336  
337</article>
338
339
340
341
342
343
344
345
346
347  
348    <article id="post-screaming-architecture" class="article article-type-post" itemscope itemprop="blogPost">
349  
350    <div class="article-meta">
351      <a href="/2015/11/11/screaming-architecture/" class="article-date">
352  	<time datetime="2015-11-11T07:19:38.000Z" itemprop="datePublished">Nov 11</time>
353</a>
354    </div>
355  
356  <div class="article-inner">
357    
358      <input type="hidden" class="isFancy" />
359    
360    
361      <header class="article-header">
362        
363  
364    <h1 itemprop="name">
365      <a class="article-title" href="/2015/11/11/screaming-architecture/">令人尖叫的架构</a>
366    </h1>
367  
368
369      </header>
370      
371    
372    <div class="article-entry" itemprop="articleBody">
373      
374        <p>原文:<a href="https://blog.8thlight.com/uncle-bob/2011/09/30/Screaming-Architecture.html">https://blog.8thlight.com/uncle-bob/2011/09/30/Screaming-Architecture.html</a></p>
375<p>想像一下,你正在看一栋大楼的蓝图。建筑师为你准备了一份修建大楼的计划文档,那你从这些计划文档中能知道些什么呢?<br>如果你看的计划书是针对单个家庭住户的话,那么你可能会看到一个前门,一个通向客厅或者是餐厅的门厅ã€
375‚靠近饭厅很可能离厨房有一段很短的距离。也许厨房的旁边是扇子区,也可能是一个卧室。当你看着这些计划,你毫无疑问的就会想到你正在看的是一套房子。该架构就叫做“房子”。</p>
376<p>或者,如果你在一座图书馆的架构时,在这个图书馆里,你很可能看到一个宏伟的入口,一个出入检查区域,阅读区,小型会议室和一排排用于放书的书架。这种架构就叫做“图书馆”。</p>
377<p>因此,你的应用架构重点是什么呢?当你看到顶层的目录结构和在最高级别的包的源文件时,重点是医疗保健系统,或者是会计系统,或者是库存管理系统?还是Rails, 或者 Spring/Hibernate, 或者ASP呢?<br>
378      
379    </div>
380    
381    <div class="article-info article-info-index">
382      
383      
384      
385	<div class="article-category tagcloud">
386	<a class="article-category-link" href="/categories/architecture/">架构</a>
387	</div>
388
389
390      
391        <p class="article-more-link">
392          <a  href="/2015/11/11/screaming-architecture/#more">more >></a>
393        </p>
394      
395      <div class="clearfix"></div>
396    </div>
397    
398  </div>
399  
400</article>
401
402
403
404
405
406
407
408
409
410  
411    <article id="post-android-glide" class="article article-type-post" itemscope itemprop="blogPost">
412  
413    <div class="article-meta">
414      <a href="/2015/10/10/android-glide/" class="article-date">
415  	<time datetime="2015-10-10T03:03:19.000Z" itemprop="datePublished">Oct 10</time>
416</a>
417    </div>
418  
419  <div class="article-inner">
420    
421      <input type="hidden" class="isFancy" />
422    
423    
424      <header class="article-header">
425        
426  
427    <h1 itemprop="name">
428      <a class="article-title" href="/2015/10/10/android-glide/">Android Glide源码解析</a>
429    </h1>
430  
431
432      </header>
433      
434    
435    <div class="article-entry" itemprop="articleBody">
436      
437        <h2 id="功能介绍"><a href="#功能介绍" class="headerlink" title="功能介绍"></a>功能介绍</h2><p>使用文章介绍以及和Picasso的对比分析请参考<a href="http://inthecheesefactory.com/blog/get-to-know-glide-recommended-by-google/en">Introduction to Glide, Image Loader Library for Android, recommended by Google</a></p>
438<p>由于这篇文章使用glide的老版本,因此有些使用方法可能不太一致了。<br>本文基于github上Glide最新代码4.0.0版本做解析。<br>最基本的使用方式如下:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">Glide.with(this)</span><br><span class="line">                .asDrawable()</span><br><span class="line">                .load(&quot;http://i6.topit.me/6/5d/45/1131907198420455d6o.jpg&quot;)</span><br><span class="line">                .apply(fitCenterTransform(this))</span><br><span class="line">                .apply(placeholderOf(R.drawable.skyblue_logo_wechatfavorite_checked))</span><br><span class="line">                .into(imageView);</span><br></pre></td></tr></table></figure></p>
439<p>Glide使用了现在非常流行的流氏编码方式,方便了开发者的使用,简明、扼要。<br>接下来主要对上面这一段流氏操作做拆分。<br>
440      
441    </div>
442    
443    <div class="article-info article-info-index">
444      
445      
446	<div class="article-tag tagcloud">
447		<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/android/">Android</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/java/">Java</a></li></ul>
448	</div>
449
450      
451	<div class="article-category tagcloud">
452	<a class="article-category-link" href="/categories/programming/">编程</a><a class="article-category-link" href="/categories/programming/source/">源码</a>
453	</div>
454
455
456      
457        <p class="article-more-link">
458          <a  href="/2015/10/10/android-glide/#more">more >></a>
459        </p>
460      
461      <div class="clearfix"></div>
462    </div>
463    
464  </div>
465  
466</article>
467
468
469
470
471
472
473
474
475
476  
477    <article id="post-android-app-framework" class="article article-type-post" itemscope itemprop="blogPost">
478  
479    <div class="article-meta">
480      <a href="/2015/09/15/android-app-framework/" class="article-date">
481  	<time datetime="2015-09-15T08:54:54.000Z" itemprop="datePublished">Sep 15</time>
482</a>
483    </div>
484  
485  <div class="article-inner">
486    
487      <input type="hidden" class="isFancy" />
488    
489    
490      <header class="article-header">
491        
492  
493    <h1 itemprop="name">
494      <a class="article-title" href="/2015/09/15/android-app-framework/">App项目架构解决方案</a>
495    </h1>
496  
497
498      </header>
499      
500    
501    <div class="article-entry" itemprop="articleBody">
502      
503        <p>App-Architecture是一个关于移动应用一整套架构的解决方案开源项目。主要目的是整合流行开发模式结合自己本人的工作经验形成的一整套App快速开发解决方案。本套解决方案的app工程
503和simple工程主要基于Android实现。framework工程实现了主要架构,主要目的是抛开平台相关性。</p>
504      
505    </div>
506    
507    <div class="article-info article-info-index">
508      
509      
510	<div class="article-tag tagcloud">
511		<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/android/">Android</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/java/">Java</a></li></ul>
512	</div>
513
514      
515	<div class="article-category tagcloud">
516	<a class="article-category-link" href="/categories/programming/">编程</a><a class="article-category-link" href="/categories/programming/source/">源码</a>
517	</div>
518
519
520      
521        <p class="article-more-link">
522          <a  href="/2015/09/15/android-app-framework/#more">more >></a>
523        </p>
524      
525      <div class="clearfix"></div>
526    </div>
527    
528  </div>
529  
530</article>
531
532
533
534
535
536
537
538
539
540  
541    <article id="post-reactivex" class="article article-type-post" itemscope itemprop="blogPost">
542  
543    <div class="article-meta">
544      <a href="/2015/09/08/reactivex/" class="article-date">
545  	<time datetime="2015-09-08T06:47:15.000Z" itemprop="datePublished">Sep 8</time>
546</a>
547    </div>
548  
549  <div class="article-inner">
550    
551      <input type="hidden" class="isFancy" />
552    
553    
554      <header class="article-header">
555        
556  
557    <h1 itemprop="name">
558      <a class="article-title" href="/2015/09/08/reactivex/">ReactiveX--响应式编程</a>
559    </h1>
560  
561
562      </header>
563      
564    
565    <div class="article-entry" itemprop="articleBody">
566      
567        <p>在许多软件编程任务中,你或多或少期待你的指令将会按照你已经写好的顺序,依次增量执行和完成。但在ReactiveX,很多指令可以通过“观察者”并行执行,其结果将以任意顺序被捕获。你定义了一种“可观察的形式“的检索和转换数据机制而不​​是调用方法,然后订阅观察者给它,每当之前定义好的机制已经准备好了,这些机制就会触发常设的哨兵去捕获并反馈结果。</p>
568<p>这种方法的优点是,当你有一大堆的任务是不相互依赖,你就可以同时执行他们,而不是等待每一个来启动下一个前完成,这样你的整个任务包只需要花最长的任务时间。</p>
569<p>有很多属于来描述异步编程和设计模型。本文将使用下列术语:一个观察者(observer)订阅可观察到的(Observable)。可观察到的(Observable)通过调用观察者的方法来发射项目或通知给它的所有观察者(observer)。</p>
570<p>观察者有些时候也被称作是订阅者,观看者,响应者。因此这样的模式通常就叫做响应模式。</p>
571<p>在很多存在UI操作的地方,UI上的操作不应该等待耗时执行程序的完成而阻塞。在一般编程模式下,都会采用异步线程+回调的方式完成这样的交互操作。不过当回调层次越来越多的时候,那代码可维护性将变得很麻烦。因此ReactiveX最出色的地方就是将多个操作过程按照自定义顺序组合完成最终结果,在每次一的操作中只需要关心业务逻辑本身的执行即可。<br>
572      
573    </div>
574    
575    <div class="article-info article-info-index">
576      
577      
578      
579	<div class="article-category tagcloud">
580	<a class="article-category-link" href="/categories/programming/">编程</a><a class="article-category-link" href="/categories/programming/architecture/">架构</a>
581	</div>
582
583
584      
585        <p class="article-more-link">
586          <a  href="/2015/09/08/reactivex/#more">more >></a>
587        </p>
588      
589      <div class="clearfix"></div>
590    </div>
591    
592  </div>
593  
594</article>
595
596
597
598
599
600
601
602
603
604  
605    <article id="post-java-concurrent-mechanism" class="article article-type-post" itemscope itemprop="blogPost">
606  
607    <div class="article-meta">
608      <a href="/2015/07/19/java-concurrent-mechanism/" class="article-date">
609  	<time datetime="2015-07-19T02:10:06.000Z" itemprop="datePublished">Jul 19</time>
610</a>
611    </div>
612  
613  <div class="article-inner">
614    
615      <input type="hidden" class="isFancy" />
616    
617    
618      <header class="article-header">
619        
620  
621    <h1 itemprop="name">
622      <a class="article-title" href="/2015/07/19/java-concurrent-mechanism/">Java并发控制机制</a>
623    </h1>
624  
625
626      </header>
627      
628    
629    <div class="article-entry" itemprop="articleBody">
630      
631        <p>
631因文章很快被人转载到一些其他网站,所以本人在此声明:<br><strong>转载请标明转载出处:<a href="http://frodoking.github.io/2015/07/19/java-concurrent-mechanism/">http://frodoking.github.io/2015/07/19/java-concurrent-mechanism/</a> </strong></p>
632<p>在一般性开发中,笔者经常看到很多同学在对待java并发开发模型中只会使用一些基础的方法。比如volatile,synchronized。像Lock和atomic这类高级并发包很多人并不经常使用。我想大部分原因都是来之于对原理的不属性导致的。在繁忙的开发工作中,又有谁会很准确的把握和使用正确的并发模型呢?</p>
633<p>所以最近基于这个思想,本人打算把并发控制机制这部分整理成一篇文章。既是对自己掌握知识的一个回忆,也是希望这篇讲到的类容能帮助到大部分开发者。</p>
634<p>并行程序开发不可避免地要涉及多线程、多任务的协作和数据共享等问题。在JDK中,提供了多种途径实现多线程间的并发控制。比如常用的:内部锁、重入锁、读写锁和信号量。<br>
635      
636    </div>
637    
638    <div class="article-info article-info-index">
639      
640      
641	<div class="article-tag tagcloud">
642		<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/java/">Java</a></li></ul>
643	</div>
644
645      
646	<div class="article-category tagcloud">
647	<a class="article-category-link" href="/categories/programming/">编程</a><a class="article-category-link" href="/categories/programming/optimization/">优化</a>
648	</div>
649
650
651      
652        <p class="article-more-link">
653          <a  href="/2015/07/19/java-concurrent-mechanism/#more">more >></a>
654        </p>
655      
656      <div class="clearfix"></div>
657    </div>
658    
659  </div>
660  
661</article>
662
663
664
665
666
667
668
669
670
671  
672    <article id="post-android-theme" class="article article-type-post" itemscope itemprop="blogPost">
673  
674    <div class="article-meta">
675      <a href="/2015/07/01/android-theme/" class="article-date">
676  	<time datetime="2015-07-01T09:25:47.000Z" itemprop="datePublished">Jul 1</time>
677</a>
678    </div>
679  
680  <div class="article-inner">
681    
682      <input type="hidden" class="isFancy" />
683    
684    
685      <header class="article-header">
686        
687  
688    <h1 itemprop="name">
689      <a class="article-title" href="/2015/07/01/android-theme/">Android统一风格 —— 主题</a>
690    </h1>
691  
692
693      </header>
694      
695    
696    <div class="article-entry" itemprop="articleBody">
697      
698        <p>接触Android是从UI开始的,笔者第一份工作是在金山软件做WPS Office。当时开发主要是负责整个演示PPT这边的UI风格开发和维护,当时的开发要求非常严格。要求所有控件采用App的总体风格,不过尽管这样,一个上百人的开发团队。并不能保证所有的人都能做出一样的风格,总是会存在这里或者那里的细小差别。就拿简单的文本框来说,文字排版、大小、颜色、字体、内边距和外边距等等,在不同的层级中都是有不同的要求。如果稍不注意,在后面的调整中都很费劲。<br>
699      
700    </div>
701    
702    <div class="article-info article-info-index">
703      
704      
705	<div class="article-tag tagcloud">
706		<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/android/">Android</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/java/">Java</a></li></ul>
707	</div>
708
709      
710	<div class="article-category tagcloud">
711	<a class="article-category-link" href="/categories/programming/">编程</a><a class="article-category-link" href="/categories/programming/optimization/">优化</a>
712	</div>
713
714
715      
716        <p class="article-more-link">
717          <a  href="/2015/07/01/android-theme/#more">more >></a>
718        </p>
719      
720      <div class="clearfix"></div>
721    </div>
722    
723  </div>
724  
725</article>
726
727
728
729
730
731
732
733
734
735  
736  
737    <nav id="page-nav">
738      <span class="page-number current">1</span><a class="page-number" href="/page/2/">2</a><a class="page-number" href="/page/3/">3</a><a class="extend next" rel="next" href="/page/2/">Next &raquo;</a>
739    </nav>
740  
741</div>
742      <footer id="footer">
743  <div class="outer">
744    <div id="footer-info">
745    	<div class="footer-left">
746    		&copy; 2016 Frodo
747    	</div>
748      	<div class="footer-right">
749      		<a href="http://hexo.io/" target="_blank">Hexo</a>  Theme <a href="https://github.com/litten/hexo-theme-yilia" target="_blank">Yilia</a> by Litten
750      	</div>
751    </div>
752  </div>
753</footer>
754    </div>
755    
756  <link rel="stylesheet" href="/fancybox/jquery.fancybox.css">
757
758
759<script>
760	var yiliaConfig = {
761		fancybox: true,
762		mathjax: true,
763		animate: true,
764		isHome: true,
765		isPost: false,
766		isArchive: false,
767		isTag: false,
768		isCategory: false,
769		open_in_new: false
770	}
771</script>
vendor: 1 bytes, line 771
771
772<script src="http://7.url.cn/edu/jslib/comb/require-2.1.6,jquery-1.9.1.min.js"></script>
vendor: 1 bytes, line 772
772
773<script src="/js/main.js"></script>
773
774
775
776
777
778
779
780<script type="text/x-mathjax-config">
781MathJax.Hub.Config({
782    tex2jax: {
783        inlineMath: [ ['$','$'], ["\\(","\\)"]  ],
784        processEscapes: true,
785        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
786    }
787});
788
789MathJax.Hub.Queue(function() {
790    var all = MathJax.Hub.getAllJax(), i;
791    for(i=0; i < all.length; i += 1) {
792        all[i].SourceElement().parentNode.className += ' has-jax';                 
793    }       
794});
795</script>
795
796
797<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
798</script>
798
799
800
801  </div>
802</body>
803</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.