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'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'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&u=4e45871de440c2bd2302a5420358118d6a4950f7&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's Blog</a> 124 125 <a target="_blank" class="main-nav-link switch-friends-link" href="http://litten.github.io/">Litten's Blog</a> 126 127 <a target="_blank" class="main-nav-link switch-friends-link" href="http://scatterman.github.io/">Scatterman's Blog</a> 128 129 <a target="_blank" class="main-nav-link switch-friends-link" href="http://blog.danlew.net/">Dan Lew'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&u=4e45871de440c2bd2302a5420358118d6a4950f7&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("http://i6.topit.me/6/5d/45/1131907198420455d6o.jpg")</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 »</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 © 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.