新闻

1.Android 7.1现BUG:无法查看iPhone 7发来的截图

Android 7.1已经预装在了Pixel手机上,同时传言Nexus也将在12月6日获推,民间更有CM14.1尝鲜放出。然而,用户使用中却发现了一个BUG。
国外博客

1.Epoxy: Airbnb’s View Architecture on Android

Android’s RecyclerView is a powerful tool for displaying lists of items, but its usage is cluttered with boilerplate and configuration. A common requirement for our team is to display lists with complexities such as multiple view types.

2.Machine Learning for Android Developers with the Mobile Vision API — Part 2— Barcode Detection

I recently started exploring Machine Learning for Android Developers with the Mobile Vision API. I wrote about the Face Detection API in the first post in this series and I’m going to continue with the Barcode Detection API in this article.

3. Effective Java for Android

Effective Java is considered by many, one of the most important books for writing Java code that is maintainable in the long run and efficient at the same time. Android is using Java and that means that all of the advice given in the book .

4.Product Flavors for Android Library

Product flavors is a powerful feature of the gradle plugin in Android Studio. Several developers use it to create free/paid or full/demo versions, releasing customized versions of their product.

5.Guide to ConstraintLayout

The other day I used the latest and still pretty new ConstraintLayout and wanted to share with you what I learn. Here, I won’t walk you through the editor, blueprint and stuff like this, talk about performance or why you should make this shift.
国内博客

1.手机天猫解耦之路

本文标题是解耦,聊解耦可以有很多方法,本文以架构进化为线索给各位分享手机天猫的解耦之路。我想,在手机天猫的成长过程中,一些形而上的思考和沉淀固然是对大家有参考价值的,而工具和方案则借鉴价值更大。所以本文会较少篇幅放在讲过程和原因,比较多篇幅放在讲工具和方案。

2.Qzone视频下载如何做到多快好省?

Qzone的日均视频播放量已经突破了10亿,其中Android端的播放量在总播放量中的占比超过70%,相比年初,播放量的增长了超过10倍。视频下载是整个视频播放的基础,如果下载侧出问题,则会造成整个视频播放的失败,这就对我们的视频下载提出了非常高的要求。

3.Android 应用内存泄漏的定位、分析与解决策略

对于不同的语言平台来说,进行标记回收内存的算法是不一样的,像 Android(Java)则采用 GC-Root 的标记回收算法。下面这张图就展示了 Android 内存的回收管理策略(图来自Google 2011的IO大会).

4.【译】Android中的线程池使用

一个线程池管理一池子的工作线程(工作线程的数量依赖于具体的线程池实现)。 一个任务队列容纳等待被线程池中的空闲线程执行的任务。任务被“生产者”添加到队列中,与之对应的工作线程作为消费者的角色消费任务队列中的任务,只要线程池中有空闲的线程等待去执行后台任务。

5.ART下的方法内联策略及其对Android热修复方案的影响分析

为了解决ART模式下的占用Rom空间问题,Tinker曾经花了一个半月时间实现分平台合成。Android N后对内联的新发现,似乎再一次认证了"热补丁不是请客吃饭"这句话。 研究或填坑的路可能永远不会停,但Tinker团队有决心与信心可以陪大家一起走下去。

6.​使用Buck构建Android工程

不论是“QQ音乐”亦或是“全民K歌”,其Android客户端目前都是功能繁多、体量庞大、方法数超过10万的庞大应用。庞大体量的工程带来了构建工程的一个突出问题:构建耗时过长。耗时问题既影响了本地开发又影响了服务器上的持续集成,而且,随着产品功能不断迭代,应用体量势必还要进一步攀升,导致了工程全量构建耗时越来越长。

7.如何测试RxJava代码

假设你已经阅读过RxJava的相关内容,也已经体验过像“RxJava入门之实例解析”中的那些示例,现在打算在自己的代码中探索一下响应式编程了。但是,现在却一直困扰着如何测试那些可能会在代码库中发现的新功能呢?下面我们将探索一下如何测试RxJava代码。

