Android开发技术周报 Issue#100

十月 10, 2016 0 条评论 AndroidDevWeekly

新闻

  1. 华为发布国内首份Android 7.0应用兼容报告

  2. 连线:谷歌Pixel手机颠覆Android生态系统

  3. Google为Nexus设备发布2016.10安全更新

  4. Action Launcher 3更新:抢先体验Android 7.1的Launcher Shortcuts功能

  5. Android Wear 2.0迎来第三个开发者预览版: 专属应用商店将上线

教程

  1. Activity到底是什么时候显示到屏幕上的呢

    统计App冷启动时间。这个任务看上去不难,但是要求统计出来的时间要准,要特别准。意思就是,我必须要按Activity绘制到屏幕上这个时间节点作为标杆,来进行我的统计工作。毕竟如果是因为视图处理不当而导致的measure/layout/draw耗时太久,这是不能忍的,需要及时统计到。虽然有点蛋疼,但是这个任务还算有意义,我就深挖一下,把过程分享出来。

  2. 模拟自然动画的精髓——TimeInterpolator与TypeEvaluator

    通过属性动画,我们可以模拟各种属性的动画效果,但对于这些属性来说,动画变化的速率和范围,是实现一个更加『真实、自然』的动画的基础,这两件事情,就是通过TimeInterpolator与TypeEvaluator来实现的。TimeInterpolator与TypeEvaluator共同作用在ValueAnimator上,通过复合的方式产生最后的数据,这也就是数学上的『复合函数』,TimeInterpolator控制在何时取值,而TypeEvaluator控制在当前时间点需要取多少值。由于这里涉及到两个变量,所以,这里我们通常使用『控制变量法』来进行这两个属性的研究,因为通常情况下,这两个属性的作用效果是殊途同归的。

  3. 安卓自定义View进阶-事件分发机制原理

    之前讲解了很多与View绘图相关的知识,你可以在 安卓自定义View教程目录 中查看到这些文章,如果你理解了这些文章,那么至少2D绘图部分不是难题了,大部分的需求都能满足,但是关于View还有很多知识点,例如: 让绘图更加炫酷的Paint,让View动起来的动画,与用户交互的触控事件 等一系列内容。本次就带大家简单的了解一下与交互息息相关的东西-事件分发原理。

  4. Android7.0适配教程,心得

    Android7.0发布已经有一个多月了,Android7.0在给用户带来一些新的特性的同时,也给开发者带来了新的挑战,这几天我将应用适配到Android7.0,其中也遇到了不少问题也踩了一些坑,在这里就把我在Android7.0适配上的一些心得分享给大家,让大家的应用能早一天跑在Android7.0上。

  5. Android Support Library的前世今生

    在之前的开发经历中经常需要导入一些如v4、v7、v13等Android官方的支持包,遇到这些情况时都是网上搜索一下,按照前人给的示例添加依赖。这么稀里糊涂的使用后代码正常运行了,但不免会对Android官方提供的支持包产生了一些疑问。如,Android官方为什么要提供支持包,都提供哪些支持包,这些支持包又提供了什么特性,开发者又应该如何选择使用这些支持包?

  6. Java Hotspot G1 GC的一些关键技术

    G1 GC,全称Garbage-First Garbage Collector,通过-XX:+UseG1GC参数来启用,作为体验版随着JDK 6u14版本面世,在JDK 7u4版本发行时被正式推出,相信熟悉JVM的同学们都不会对它感到陌生。在JDK 9中,G1被提议设置为默认垃圾收集器(JEP 248)。

开源库&项目

  1. Markdown

    Android平台下的原生Markdown解析器

  2. Diagonalify

    Diagonal cut view

  3. AnimatorDurationTile

    A quick settings tile to quickly set the animator duration scale.

  4. TintLayout

    This library help you to achieve popular drop shadow effect from view

  5. JPost

    Java and Android class communication library: New and improved Pub-Sub

  6. VideoLoadingView

    一个加载界面,可以自定义颜色,可以改变转动的速度或者通过注册监听器的方式去控制这个界面,适合于播放视频的界面中。(比如加载或者缓存视频时引入此界面)

  7. Qiscus SDK

    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.

  8. Pury

    Android library for measuring time between multiple independent events.

  9. PlaceHolderView

    A wrapper for android recyclerview

  10. AutoLinkTextView

    AutoLinkTextView is TextView that supports Hashtags (#), Mentions (@) , URLs (http://), Phone and Email automatically detecting and ability to handle clicks.

  11. android-calendar-view

    一款能够显示阳历、农历、节假日和二十四节气等,并实现对某月日期的单选或者多选的日历控件库

  12. kotlintest

    Kotlin test framework based on the excellent Scalatest

  13. wechat-weapp-gank

    微信小程序版Gank客户端

  14. RealtimeBlurView

    A realtime blurring overlay for Android (like iOS UIVisualEffectView)

  15. SnappyImageViewer

    Android Image Viewer inspired by StackOverflow's with swipe-to-dimiss and moving animations.

  16. jus

    Flexible and Easy HTTP/REST Communication library for Java and Android

  17. ColorPreference

    A custom preference item for easy implementation of a color picker in the preference screen.

  18. CouponView

    半圆锯齿背景虚线边框组合实现简单优惠券效果,可实现一些简单组合

工具

  1. AndrLintWatchDog

    Android自定义 Lint 检查插件

  2. Matchmaker

    这是一款专为微信小程序开发的插件,目前可在 IntelliJ IDEA 中使用。它可以帮你完成重复机械无趣麻烦的绑定方法的过程,自动的将需要新建的方法注入到 js 文件中去。

  3. Gradle Bintray Plugin

    he Gradle Bintray Plugin allows you to publish artifacts to Bintray.

  4. Cool Retro Term

    这是一款让你「回到过去」的应用,它的作用与系统中的「终端」完全一致,特别的是,它模拟了各种古董级显示器的显示效果,年代感十足。

技术之外

  1. 关于工程师成长的一点思考

  2. README 的艺术 (By 湾区日报)

    为什么 README 全大写?因为 UNIX 系统下 ls 会把文件名大写的文件排在前面;README 文件很重要,需要引起大家重视。好的开源项目只要看 README 就能方便使用了,不用去读代码。

捐赠

如果你觉得Android开发技术周报对您有所帮助,请考虑对本周报捐赠支持。支持我把Android开发技术周报做的更好,帮助更多的人,金额随意,您的捐赠将用于支付服务器和邮件推送服务的费用。捐赠列表

支付宝

版权声明

欢迎自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 4.0

脉脉不得语
ZhengZhou Website
{Developer=菜鸟Android程序猿; Blog=http://inferjay.com; Github=http://github.com/inferjay}