| route-pattern | /:user_id/:repository |
| route-controller | files |
| route-action | disambiguate |
| fetch-nonce | v2:792a44f2-01c4-aed7-eddb-b57fbf497823 |
| current-catalog-service-hash | f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb |
| request-id | D866:B3582:6F066D4:9744950:6973A904 |
| html-safe-nonce | 8e9b66e1c2430e88e2b10aa1d06230e7679c40db2f68ddc9926668a58fd8728d |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEODY2OkIzNTgyOjZGMDY2RDQ6OTc0NDk1MDo2OTczQTkwNCIsInZpc2l0b3JfaWQiOiI1MTA1Njk0MDU5MjY4NDQ2NzYiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 57ef5258e50e6fd5461c06ca805700aa7ffc5295e2f15a0082fa7c478f39cfd0 |
| hovercard-subject-tag | repository:341491811 |
| github-keyboard-shortcuts | repository,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | // |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/ruffeAndroid/Blog |
| twitter:image | https://opengraph.githubassets.com/67e69b5e0500ce429836045bf1ad53ef6da19b82507cba18816001d5e079f27e/ruffeAndroid/Blog |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/67e69b5e0500ce429836045bf1ad53ef6da19b82507cba18816001d5e079f27e/ruffeAndroid/Blog |
| og:image:alt | Android 面试宝典、数据结构和算法、音视频 (FFmpeg、AAC、x264、MediaCodec)、 C/C++ 、OpenCV、跨平台等学习记录。【0基础音视频进阶学习路线】 - ruffeAndroid/Blog |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 3e9aa9d0c22a21b13b378b4acd09f5dd4876a884425aacd32a9f473b84c8762d |
| turbo-cache-control | no-preview |
| go-import | github.com/ruffeAndroid/Blog git https://github.com/ruffeAndroid/Blog.git |
| octolytics-dimension-user_id | 24284597 |
| octolytics-dimension-user_login | ruffeAndroid |
| octolytics-dimension-repository_id | 341491811 |
| octolytics-dimension-repository_nwo | ruffeAndroid/Blog |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | true |
| octolytics-dimension-repository_parent_id | 167823503 |
| octolytics-dimension-repository_parent_nwo | yangkun19921001/Blog |
| octolytics-dimension-repository_network_root_id | 167823503 |
| octolytics-dimension-repository_network_root_nwo | yangkun19921001/Blog |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 9240c0b5247c88bacc8dffb46ecac04c94fd094b |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
| Skip to content | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#start-of-content |
|
| https://patch-diff.githubusercontent.com/ |
|
Sign in
| https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2FruffeAndroid%2FBlog |
| GitHub CopilotWrite better code with AI | https://github.com/features/copilot |
| GitHub SparkBuild and deploy intelligent apps | https://github.com/features/spark |
| GitHub ModelsManage and compare prompts | https://github.com/features/models |
| MCP RegistryNewIntegrate external tools | https://github.com/mcp |
| ActionsAutomate any workflow | https://github.com/features/actions |
| CodespacesInstant dev environments | https://github.com/features/codespaces |
| IssuesPlan and track work | https://github.com/features/issues |
| Code ReviewManage code changes | https://github.com/features/code-review |
| GitHub Advanced SecurityFind and fix vulnerabilities | https://github.com/security/advanced-security |
| Code securitySecure your code as you build | https://github.com/security/advanced-security/code-security |
| Secret protectionStop leaks before they start | https://github.com/security/advanced-security/secret-protection |
| Why GitHub | https://github.com/why-github |
| Documentation | https://docs.github.com |
| Blog | https://github.blog |
| Changelog | https://github.blog/changelog |
| Marketplace | https://github.com/marketplace |
| View all features | https://github.com/features |
| Enterprises | https://github.com/enterprise |
| Small and medium teams | https://github.com/team |
| Startups | https://github.com/enterprise/startups |
| Nonprofits | https://github.com/solutions/industry/nonprofits |
| App Modernization | https://github.com/solutions/use-case/app-modernization |
| DevSecOps | https://github.com/solutions/use-case/devsecops |
| DevOps | https://github.com/solutions/use-case/devops |
| CI/CD | https://github.com/solutions/use-case/ci-cd |
| View all use cases | https://github.com/solutions/use-case |
| Healthcare | https://github.com/solutions/industry/healthcare |
| Financial services | https://github.com/solutions/industry/financial-services |
| Manufacturing | https://github.com/solutions/industry/manufacturing |
| Government | https://github.com/solutions/industry/government |
| View all industries | https://github.com/solutions/industry |
| View all solutions | https://github.com/solutions |
| AI | https://github.com/resources/articles?topic=ai |
| Software Development | https://github.com/resources/articles?topic=software-development |
| DevOps | https://github.com/resources/articles?topic=devops |
| Security | https://github.com/resources/articles?topic=security |
| View all topics | https://github.com/resources/articles |
| Customer stories | https://github.com/customer-stories |
| Events & webinars | https://github.com/resources/events |
| Ebooks & reports | https://github.com/resources/whitepapers |
| Business insights | https://github.com/solutions/executive-insights |
| GitHub Skills | https://skills.github.com |
| Documentation | https://docs.github.com |
| Customer support | https://support.github.com |
| Community forum | https://github.com/orgs/community/discussions |
| Trust center | https://github.com/trust-center |
| Partners | https://github.com/partners |
| GitHub SponsorsFund open source developers | https://github.com/sponsors |
| Security Lab | https://securitylab.github.com |
| Maintainer Community | https://maintainers.github.com |
| Accelerator | https://github.com/accelerator |
| Archive Program | https://archiveprogram.github.com |
| Topics | https://github.com/topics |
| Trending | https://github.com/trending |
| Collections | https://github.com/collections |
| Enterprise platformAI-powered developer platform | https://github.com/enterprise |
| GitHub Advanced SecurityEnterprise-grade security features | https://github.com/security/advanced-security |
| Copilot for BusinessEnterprise-grade AI features | https://github.com/features/copilot/copilot-business |
| Premium SupportEnterprise-grade 24/7 support | https://github.com/premium-support |
| Pricing | https://github.com/pricing |
| Search syntax tips | https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax |
| documentation | https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax |
|
Sign in
| https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2FruffeAndroid%2FBlog |
|
Sign up
| https://patch-diff.githubusercontent.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=ruffeAndroid%2FBlog |
| Reload | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog |
| Reload | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog |
| Reload | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog |
|
ruffeAndroid
| https://patch-diff.githubusercontent.com/ruffeAndroid |
| Blog | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog |
| yangkun19921001/Blog | https://patch-diff.githubusercontent.com/yangkun19921001/Blog |
|
Notifications
| https://patch-diff.githubusercontent.com/login?return_to=%2FruffeAndroid%2FBlog |
|
Fork
0
| https://patch-diff.githubusercontent.com/login?return_to=%2FruffeAndroid%2FBlog |
|
Star
0
| https://patch-diff.githubusercontent.com/login?return_to=%2FruffeAndroid%2FBlog |
| github.com/yangkun19921001/AVSample | https://github.com/yangkun19921001/AVSample |
|
0
stars
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/stargazers |
|
470
forks
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/forks |
|
Branches
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/branches |
|
Tags
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tags |
|
Activity
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/activity |
|
Star
| https://patch-diff.githubusercontent.com/login?return_to=%2FruffeAndroid%2FBlog |
|
Notifications
| https://patch-diff.githubusercontent.com/login?return_to=%2FruffeAndroid%2FBlog |
|
Code
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog |
|
Pull requests
0
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/pulls |
|
Actions
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/actions |
|
Projects
0
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/projects |
|
Security
0
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/security |
|
Insights
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/pulse |
|
Code
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog |
|
Pull requests
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/pulls |
|
Actions
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/actions |
|
Projects
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/projects |
|
Security
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/security |
|
Insights
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/pulse |
| Branches | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/branches |
| Tags | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tags |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/branches |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tags |
| 112 Commits | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/commits/master/ |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/commits/master/ |
| Android 技术文章 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/Android%20%E6%8A%80%E6%9C%AF%E6%96%87%E7%AB%A0 |
| Android 技术文章 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/Android%20%E6%8A%80%E6%9C%AF%E6%96%87%E7%AB%A0 |
| JAVA | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/JAVA |
| JAVA | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/JAVA |
| Kotlin | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/Kotlin |
| Kotlin | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/Kotlin |
| PDF | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/PDF |
| PDF | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/PDF |
| webrtc | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/webrtc |
| webrtc | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/webrtc |
| xmind | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/xmind |
| xmind | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/xmind |
| 工具使用 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E5%B7%A5%E5%85%B7%E4%BD%BF%E7%94%A8 |
| 工具使用 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E5%B7%A5%E5%85%B7%E4%BD%BF%E7%94%A8 |
| 年度总结 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93 |
| 年度总结 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93 |
| 开源项目/源码编译 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE/%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91 |
| 开源项目/源码编译 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE/%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91 |
| 性能优化 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96 |
| 性能优化 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96 |
| 数据结构与算法 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95 |
| 数据结构与算法 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95 |
| 文章图片引用 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E6%96%87%E7%AB%A0%E5%9B%BE%E7%89%87%E5%BC%95%E7%94%A8 |
| 文章图片引用 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E6%96%87%E7%AB%A0%E5%9B%BE%E7%89%87%E5%BC%95%E7%94%A8 |
| 旅游攻略 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E6%97%85%E6%B8%B8%E6%94%BB%E7%95%A5 |
| 旅游攻略 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E6%97%85%E6%B8%B8%E6%94%BB%E7%95%A5 |
| 源码分析 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90 |
| 源码分析 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90 |
| 移动架构 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E7%A7%BB%E5%8A%A8%E6%9E%B6%E6%9E%84 |
| 移动架构 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E7%A7%BB%E5%8A%A8%E6%9E%B6%E6%9E%84 |
| 笔试面试 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E7%AC%94%E8%AF%95%E9%9D%A2%E8%AF%95 |
| 笔试面试 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E7%AC%94%E8%AF%95%E9%9D%A2%E8%AF%95 |
| 英语 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E8%8B%B1%E8%AF%AD |
| 英语 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E8%8B%B1%E8%AF%AD |
| 设计模式 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F |
| 设计模式 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F |
| 跨平台/Flutter | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E8%B7%A8%E5%B9%B3%E5%8F%B0/Flutter |
| 跨平台/Flutter | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E8%B7%A8%E5%B9%B3%E5%8F%B0/Flutter |
| 音视频 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E9%9F%B3%E8%A7%86%E9%A2%91 |
| 音视频 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E9%9F%B3%E8%A7%86%E9%A2%91 |
| 高级UI | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E9%AB%98%E7%BA%A7UI |
| 高级UI | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E9%AB%98%E7%BA%A7UI |
| 鸡汤 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E9%B8%A1%E6%B1%A4 |
| 鸡汤 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/tree/master/%E9%B8%A1%E6%B1%A4 |
| .DS_Store | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/blob/master/.DS_Store |
| .DS_Store | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/blob/master/.DS_Store |
| .gitattributes | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/blob/master/.gitattributes |
| .gitattributes | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/blob/master/.gitattributes |
| README.md | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/blob/master/README.md |
| README.md | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/blob/master/README.md |
| about.md | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/blob/master/about.md |
| about.md | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/blob/master/about.md |
| template.md | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/blob/master/template.md |
| template.md | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/blob/master/template.md |
| README | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog |
|
| https://github.com/yangkun19921001/Blog |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/blob/master/XXX |
| Blog | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#blog |
| 面试 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#%E9%9D%A2%E8%AF%95 |
| Flutter 系列 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#flutter-%E7%B3%BB%E5%88%97 |
| 数据结构和算法系列 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E5%92%8C%E7%AE%97%E6%B3%95%E7%B3%BB%E5%88%97 |
| Java 源码分析 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#java-%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90 |
| Android 源码分析 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#android-%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90 |
| 第三方流行框架源码分析 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#%E7%AC%AC%E4%B8%89%E6%96%B9%E6%B5%81%E8%A1%8C%E6%A1%86%E6%9E%B6%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90 |
| 移动架构师系列 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#%E7%A7%BB%E5%8A%A8%E6%9E%B6%E6%9E%84%E5%B8%88%E7%B3%BB%E5%88%97 |
| 设计模式 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F |
| 高级 UI 系列 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#%E9%AB%98%E7%BA%A7-ui-%E7%B3%BB%E5%88%97 |
| 音视频 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#%E9%9F%B3%E8%A7%86%E9%A2%91 |
| 开源项目 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE |
| 英语 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#%E8%8B%B1%E8%AF%AD |
| 关于我 | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#%E5%85%B3%E4%BA%8E%E6%88%91 |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#blog |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#面试 |
| Android 高级工程师面试宝典 | https://github.com/yangkun19921001/Blog/blob/master/%E7%AC%94%E8%AF%95%E9%9D%A2%E8%AF%95/Android%E9%AB%98%E7%BA%A7%E5%B7%A5%E7%A8%8B%E5%B8%88%E9%9D%A2%E8%AF%95%E5%BF%85%E5%A4%87/README.md |
| 1307 页字节跳动 Android 面试全套真题解析在互联网火了 ,完整版开放下载 | https://mp.weixin.qq.com/s/Crty_REXRVMEhI20XAeLGw |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#flutter-系列 |
| Google 为什么以 Flutter 作为原生突破口 | https://juejin.im/post/5c91f0f25188256b7463868e |
| Flutter (一) Dart 语言基础详解(变量、内置类型、函数、操作符、流程控制语句) | https://juejin.im/post/5c91ed15518825573578c31f |
| Flutter (二) Dart 语言基础详解 (异常,类,Mixin, 泛型,库) | https://juejin.im/post/5c939b275188252d863cc797 |
| Flutter (三) Dart 语言基础详解 (异步,生成器,隔离,元数据,注释) | https://juejin.im/post/5c962b356fb9a0710e47e361 |
| Flutter (四) 基础 Widgets、Material Components Widget 全面介绍 | https://juejin.im/post/5cbedc816fb9a03202221a37 |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#数据结构和算法系列 |
| 从零开始学数据结构和算法(一)冒泡与选择排序 | https://juejin.im/post/5c9442cb5188252da9013153 |
| 从零开始学数据结构和算法(二)线性表的链式存储结构 | https://juejin.im/post/5c9449dd5188252da22508e3 |
| 从零开始学数据结构和算法(三)栈与栈的应用 | https://juejin.im/post/5c9453965188252db02e4be6 |
| 从零开始学数据结构和算法(四)哈希表的思想和二叉树入门 | https://juejin.im/post/5c9456f25188252d971438a9 |
| 从零开始学数据结构和算法(五) 分治法 (二分查找、快速排序、归并排序) | https://juejin.im/post/5c945c245188252d863cc969 |
| 从零开始学数据结构和算法(六)二叉排序树 | https://juejin.im/post/5c9460e25188252d971438c4 |
| 从零开始学数据结构和算法(七) huffman 树与 AVL 树 | https://juejin.im/post/5c9464515188252d7e34df85 |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#java-源码分析 |
| 源码分析 (一) ArrayList JDK 1.8 源码分析 | https://juejin.im/post/5c94695c5188252daa18f487 |
| 源码分析 (二) LinkedList JDK 1.8 源码分析 | https://juejin.im/post/5c946b555188252d7941fef2 |
| 源码分析 (三) Stack 源码分析 | https://juejin.im/post/5c946d525188252d5f0fd9ee |
| 面试官: 我必问的容器知识点! | https://juejin.im/post/5e88afce518825085d6ced2e |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#android-源码分析 |
| 从 setContentView 入口,全方位分析 LayoutInflater | https://juejin.im/post/5d6a7f2be51d4561e43a6ce8 |
| 分析广播 的 registerReceiver、sendBroadcast、 onReceive 系统到底做了什么? | https://juejin.im/post/5d752aad518825346e5f2b31 |
| Android 8.0 源码分析 (一) SystemServer 进程启动 | https://juejin.im/post/5db3f95ee51d4529e83947f9 |
| Android 8.0 源码分析 (二) Launcher 启动 | https://juejin.im/post/5db5565cf265da4d0f14053c |
| Android 8.0 源码分析 (三) 应用程序进程创建到应用程序启动的过程 | https://juejin.im/post/5db599bc6fb9a0203b234b08 |
| Android 8.0 源码分析 (四) Activity 启动 | https://juejin.im/post/5db85da4e51d4529f73e27fb |
| Android 8.0 源码分析 (五) Service 启动 | https://juejin.im/post/5dbb0507f265da4cf406f735 |
| Android 8.0 源码分析 (六) BroadcastReceiver 启动 | https://juejin.im/post/5dbd5144e51d456eec1830af |
| Android 8.0 源码分析 (七) ContentProvider 启动 | https://juejin.im/post/5dbe8e6ce51d456f0006634a |
| Android 8.0 源码分析 (八) ActivityManagerService | https://juejin.im/post/5dc4339c5188254e7a15585c |
| Android 8.0 源码分析 (九) WindowManager | https://juejin.im/post/5dc7d729f265da4cf85d7feb |
| Android 8.0 源码分析 (十) WindowManagerService 的窗口管理 | https://juejin.im/post/5dcab476f265da4d0a68e3ab |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#第三方流行框架源码分析 |
| Android 图片加载框架 Glide 4.9.0 (一) 从源码的角度分析 Glide 执行流程 | https://juejin.im/post/5d89e9c051882509662c5620 |
| Android 图片加载框架 Glide 4.9.0 (二) 从源码的角度分析 Glide 缓存策略 | https://juejin.im/post/5d8c83836fb9a04dec52f19d |
| 从源码的角度分析 Rxjava2 的基本执行流程、线程切换原理 | https://juejin.im/post/5d9b489251882560e87e620e |
| 从源码的角度分析 OKHttp3 (一) 同步、异步执行流程 | https://juejin.im/post/5d9ef57c51882514316fe33a |
| 从源码的角度分析 OKHttp3 (二) 拦截器的魅力 | https://juejin.im/post/5da306965188252ba420a15d |
| 从源码的角度分析 OKHttp3 (三) 缓存策略 | https://juejin.im/post/5da5dcd551882544432558f8 |
| 从源码的角度分析 Retrofit 网络请求,包含 RxJava + Retrofit + OKhttp 请求讲解 | https://juejin.im/post/5da802d051882508866e9463 |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#性能优化系列 |
| 性能优化(一)APP 启动优化(不敢说秒开,但是最终优化完真不到 1s) | https://juejin.im/post/5cc19374e51d456e781f2036 |
| 性能优化(二) UI 绘制优化 | https://juejin.im/post/5cc2dfc7e51d456e845b4260 |
| 性能优化(三)看完这篇文章,至少解决 APP 中 90 % 的内存异常问题 | https://juejin.im/post/5cd82a3ee51d456e781f20ce |
| 性能优化(四) ubuntu 完美编译 libjpeg 图像压缩库,媲美微信图片压缩算法 | https://juejin.im/post/5ce15d0ce51d45106e5e6dac |
| 性能优化 (五) 长图优化,仿微博加载长图方式 | https://juejin.im/post/5ce96da06fb9a07ee4633f50 |
| 性能优化 (六) 老板问你咱们 APP 耗电量,看完这篇文章不仅能知道还能做出对应优化。 | https://juejin.im/post/5ce9088f6fb9a07ee4633ef3 |
| 性能优化 (七) APK 加固之 Dex 加解密,反编译都看不到项目主要代码。 | https://juejin.im/post/5cf3ee295188256aa76bb1e1 |
| 性能优化 (八) APK 加固之动态替换 Application | https://juejin.im/post/5cf69d30f265da1b897abd53 |
| 性能优化 (九) APP 稳定性之热修复原理探索 | https://juejin.im/post/5cfce989f265da1b6c5f6991 |
| 性能优化 (十) APP 持续运行之进程保活实现 | https://juejin.im/post/5cffe4d4f265da1b695d55d4 |
| 性能优化 (十一) ProGuard 对代码和资源压缩 | https://juejin.im/post/5d05dab06fb9a07ea9446e21 |
| 性能优化 (十二) APK 极限压缩(资源越多,效果越显著) | https://juejin.im/post/5d0627f7f265da1bd4247e76 |
| 性能优化 (十三) 有了 breakpad , native 崩溃再也不怕了 | https://juejin.im/post/5d811f82518825446d0d15e1 |
| 面试官: 说一下你做过哪些性能优化? | https://juejin.im/post/5e7f12ba518825736d2780a0 |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#移动架构师系列 |
| 移动架构 (一) 架构第一步,学会画各种 UML 图。 | https://juejin.im/post/5d2e048cf265da1b9163c7c8 |
| 移动架构 (二) Android 中 Handler 架构分析,并实现自己简易版本 Handler 框架 | https://juejin.im/post/5d30b4a8f265da1b855c8f45 |
| 移动架构 (三) AMS 源码分析 | https://juejin.im/post/5d3463b4e51d45109725ff47 |
| 移动架构 (四) EventBus 3.1.1 源码分析及实现自己的轻量级 EventBus 框架,根据 TAG 发送接收事件。 | https://juejin.im/post/5d3c5b965188252c9c52beba |
| 移动架构 (五) 仅仅对 Java Bean 的操作,就能完成对数据持久化。 | https://juejin.im/post/5d49a6c9518825056564a074 |
| 移动架构 (六) 轻量级进程间通信框架设计 | https://juejin.im/post/5d4fe70d518825168d37a740 |
| 移动架构 (七) 人人都能看得懂的组件化框架模型 | https://juejin.im/post/5d5bcb85f265da03e369839d |
| 移动架构 (八) 人人都能看得懂的动态化加载插件技术模型实现 | https://juejin.im/post/5d6246d36fb9a06b0f23ed6e |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#设计模式 |
| 通过代码示例来学习面向对象六大原则 | https://juejin.im/post/5d669bfc6fb9a06b1b19d25e |
| 设计模式 (一) 通过理论 + 代码示例 + Android 源码中单例模式来学习单例 | https://juejin.im/post/5d6a8121e51d4561e6237193 |
| 设计模式 ( 二 ) 结合代码示例 + Android 源码中 Builder 来学习建造者模式 | https://juejin.im/post/5d6bcd0ee51d4561d41d2e36 |
| 设计模式 ( 三 ) 原型模式 | https://juejin.im/post/5d6e7eaa5188250d9432b463 |
| 设计模式 ( 四 ) 工厂方法模式 | https://juejin.im/post/5d7125d5f265da03d7283ce9 |
| 设计模式 (五) 抽象工厂模式 | https://juejin.im/post/5d71278ef265da03d063c265 |
| 设计模式 (六) 策略模式 | https://juejin.im/post/5d7273abf265da03b31bf1ec |
| 设计模式 (七) 状态模式 | https://juejin.im/post/5d738f40e51d4561c41fb8a6 |
| 设计模式 (八) 责任链模式 | https://juejin.im/post/5d749589f265da03d871e36e |
| 设计模式 (九) 观察者模式 | https://juejin.im/post/5d7501f36fb9a06ac93cf457 |
| 设计模式 ( 十 ) 备忘录模式 | https://juejin.im/post/5d77ab1de51d4561c83e7cd9 |
| 设计模式 (十一) 迭代器模式 | https://juejin.im/post/5d791e176fb9a06ae61ae3cc |
| 设计模式 (十二) 模板方法模式 | https://juejin.im/post/5d7a759fe51d4561c02a25db |
| 设计模式 (十三) 访问者模式 | https://juejin.im/post/5d7b24b1e51d4561d41d2e96 |
| 设计模式 (十四) 中介者模式 | https://juejin.im/post/5d7b63b3e51d4561ea1a94ed |
| 设计模式 (十五) 代理模式 | https://juejin.im/post/5d7c6bc7f265da03f3338254 |
| 设计模式 (十六) 组合模式 | https://juejin.im/post/5d7cbda7f265da03d2116f64 |
| 设计模式 (十七) 适配器、装饰、享元模式 | https://juejin.im/post/5d7dfff751882539aa5ad79c |
| 设计模式 (十八) 外观、桥接模式 | https://juejin.im/post/5d7e01f4f265da03b5747aac |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#高级-ui-系列 |
| 高级 UI 成长之路 (一) View 的基础知识你必须知道 | https://juejin.im/post/5dcff9d3f265da0bd20af0da |
| 高级 UI 成长之路 (二) 深入理解 Android 8.0 View 触摸事件分发机制 | https://juejin.im/post/5dd7a4796fb9a07a8f412d17 |
| 高级 UI 成长之路 (三) 理解 View 工作原理并带你入自定义 View 门 | https://juejin.im/post/5ddff234518825793218d2e4 |
| 高级 UI 成长之路 (四) Paint 渲染/滤镜/xfermode 使用 | https://juejin.im/post/5de36c43f265da05de5881e8 |
| 高级 UI 成长之路 (五) 看完该篇文章 Canvas 你应该会了 | https://juejin.im/post/5de514fcf265da060115e02d |
| 高级 UI 成长之路 (六) PathMeasure 制作路径动画 | https://juejin.im/post/5de789dce51d4557e76a4a39 |
| 高级 UI 成长之路 (七) SVG 基础使用 + 绘制中国地图 | https://juejin.im/post/5deb6d41e51d4558052f16ac |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#音视频 |
| 音视频之进程间传递 YUV 格式视频流,解决不能同时调用 Camera 问题 | https://juejin.im/post/5cf345ddf265da1b8c19731a |
| 音视频学习 (一) C 语言入门 | https://juejin.im/post/5df8c917f265da339772a5d1 |
| 音视频学习 (二) C++ 语言入门 | https://juejin.im/post/5e1347775188253a6c3966fd |
| 音视频学习 (三) JNI 从入门到掌握 | https://juejin.im/post/5e1606e0f265da5d2d0ffbdb |
| 音视频学习 (四) 交叉编译动态库、静态库的入门学习 | https://juejin.im/post/5e1ad6806fb9a02ff076e103 |
| 音视频学习 (五) Shell 脚本入门 | https://juejin.im/post/5e1c0a4ce51d451c8771c487 |
| 音视频学习 (六) FFmpeg 4.2.2 交叉编译 | https://juejin.im/post/5e1eace16fb9a02fec66474e |
| 音视频学习 (七) 掌握音频基础知识并使用 AudioTrack、OpenSL ES 渲染 PCM 数据 | https://juejin.im/post/5e3fcc5bf265da57685db2a9 |
| 音视频学习 (八) 掌握视频基础知识并使用 OpenGL ES 2.0 渲染 YUV 数据 | https://juejin.im/post/5e4581476fb9a07cd80f15e0 |
| 音视频学习 (九) 从 0 ~ 1 开发一款 Android 端播放器(支持多协议网络拉流/本地文件) | https://juejin.im/post/5e495ec1e51d452713551017 |
| 音视频学习 (十) 基于 Nginx 搭建(rtmp、http)直播服务器 | https://juejin.im/post/5e4ec66c5188254967067502 |
| 音视频学习 (十一) Android 端实现 rtmp 推流 | https://juejin.im/post/5e5d17276fb9a07cc01a29d3 |
| 音视频学习 (十二) 基于 FFmpeg + OpenSLES 实现音频万能播放器 | https://juejin.im/post/5eb1880be51d454de7772152 |
| WebRTC 学习记录 (一) 云服务器搭建 AppRTC 环境 | https://juejin.im/post/5e8f4a606fb9a03c7a331bd3 |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#开源项目 |
| 热修复 DexEncryptionDecryption | https://github.com/yangkun19921001/DexEncryptionDecryption |
| 图片压缩 LIBJPEG_SAMPLE | https://github.com/yangkun19921001/LIBJPEG_SAMPLE |
| 进程保活 KeepAlive | https://github.com/yangkun19921001/KeepAlive |
| Java/Native 异常捕获 YKCrash | https://github.com/yangkun19921001/YKCrash |
| 插件化 YKPluginAPK | https://github.com/yangkun19921001/YKPluginAPK |
| YUV 播放 YUVPlay | https://github.com/yangkun19921001/YUVPlay |
| 防微博长图加载 long_picture_view | https://github.com/yangkun19921001/long_picture_view |
| 进程间通信 YKProBus | https://github.com/yangkun19921001/YKProBus |
| EventBus YEventBus | https://github.com/yangkun19921001/YEventBus |
| 进程间大数据传输 MemoryFileWriteBytesYUV | https://github.com/yangkun19921001/MemoryFileWriteBytesYUV |
| Kotlin GitHub App | https://juejin.im/post/5dc294d5f265da4d4434afc9 |
| Android rtmp推流、拉流 | https://github.com/yangkun19921001/NDK_AV_SAMPLE/tree/master/ykav_common/src/main/cpp |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#英语 |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#关于我 |
| 个人博客 | https://www.devyk.top/ |
| 掘金 | https://juejin.im/user/578259398ac2470061f3a3fb |
| GitHub | https://github.com/yangkun19921001 |
| https://camo.githubusercontent.com/cc4f979a3ad78f32f75e1bdcf9153c8f70d5c08885dffda41864572545d7a780/68747470733a2f2f646576796b2e6f73732d636e2d71696e6764616f2e616c6979756e63732e636f6d2f626c6f672f32303230303332383233353032302e6a7067 |
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#赞赏 |
| https://camo.githubusercontent.com/46f1814767cc212f7feb79af4a3a9e54b6d3ac85bcf17df50b80fdcc2dc7dd59/68747470733a2f2f646576796b2e6f73732d636e2d71696e6764616f2e616c6979756e63732e636f6d2f626c6f672f32303230303333303130333232392e706e67 |
| github.com/yangkun19921001/AVSample | https://github.com/yangkun19921001/AVSample |
|
Readme
| https://patch-diff.githubusercontent.com/ruffeAndroid/Blog#readme-ov-file |
| Please reload this page | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog |
|
Activity | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/activity |
|
Custom properties | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/custom-properties |
|
0
stars | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/stargazers |
|
0
watching | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/watchers |
|
0
forks | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/forks |
|
Report repository
| https://patch-diff.githubusercontent.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2FruffeAndroid%2FBlog&report=ruffeAndroid+%28user%29 |
| Releases | https://patch-diff.githubusercontent.com/ruffeAndroid/Blog/releases |
| Packages
0 | https://patch-diff.githubusercontent.com/orgs/ruffeAndroid/packages?repo_name=Blog |
|
| https://github.com |
| Terms | https://docs.github.com/site-policy/github-terms/github-terms-of-service |
| Privacy | https://docs.github.com/site-policy/privacy-policies/github-privacy-statement |
| Security | https://github.com/security |
| Status | https://www.githubstatus.com/ |
| Community | https://github.community/ |
| Docs | https://docs.github.com/ |
| Contact | https://support.github.com?tags=dotcom-footer |