8.带你开发一款给Apk中自动注入代码工具icodetools

在前面已经介绍完了 自动给apk中注入日志代码工具icodetools原理了,在那里我们曾经说过其实离真正的可使用价值有点距离,本篇就对这个工具进行一些优化,让其真正意义上开始能工作量产。当时在前面一篇文章中说到遗留的三个主要问题.

9.Android Activity启动模式与影响任务栈的故事

Android开发中,Activity的使用是不可或缺的,在使用Activity的过程中通常会给特殊的Activity设置不同的启动模式,而这些启动模式也影响着Activity所在的任务栈,今天就先从Activity的启动模式说起,然后总结一些关于影响Activity任务栈的那些事。

10.Android View 全解析(五) -- 实践自定义 View

在前面的系列文章之后,大家已经对 View 绘制中的各个过程熟悉了,这篇文章就根据前面所学的知识,来实际动手做一个自定义 View,这也是整个系列的完结篇了,会尽可能地涵盖自定义 View 中的各个方面,以及可能遇到的各种坑。在经过一番考量后,决定使用一个 PagerIndicator 作为例子进行讲解。在开始后面的文章之前,建议 Clone 下 https://github.com/woaitqs/FPageIndicator,对照着源码阅读,食用效果更佳。

11.深入Android消息机制

Android的消息机制其实是分为Java层的Message派发和Native层的 派发以及处理来自所监控的文件句柄的事件, android的应用层使用java语言写的. 既然Java的程序入口是’public static void main(String[] args)’ 那么android的呢? 我们可以先从ActivityThread.java这个类看起.
类库

1.HaoKanRefresh

一个好看的下拉动画

2.ScrollablePanel

基于recyclerview二面板,可用于记录日志等使用APP

3.android-PageFlip

3D风格的Page Flip

4.TContributionsView

可以用以显示类似github贡献度的View,当然,也绝不仅限于此~

5.ZxingScanView

zxing条码扫描视图

6.CoolImageView

一个ImageView是类似于QQ的背景图片,图片可以上下移动

7.SwissArmyKnife

android免root兼容所有版本ui调试工具

8.CoolRefreshView

可以自定义上拉刷新head的类库

9.WaveView

一个有趣的水波纹效果的界面

10.MsvSearch

Material Search View

11.loadinglayout

简单实用的页面多状态布局(content,loading,empty,error)
算法

1.java数据结构与算法之(Queue)队列设计与实现

 队列同样是一种特殊的线性表,其插入和删除的操作分别在表的两端进行,队列的特点就是先进先出(First In First Out)。我们把向队列中插入元素的过程称为入队(Enqueue),删除元素的过程称为出队(Dequeue)并把允许入队的一端称为队尾,允许出的的一端称为队头,没有任何元素的队列则称为空队

2.红黑树深入剖析及Java实现

二叉查找树(Binary Search Tree,简称BST)是一棵二叉树,它的左子节点的值比父节点的值要小,右节点的值要比父节点的值大。它的高度决定了它的查找效率。 在理想的情况下,二叉查找树增删查改的时间复杂度为O(logN)(其中N为节点数),最坏的情况下为O(N)。当它的高度为logN+1时,我们就说二叉查找树是平衡的。
博外话

1.程序员健康生活指南(六) - 预防头痛和眼部疲劳

编程需要 集大量的创意,但没有多少软件开发工程师说头 能提高他们编写代 码的能力。与此相反,头 在降低程序员工作效率方面名列前茅。

2.过来人「NPC」:技术人生打怪升级的攻略秘籍

经过多年的痛苦经历,渐渐从职场新人到普通工程师成长为一个合格的架构师,后面又从架构师向技术TL转变,这几年中感觉成长最快的是自己思维方式的变化,思维的升级往往比其他方面更重要。



微信公众号:Android博客周刊
微   博:陆镇生_Jomeslu
邮   箱:luzhensheng72@gmail.com

版权声明:自由转载-保持署名 | 本文遵从 CC BY 4.0 协议