现代 Android 开发资源汇总

350023684 7年前
   <p style="text-align:center"><img src="https://simg.open-open.com/show/d745cb96138ab56c3e3c742489a4443d.png"></p>    <p>以下资源多数为英文,可能需要KX上网。</p>    <p>现在随着网上的资源越来越多,大家可能经常也会觉得混乱和迷茫。这里是一份可能简单但对我个人很有价值的列表,希望对你也能有帮助。</p>    <h2>编程实践</h2>    <ul>     <li><a href="/misc/goto?guid=4958964328408675079">Source Control (Git) </a> - 作为一名开发者,应当学会熟练使用 Git。</li>     <li><a href="/misc/goto?guid=4959635407162716738">Git Workflows </a> - 在使用版本控制工具时有很多不同的管理方法。主流的有:Gitflow workflow, Centralized workflow, Forking workflow。</li>     <li><a href="/misc/goto?guid=4959749957515720571" rel="nofollow,noindex">Continuous Integration </a> (持续集成)- 持续集成是一种软件开发实践,通过自动化的构建流程能帮助开发人员尽快发现问题,提升项目质量。常用的持续集成服务有: <a href="/misc/goto?guid=4958989363547439185"> Jenkins </a> , <a href="/misc/goto?guid=4959746562019355863"> Buddybuild </a> , <a href="/misc/goto?guid=4958860110377579589" rel="nofollow,noindex"> CircleCI </a> , <a href="/misc/goto?guid=4958533335774215227"> Travis CI </a> 等等。</li>     <li><a href="/misc/goto?guid=4959751621911767793">Pull Requests </a> - Pull requests 是一种非常好的开发方法,可以及时获得关于自己所开发代码非常详细的反馈。</li>     <li><a href="/misc/goto?guid=4959751622005150157">Agile/Scrum methodologies </a> - Scrum 是一种敏捷开发的方法学,有很多现代软件开发团队都在遵循 Scrum 工作方式。</li>     <li>代码质量工具 - 很多公司都在通过代码质量工具来衡量其代码质量。常用的工具有: <a href="/misc/goto?guid=4959751622087615931"> Sonar </a> , <a href="/misc/goto?guid=4958340513737100260" rel="nofollow,noindex"> FindBugs </a> , <a href="/misc/goto?guid=4958968112081293577" rel="nofollow,noindex"> Checkstyle </a> 和 <a href="/misc/goto?guid=4959716590947499283" rel="nofollow,noindex"> Android Lint </a> 。</li>    </ul>    <h2>Android 基础</h2>    <p>虽然现在有很多的网站都提供 Android 开发基础的教学,但如果有能力,还是推荐去 Android 的官网看看。</p>    <ul>     <li><a href="/misc/goto?guid=4959751622255615919" rel="nofollow,noindex">应用基础知识 </a></li>     <li><a href="/misc/goto?guid=4959751622342197317" rel="nofollow,noindex">应用清单 </a></li>     <li><a href="/misc/goto?guid=4959751622420258105" rel="nofollow,noindex">Code lab — Build your first Android App </a></li>    </ul>    <h2>布局</h2>    <p>Android 中有很多不同的布局方式: <a href="/misc/goto?guid=4959751622515633415" rel="nofollow,noindex"> FrameLayout </a> , <a href="/misc/goto?guid=4959628483155717441" rel="nofollow,noindex"> RelativeLayout </a> , <a href="/misc/goto?guid=4959751622622733849" rel="nofollow,noindex"> LinearLayout </a> , <a href="/misc/goto?guid=4959742249874880803" rel="nofollow,noindex"> ConstraintLayout </a> , <a href="/misc/goto?guid=4959639395981401833" rel="nofollow,noindex"> CoordinatorLayout </a> ,确保自己至少能熟练使用这些布局。</p>    <ul>     <li><a href="/misc/goto?guid=4959751622767447023" rel="nofollow,noindex">支持不同屏幕尺寸 </a></li>     <li><a href="/misc/goto?guid=4959673985840883185" rel="nofollow,noindex">Code lab — ConstraintLayout </a></li>     <li><a href="/misc/goto?guid=4959751622882381585" rel="nofollow,noindex">Code lab — CoordinatorLayout </a></li>    </ul>    <h2>构建系统 - Gradle</h2>    <p>了解 Gradle 可能是被一些 Android 开发者所忽视的东西。但了解 Gradle 的基础知识能帮助你更好的编写自己的 gradle 任务。</p>    <ul>     <li><a href="/misc/goto?guid=4958877428956388899" rel="nofollow,noindex">Gradle Documentation </a></li>     <li><a href="/misc/goto?guid=4959751622998400916" rel="nofollow,noindex">配置构建 </a></li>    </ul>    <h2>网络</h2>    <ul>     <li><a href="/misc/goto?guid=4959751623086415955" rel="nofollow,noindex">Understanding RESTful Services </a> - 目前约 69% 的 API 都是 RESTful API,其也是目前最主流的 Web 服务实现方案,你对其应当有基本的了解。</li>     <li><a href="/misc/goto?guid=4958837204152834453" rel="nofollow,noindex">Retrofit </a> — 适用于 Android 和 Java 的 HTTP 客户端。</li>     <li><a href="/misc/goto?guid=4958860115824511695" rel="nofollow,noindex">OkHttp </a> — 同时适用于 Android 和 Java 的 HTTP / HTTP2 客户端。</li>     <li><a href="/misc/goto?guid=4959751623228258584" rel="nofollow,noindex">Network Profiler in Android </a> — Android Studio 中的网络请求监听工具。</li>     <li><a href="/misc/goto?guid=4959670499770327792" rel="nofollow,noindex">Charles Proxy </a> — 非常好用的 HTTP 代理、监视器和反向代理工具。支持 Mac, Windows 和 Linux。</li>    </ul>    <h2>构建 Android 应用</h2>    <p>仅仅知道如何编写 Android 代码还远远不够。优秀的 Android 应用程序需要遵循良好的架构设计才能使其易于测试和维护。常用的架构模式有 MVP, MVVM 和 Clean Architecture。了解这些模式之间的差异和各自的特点还是很有必要的。</p>    <ul>     <li><a href="/misc/goto?guid=4959749169673805620" rel="nofollow,noindex">Android Architecture Components Guide </a></li>     <li>Android Architecture Components (part <a href="/misc/goto?guid=4959749168685774796" rel="nofollow,noindex"> 1 </a> , <a href="/misc/goto?guid=4959749692790879687" rel="nofollow,noindex"> 2 </a> , <a href="/misc/goto?guid=4959750775556499387" rel="nofollow,noindex"> 3 </a> )</li>     <li><a href="/misc/goto?guid=4959751623456169474" rel="nofollow,noindex">Introduction to Android Architecture Components Video </a></li>     <li><a href="/misc/goto?guid=4959748930329075317" rel="nofollow,noindex">Google Sample App Github Repository </a></li>     <li><a href="/misc/goto?guid=4959751623570264318" rel="nofollow,noindex">Code lab — Persistence </a></li>     <li><a href="/misc/goto?guid=4959751623653629116" rel="nofollow,noindex">Code lab — Lifecycle Aware Components </a></li>    </ul>    <h2>测试</h2>    <p>测试也是开发的一个重要部分,其中单元测试和 UI 测试是你必须理解掌握的部分。</p>    <ul>     <li><a href="/misc/goto?guid=4959751623743858107" rel="nofollow,noindex">测试支持库 </a></li>     <li><a href="/misc/goto?guid=4959751623825936534" rel="nofollow,noindex">Espresso </a></li>     <li><a href="/misc/goto?guid=4959670563914923239" rel="nofollow,noindex">JUnit </a></li>     <li><a href="/misc/goto?guid=4959665207585839466" rel="nofollow,noindex">Mockito </a></li>     <li><a href="/misc/goto?guid=4959751623971492456" rel="nofollow,noindex">Code lab — Android Testing </a></li>     <li><a href="/misc/goto?guid=4959751624055491084" rel="nofollow,noindex">Code lab — Android Performance Testing </a></li>    </ul>    <h2>发布</h2>    <ul>     <li><a href="/misc/goto?guid=4959751624135334128" rel="nofollow,noindex">准备发布 </a></li>     <li><a href="/misc/goto?guid=4959676349873937538" rel="nofollow,noindex">签署您的应用 </a></li>     <li><a href="/misc/goto?guid=4959751624246783600" rel="nofollow,noindex">对您的应用进行版本控制 </a></li>     <li><a href="/misc/goto?guid=4959721357009656615" rel="nofollow,noindex">压缩代码和资源 </a></li>    </ul>    <h2>安全性</h2>    <p>保护自己的应用,确保其他人无法访问未经授权的内容,你需要做很多事情。至少使用 ProGuard,理解什么是 <a href="/misc/goto?guid=4959751624356637460" rel="nofollow,noindex"> 中间人攻击 </a> ,了解不同的加密方式,在应用中安全的存储信息,保护你的 API Token,证书什么的。</p>    <ul>     <li><a href="/misc/goto?guid=4959730305118827421" rel="nofollow,noindex">安全要点 </a></li>     <li><a href="/misc/goto?guid=4959751624466953913" rel="nofollow,noindex">Certificate Pinning </a></li>     <li><a href="/misc/goto?guid=4959751624557020943" rel="nofollow,noindex">SafetyNet API </a></li>     <li><a href="/misc/goto?guid=4959751624634609440" rel="nofollow,noindex">Android 密钥库系统 </a></li>    </ul>    <h2>Android 高级主题</h2>    <p>如果上面的基础知识你都已经了解了,那么就可以进一步了解下下面的进阶内容:</p>    <ul>     <li><a href="/misc/goto?guid=4958971138106631436" rel="nofollow,noindex">Kotlin </a> - 推荐阅读 <a href="/misc/goto?guid=4958985986707315849" rel="nofollow,noindex"> Kotlin Koans </a> 和 code lab 的 <a href="/misc/goto?guid=4959751624779394470" rel="nofollow,noindex"> Build Your First Android App in Kotlin </a> 。</li>     <li><a href="/misc/goto?guid=4958865750209621132" rel="nofollow,noindex">RxJava </a> - 推荐看著名的 <a href="/misc/goto?guid=4958532891412312811" rel="nofollow,noindex"> Jake Wharton </a> 关于 RxJava 的 <a href="/misc/goto?guid=4959751624921817271" rel="nofollow,noindex"> 演讲视频 </a> (在 油Tube 上)。</li>     <li><a href="/misc/goto?guid=4959664628774757528" rel="nofollow,noindex">Dagger </a> - 最流行的 Android 依赖注入框架。</li>     <li><a href="/misc/goto?guid=4959741118713128865" rel="nofollow,noindex">Material Design </a> - Google 官方推荐的 Android 应用设计指南。</li>     <li><a href="/misc/goto?guid=4959751625060174413" rel="nofollow,noindex">Android 支持库 </a></li>     <li>Memory Leaks - 在 Android 开发中,内存泄漏还是会经常遇到的。很多开发者都习惯用 <a href="/misc/goto?guid=4958874766191309432" rel="nofollow,noindex"> LeakCanary </a> 来监控内存泄漏。也可以看看这篇 <a href="/misc/goto?guid=4959751625178066310" rel="nofollow,noindex"> 文章 </a> 。</li>    </ul>    <h2>时刻关注最新的 Android 开发动态</h2>    <ul>     <li>订阅 <a href="/misc/goto?guid=4958822866262869795" rel="nofollow,noindex"> Android Weekly </a> 。</li>     <li>关注 Reddit 上的 <a href="/misc/goto?guid=4959717718638763070" rel="nofollow,noindex"> /r/androiddev </a> 频道。</li>     <li>在 推ter 上关注 <a href="/misc/goto?guid=4959008881263441786" rel="nofollow,noindex"> Android Google Developer Experts </a> , <a href="/misc/goto?guid=4959751625343673939" rel="nofollow,noindex"> Android Studio </a> 和 <a href="/misc/goto?guid=4959751625435493999" rel="nofollow,noindex"> Android Dev </a> 。</li>     <li>有能力的还可以收听 Android 开发相关的知名播客: <a href="/misc/goto?guid=4958973724258090573" rel="nofollow,noindex"> Fragmented </a> , <a href="/misc/goto?guid=4959751625543406786" rel="nofollow,noindex"> Android Developers Backstage </a> , <a href="/misc/goto?guid=4959751625629117740" rel="nofollow,noindex"> The Context </a> , <a href="/misc/goto?guid=4959751625709210012" rel="nofollow,noindex"> Android Snacks </a> 。</li>    </ul>    <p>日报扩展阅读:</p>    <ul>     <li><a href="/misc/goto?guid=4959751625789851010" rel="nofollow,noindex">Google 官方推出应用开发架构指南</a></li>    </ul>    <p> </p>    <p>来自:https://zhuanlan.zhihu.com/p/28712132</p>    <p> </p>