Android开发技术周报 Issue#91

shipp 3年前
   <h3>新闻</h3>    <ol>     <li><a href="/misc/goto?guid=4959675827088782845" rel="nofollow,noindex">Android Nougat有望本月到来:支持手动曝光调节</a></li>    </ol>    <h3>教程</h3>    <ol>     <li> <p><a href="/misc/goto?guid=4959675827169888770" rel="nofollow,noindex">一步一步实现Android的MVP框架</a></p> <p>由于原生 Android 开发应该已经是一个基础的 MVC 框架,所以在初始开发的时候并没有遇到太多框架上的问题,可是一旦项目规模到了一定的程度,就需要对整个项目的代码结构做一个总体上的规划,最终的目的是使代码可读,维护性好,方便测试。</p> </li>     <li> <p><a href="/misc/goto?guid=4959675827253610338" rel="nofollow,noindex">Android—项目重构相关</a></p> <p>最近跟一个朋友聊到关于App架构的问题, 其中就聊到一个App, 开发了很长时间, 一开始没有去想框架的事儿, 迭代过程中, 由于时间紧, 任务重, 人员更替等原因, 也没能保证代码质量, 很多设计原则被抛之脑后, 代码质量逐步下降, 以致难于阅读, 难于维护. 进而导致迭代困难, 而形成恶性循环</p> </li>     <li> <p><a href="/misc/goto?guid=4959675827330487088" rel="nofollow,noindex">从零开始的Android新项目9 - 前端用后台接口设计</a></p> <p>这回来讲讲后台接口的设计。可能有同学会觉得后台的接口和我们大前端开发有什么关系?试想一下,在碰到一些不合理的接口设计的时候,你们开发是否觉得很别扭——需要为了坑爹的接口写很多脏代码引坑?甚至,这么开发出来的页面,体验也会很差?</p> </li>     <li> <p><a href="/misc/goto?guid=4959675827418442771" rel="nofollow,noindex">谷歌教您使用动态链接的正确姿势</a></p> <p>我们都很熟悉网址可将用户转到网站上的特定位置这一构思。随着向移动计算推进,可以将用户转到特定移动应用中特定位置的网址更加常见。我们大多数人都知道深层链接这个概念。深层链接到应用这一构思非常吸引人,并且很容易理解。只需一个网址,您不仅可以直接将用户发送到您的应用,还可以将用户发送到应用中的精确位置。</p> </li>     <li> <p><a href="/misc/goto?guid=4959675827492112480" rel="nofollow,noindex">用了超级补丁包技术,再也不用担心上线后不能修Bug了</a></p> <p>怎样让 App 发布更快更灵活,以及上线后更快地修复各种 Crash 和紧急 Bug,让用户免去下载安装的操作,在最短的时间内升级用户手中的 App,是 Android 开发哥面临的一个重要的技术课题。业界也有 Dexposed、AndFix 等补丁技术,取得了一定的效果。</p> </li>     <li> <p><a href="/misc/goto?guid=4959675827577617930" rel="nofollow,noindex">Dialog、Toast、Snackbar,你真的了解它们吗?</a></p> <p>Dialog和Toast所有人肯定都不会陌生的,这个我们平时用的实在是太多了。而Snackbar是Design Support库中提供的新控件,有些朋友可能已经用过了,有些朋友可能还没去了解。但是你真的知道什么时候应该使用Dialog,什么时候应该使用Toast,什么时候应该使用Snackbar吗?本篇文章中我们就来学习一下这三者使用的时机,另外还会介绍一些额外的技巧。</p> </li>     <li> <p><a href="/misc/goto?guid=4959675827661998133" rel="nofollow,noindex">面向NDK开发者的Android变更</a></p> <p>受 Android 平台其他改进的影响,为了方便加载本机代码,Android M 和 N 中的动态链接器对编写整洁且跨平台兼容的本机代码提出了更严格的要求。为了确保平滑过渡到近期发布的 Android 版本,应用的本机代码必须遵循这些规则和建议。我们在下面详细说明了与加载本机代码有关的每一项变更及其影响,以及您可以采取哪些措施来避免出现问题。</p> </li>     <li> <p><a href="/misc/goto?guid=4959675827745310973" rel="nofollow,noindex">Data Binding Component详解 - 换肤什么的只是它的一个小应用!</a></p> <p>上一篇 <a href="/misc/goto?guid=4959675827822177865" rel="nofollow,noindex">从零开始的Android新项目8 - Data Binding高级篇</a> 中,我们提到了使用Component来进行注入,以方便进行测试的功能,有一些朋友说写的不够清楚,还有些疑惑,所以本篇就来详细说说Component。作为例子,我们的实现目标是使用Data Binding Component,让应用全局的TextView的文本都能随时变成test,还能进行全局换肤。</p> </li>    </ol>    <h3>开源库&项目</h3>    <ol>     <li> <p><a href="/misc/goto?guid=4959675827907179152" rel="nofollow,noindex">nougat-boot-animation</a></p> <p>Android 7.0 开机动画</p> </li>     <li> <p><a href="/misc/goto?guid=4959675827988121100" rel="nofollow,noindex">Luban</a></p> <p>Luban(鲁班)——可能是最接近微信朋友圈的图片压缩算法</p> </li>     <li> <p><a href="/misc/goto?guid=4959675828061290663" rel="nofollow,noindex">crystal-preloaders</a></p> <p>A stylish android preloaders</p> </li>     <li> <p><a href="/misc/goto?guid=4959675828148830803" rel="nofollow,noindex">SlidingDrawer</a></p> <p>Android custom View implementing the bottom sheet pattern</p> </li>     <li> <p><a href="/misc/goto?guid=4959675828226178348" rel="nofollow,noindex">crystal-range-seekbar</a></p> <p>An extended version of seekbar and range seekbar with basic and advanced customization</p> </li>     <li> <p><a href="/misc/goto?guid=4959675828302015471" rel="nofollow,noindex">ShrinkingImageLayout</a></p> <p>Android layout with an header image sensible to scroll and touch events</p> </li>     <li> <p><a href="/misc/goto?guid=4959675828387610824" rel="nofollow,noindex">PicassoFaceDetectionTransformation</a></p> <p>An Android image transformation library providing cropping above Face Detection (Face Centering) for Picasso</p> </li>     <li> <p><a href="/misc/goto?guid=4959675828475763478" rel="nofollow,noindex">Android-3DTouch-PeekView</a></p> <p>Simple and powerful library to emulate iOS's "3D Touch" preview functionality on Android</p> </li>     <li> <p><a href="/misc/goto?guid=4959675828548688763" rel="nofollow,noindex">android-rxgeofence</a></p> <p>Rx wrapped GeoFence library</p> </li>     <li> <p><a href="/misc/goto?guid=4959675815708607013" rel="nofollow,noindex">ReactiveCache</a></p> <p>A reactive cache for Android and Java which honors the Observable chain</p> </li>     <li> <p><a href="/misc/goto?guid=4959675828654554896" rel="nofollow,noindex">Parallax-Layer-Layout</a></p> <p>Layered parallax effect to any views</p> </li>     <li> <p><a href="/misc/goto?guid=4959675828742297084" rel="nofollow,noindex">circular-music-progressbar</a></p> <p>Beautiful Circular Progress Bar with album art for android</p> </li>     <li> <p><a href="/misc/goto?guid=4959675828818994883" rel="nofollow,noindex">Interpolators</a></p> <p>Visualization of Android Animation Interpolators</p> </li>     <li> <p><a href="/misc/goto?guid=4959675828898535582" rel="nofollow,noindex">MaterialAudiobookPlayer</a></p> <p>Audiobook Player for Android</p> </li>     <li> <p><a href="/misc/goto?guid=4959675828988948240" rel="nofollow,noindex">Emojix</a></p> <p>One line of code to implement emoji to your whole android application.</p> </li>     <li> <p><a href="/misc/goto?guid=4959675829058510853" rel="nofollow,noindex">Scripto</a></p> <p>Java and JavaScript interaction library</p> </li>     <li> <p><a href="/misc/goto?guid=4959675829141188096" rel="nofollow,noindex">Flowing-Gradient</a></p> <p>Android Library to make a flowing gradient effect, similar to that used in Instagram Android login screen</p> </li>     <li> <p><a href="/misc/goto?guid=4959675829232475702" rel="nofollow,noindex">DecentBanner</a></p> <p>轮播图组件</p> </li>     <li> <p><a href="/misc/goto?guid=4959675829315108530" rel="nofollow,noindex">LikeSinaSportProgress</a></p> <p>仿新浪体育客户端的进度条</p> </li>     <li> <p><a href="/misc/goto?guid=4959675829387072662" rel="nofollow,noindex">AutoInstaller</a></p> <p>应用自动静默更新安装库</p> </li>     <li> <p><a href="/misc/goto?guid=4959675829463759546" rel="nofollow,noindex">ScratchoffView</a></p> <p>A Scratchoff View system</p> </li>     <li> <p><a href="/misc/goto?guid=4959675829543872747" rel="nofollow,noindex">RxMarkdown</a></p> <p>一个运用 RxJava API 在 TextView 或 EditText 中编辑和(实时)预览基本 markdown 语法的 Android 库</p> </li>     <li> <p><a href="/misc/goto?guid=4959675648308471822" rel="nofollow,noindex">ferro</a></p> <p>Simple and powerful MVP library for Android</p> </li>    </ol>    <h3>视频</h3>    <ol>     <li><a href="http://list.youku.com/albumlist/show?id=27615900&ascending=1&page=1" rel="nofollow,noindex">React Native Training (中文)</a></li>    </ol>    <h3>工具</h3>    <ol>     <li> <p><a href="/misc/goto?guid=4959675829730482360" rel="nofollow,noindex">gradle-release</a></p> <p>gradle-release is a plugin for providing a Maven-like release process for projects using Gradle</p> </li>     <li> <p><a href="/misc/goto?guid=4959675829814668892" rel="nofollow,noindex">DexKnifePlugin</a></p> <p>一个简单的将指定使用通配符包名分包到第二个dex中gradle插件。</p> </li>     <li> <p><a href="/misc/goto?guid=4959675829897350104" rel="nofollow,noindex">Android-Easy-MultiDex</a></p> <p>Android,multidex,splitdex,分包插件</p> </li>     <li> <p><a href="/misc/goto?guid=4959675829978879279" rel="nofollow,noindex">Multi-OS Engine</a></p> <p>Create Android* and iOS* apps using Java Coding</p> </li>    </ol>    <h3>Books</h3>    <ol>     <li> <p><a href="/misc/goto?guid=4958825667594852762" rel="nofollow,noindex">free-programming-books</a></p> <p>Freely available programming books</p> </li>    </ol>    <h3>技术之外</h3>    <ol>     <li> <p><a href="/misc/goto?guid=4959675830086632913" rel="nofollow,noindex">[译]看Airbnb如何与用户建立信任关系</a></p> </li>     <li> <p><a href="/misc/goto?guid=4959675830166414447" rel="nofollow,noindex">后扁平化时代」的 i18n 和 L10n</a></p> </li>    </ol>    <h3>版权声明</h3>    <p>欢迎自由转载-非商用-非衍生-保持署名 | <a href="/misc/goto?guid=4959675830240869176" rel="nofollow,noindex">Creative Commons BY-NC-ND 4.0</a></p>    <h3>捐赠</h3>    <p>如果你觉得Android开发技术周报对您有所帮助,请考虑对本周报捐赠支持。支持我把Android开发技术周报做的更好,帮助更多的人,金额随意,您的捐赠将用于支付服务器和邮件推送服务的费用。去捐赠</p>    <p> </p>    <p>来自:http://www.androidweekly.cn/android-dev-weekly-issue-91/</p>    <p> </p>