Android开发技术周报 Issue#100
GabrielCall
8年前
<p><img src="https://simg.open-open.com/show/418d5ed052647a22cf1744f145fa4cd8.jpg"></p> <h3><strong>新闻</strong></h3> <ol> <li> <p><a href="/misc/goto?guid=4959719929104223585" rel="nofollow,noindex">华为发布国内首份Android 7.0应用兼容报告</a></p> </li> <li> <p><a href="/misc/goto?guid=4959719929187459324" rel="nofollow,noindex">连线:谷歌Pixel手机颠覆Android生态系统</a></p> </li> <li> <p><a href="/misc/goto?guid=4959719929280129108" rel="nofollow,noindex">Google为Nexus设备发布2016.10安全更新</a></p> </li> <li> <p><a href="/misc/goto?guid=4959719929366307028" rel="nofollow,noindex">Action Launcher 3更新:抢先体验Android 7.1的Launcher Shortcuts功能</a></p> </li> <li> <p><a href="/misc/goto?guid=4959719929477169832" rel="nofollow,noindex">Android Wear 2.0迎来第三个开发者预览版: 专属应用商店将上线</a></p> </li> </ol> <h3><strong>教程</strong></h3> <ol> <li> <p><a href="/misc/goto?guid=4959719929561317498" rel="nofollow,noindex">Activity到底是什么时候显示到屏幕上的呢</a></p> <p>统计App冷启动时间。这个任务看上去不难,但是要求统计出来的时间要准,要特别准。意思就是,我必须要按Activity绘制到屏幕上这个时间节点作为标杆,来进行我的统计工作。毕竟如果是因为视图处理不当而导致的measure/layout/draw耗时太久,这是不能忍的,需要及时统计到。虽然有点蛋疼,但是这个任务还算有意义,我就深挖一下,把过程分享出来。</p> </li> <li> <p><a href="/misc/goto?guid=4959719929646106315" rel="nofollow,noindex">模拟自然动画的精髓——TimeInterpolator与TypeEvaluator</a></p> <p>通过属性动画,我们可以模拟各种属性的动画效果,但对于这些属性来说,动画变化的速率和范围,是实现一个更加『真实、自然』的动画的基础,这两件事情,就是通过TimeInterpolator与TypeEvaluator来实现的。TimeInterpolator与TypeEvaluator共同作用在ValueAnimator上,通过复合的方式产生最后的数据,这也就是数学上的『复合函数』,TimeInterpolator控制在何时取值,而TypeEvaluator控制在当前时间点需要取多少值。由于这里涉及到两个变量,所以,这里我们通常使用『控制变量法』来进行这两个属性的研究,因为通常情况下,这两个属性的作用效果是殊途同归的。</p> </li> <li> <p><a href="/misc/goto?guid=4959719929735849958" rel="nofollow,noindex">安卓自定义View进阶-事件分发机制原理</a></p> <p>之前讲解了很多与View绘图相关的知识,你可以在 安卓自定义View教程目录 中查看到这些文章,如果你理解了这些文章,那么至少2D绘图部分不是难题了,大部分的需求都能满足,但是关于View还有很多知识点,例如: 让绘图更加炫酷的Paint,让View动起来的动画,与用户交互的触控事件 等一系列内容。本次就带大家简单的了解一下与交互息息相关的东西-事件分发原理。</p> </li> <li> <p><a href="/misc/goto?guid=4959719929814610281" rel="nofollow,noindex">Android7.0适配教程,心得</a></p> <p>Android7.0发布已经有一个多月了,Android7.0在给用户带来一些新的特性的同时,也给开发者带来了新的挑战,这几天我将应用适配到Android7.0,其中也遇到了不少问题也踩了一些坑,在这里就把我在Android7.0适配上的一些心得分享给大家,让大家的应用能早一天跑在Android7.0上。</p> </li> <li> <p><a href="/misc/goto?guid=4959719929913444131" rel="nofollow,noindex">Android Support Library的前世今生</a></p> <p>在之前的开发经历中经常需要导入一些如v4、v7、v13等Android官方的支持包,遇到这些情况时都是网上搜索一下,按照前人给的示例添加依赖。这么稀里糊涂的使用后代码正常运行了,但不免会对Android官方提供的支持包产生了一些疑问。如,Android官方为什么要提供支持包,都提供哪些支持包,这些支持包又提供了什么特性,开发者又应该如何选择使用这些支持包?</p> </li> <li> <p><a href="/misc/goto?guid=4959719929995788505" rel="nofollow,noindex">Java Hotspot G1 GC的一些关键技术</a></p> <p>G1 GC,全称Garbage-First Garbage Collector,通过-XX:+UseG1GC参数来启用,作为体验版随着JDK 6u14版本面世,在JDK 7u4版本发行时被正式推出,相信熟悉JVM的同学们都不会对它感到陌生。在JDK 9中,G1被提议设置为默认垃圾收集器(JEP 248)。</p> </li> </ol> <h3><strong>开源库&项目</strong></h3> <ol> <li> <p><a href="/misc/goto?guid=4959719930079811885" rel="nofollow,noindex">Markdown</a></p> <p>Android平台下的原生Markdown解析器</p> </li> <li> <p><a href="/misc/goto?guid=4959719930165696820" rel="nofollow,noindex">Diagonalify</a></p> <p>Diagonal cut view</p> </li> <li> <p><a href="/misc/goto?guid=4959719930252583504" rel="nofollow,noindex">AnimatorDurationTile</a></p> <p>A quick settings tile to quickly set the animator duration scale.</p> </li> <li> <p><a href="/misc/goto?guid=4959719930335993370" rel="nofollow,noindex">TintLayout</a></p> <p>This library help you to achieve popular drop shadow effect from view</p> </li> <li> <p><a href="/misc/goto?guid=4959719930425653715" rel="nofollow,noindex">JPost</a></p> <p>Java and Android class communication library: New and improved Pub-Sub</p> </li> <li> <p><a href="/misc/goto?guid=4959719930506680635" rel="nofollow,noindex">VideoLoadingView</a></p> <p>一个加载界面,可以自定义颜色,可以改变转动的速度或者通过注册监听器的方式去控制这个界面,适合于播放视频的界面中。(比如加载或者缓存视频时引入此界面)</p> </li> <li> <p><a href="/misc/goto?guid=4959719930590120147" rel="nofollow,noindex">Qiscus SDK</a></p> <p>Qiscus SDK is a lightweight and powerful android chat library. Qiscus SDK will allow you to easily integrating Qiscus engine with your apps to make cool chatting application.</p> </li> <li> <p><a href="/misc/goto?guid=4959717305135617802" rel="nofollow,noindex">Pury</a></p> <p>Android library for measuring time between multiple independent events.</p> </li> <li> <p><a href="/misc/goto?guid=4959719930702573875" rel="nofollow,noindex">PlaceHolderView</a></p> <p>A wrapper for android recyclerview</p> </li> <li> <p><a href="/misc/goto?guid=4959719930791917326" rel="nofollow,noindex">AutoLinkTextView</a></p> <p>AutoLinkTextView is TextView that supports Hashtags (#), Mentions (@) , URLs (http://), Phone and Email automatically detecting and ability to handle clicks.</p> </li> <li> <p><a href="/misc/goto?guid=4959719930873271899" rel="nofollow,noindex">android-calendar-view</a></p> <p>一款能够显示阳历、农历、节假日和二十四节气等,并实现对某月日期的单选或者多选的日历控件库</p> </li> <li> <p><a href="/misc/goto?guid=4959719930968068859" rel="nofollow,noindex">kotlintest</a></p> <p>Kotlin test framework based on the excellent Scalatest</p> </li> <li> <p><a href="/misc/goto?guid=4959719931048294959" rel="nofollow,noindex">wechat-weapp-gank</a></p> <p>微信小程序版Gank客户端</p> </li> <li> <p><a href="/misc/goto?guid=4959719931131876897" rel="nofollow,noindex">RealtimeBlurView</a></p> <p>A realtime blurring overlay for Android (like iOS UIVisualEffectView)</p> </li> <li> <p><a href="/misc/goto?guid=4959719931219010269" rel="nofollow,noindex">SnappyImageViewer</a></p> <p>Android Image Viewer inspired by StackOverflow's with swipe-to-dimiss and moving animations.</p> </li> <li> <p><a href="/misc/goto?guid=4959719931301111332" rel="nofollow,noindex">jus</a></p> <p>Flexible and Easy HTTP/REST Communication library for Java and Android</p> </li> <li> <p><a href="/misc/goto?guid=4959719931385086712" rel="nofollow,noindex">ColorPreference</a></p> <p>A custom preference item for easy implementation of a color picker in the preference screen.</p> </li> <li> <p><a href="/misc/goto?guid=4959717561334456589" rel="nofollow,noindex">CouponView</a></p> <p>半圆锯齿背景虚线边框组合实现简单优惠券效果,可实现一些简单组合</p> </li> </ol> <h3><strong>工具</strong></h3> <ol> <li> <p><a href="/misc/goto?guid=4959719931493059386" rel="nofollow,noindex">AndrLintWatchDog</a></p> <p>Android自定义 Lint 检查插件</p> </li> <li> <p><a href="/misc/goto?guid=4959719931588150372" rel="nofollow,noindex">Matchmaker</a></p> <p>这是一款专为微信小程序开发的插件,目前可在 IntelliJ IDEA 中使用。它可以帮你完成重复机械无趣麻烦的绑定方法的过程,自动的将需要新建的方法注入到 js 文件中去。</p> </li> <li> <p><a href="/misc/goto?guid=4959676783944455276" rel="nofollow,noindex">Gradle Bintray Plugin</a></p> <p>he Gradle Bintray Plugin allows you to publish artifacts to Bintray.</p> </li> <li> <p><a href="/misc/goto?guid=4959719931705707374" rel="nofollow,noindex">Cool Retro Term</a></p> <p>这是一款让你「回到过去」的应用,它的作用与系统中的「终端」完全一致,特别的是,它模拟了各种古董级显示器的显示效果,年代感十足。</p> </li> </ol> <h3><strong>技术之外</strong></h3> <ol> <li> <p><a href="/misc/goto?guid=4959719931788119651" rel="nofollow,noindex">关于工程师成长的一点思考</a></p> </li> <li> <p><a href="/misc/goto?guid=4959719931885516875" rel="nofollow,noindex">README 的艺术</a> (By 湾区日报)</p> <p>为什么 README 全大写?因为 UNIX 系统下 ls 会把文件名大写的文件排在前面;README 文件很重要,需要引起大家重视。好的开源项目只要看 README 就能方便使用了,不用去读代码。</p> </li> </ol> <h3> </h3> <p> </p> <p>来自:http://www.androidweekly.cn/android-dev-weekly-issue-100/</p> <p> </p>