51好读  ›  专栏  ›  Android博客周刊

Android博客周刊第55期

Android博客周刊  · 公众号  · android  · 2017-02-27 08:25

正文

请到「今天看啥」查看全文


温馨提示:

微信公众号做了超链接限制,有兴趣的小伙伴可以直接到

www.androidblog.cn

或点击文章末尾" 阅读全文 "里进行查看

注意 【招编辑和分享讲师,有意者公众号留言】




新闻

1.TensorFlow 1.0 发布,更快、更灵活、更方便开发

在Mountain View举办的首届年度TensorFlow开发者峰会上,Google 发布了 TensorFlow 1.0,保证了 Google 的机器学习库的API稳定性。


2.Google 的新操作系统 Andromeda

Google 计划将桌面操作系统 Chrome OS 与移动操作系统 Android 合并成 Andromeda OS 已经不是新闻,但 Google 的野心显然不只是为了创建一个 Android 的简单继承者。

国外博客

1. Helping to Mock Tests in Kotlin

Roger Silva shows how to enable mocking in Kotlin objects without the need to change its default immutability property exclusively for unit tests.


2. How and Why I Kill God Objects

In android development specifically, we have a god that we all know and love to hate: Context. The Philosophical Hacker shows why and how to kill off the Context god in apps.


3. Android Things - Electricity Monitoring App

Rebecca Franks shares an app (and GitHub repo) that uses Android Things, Firebase and a Raspberry Pi to monitor the state of electricity in her home.


4. How to Make Calls and Use SMS in Android Apps

In this tutorial, Chike Mgbemena writes about the Android Telephony and SMS API. You'll learn how to make a call from your app and how to monitor phone call events, as well as how to send and receive SMS.


5. Write awesome unit tests

Jeroen Mols aims to provide three very simple rules that will significantly ramp up your testing game. Every rule is followed by pragmatic tips so you can easily start implementing.

国内博客


1.理解Android Binder机制(2/3):C++层

Framework是一个中间层,它对接了底层实现,封装了复杂的内部逻辑,并提供供外部使用的接口。Framework层是应用程序开发的基础。 Binder Framework层分为C++和Java两个部分,为了达到功能的复用,中间通过JNI进行衔接。


2.Android AOP之字节码插桩详解

本篇文章基于《网易乐得无埋点数据收集SDK》总结而成,关于网易乐得无埋点数据采集SDK的功能介绍以及技术总结后续会有文章进行阐述,本篇单讲SDK中用到的Android端AOP的实现。


3.ThreadPoolExecutor内部机制

众所周知,JDK为我们提供了一系列线程池类,ThreadPoolExecutor就是一个很典型的实现,以下对JDK的线程池机制分析都将围绕这一个类来描述。要使用ThreadPoolExecutor,我通常会这样做,但是这里面发生了什么事,它的代码实现又是怎么一回事呢,我们来一探究竟。


4.深入剖析 Android中的 ArrayMap

数据集合在任何一门编程语言中都是很重要的一部分,在 Android 开发中,我们会实用到ArrayList, LinkedList, HashMap等。其中HashMap是用来处理键值对需求的常用集合。 而Android中引入了一个新的集合,叫做ArrayMap.


5.Android触摸事件分发那些事

在Android开发中,经常需要自定义View。自定义View大概可以分为两个步骤:绘制外观和处理触摸事件。处理触摸事件需要知道触摸事件的分发流程,本文将带着大家详细地了解触摸事件分发流程,以及在触摸事件分发流程中扮演重要角色的方法.


6.ANDROID 动态加载简单易懂的介绍方式

我们很早开始就在 Android 项目中采用了动态加载技术,主要目的是为了达到让用户不用重新安装 APK 就能升级应用的功能(特别是 SDK 项目),这样一来不但可以大大提高应用新版本的覆盖率,也减少了服务器对旧版本接口兼容的压力,同时如果也可以快速修复一些线上的 BUG。


7.Android架构思考(模块化、多进程)

关于模块化(组件化)这个问题,我想每个开发者可能都认真的思考过。随着项目的开发,业务不断壮大,业务模块越来越多,各个模块间相互引用,耦合越来越严重,同时有些项目(比如我们公司)还伴随着子应用单独包装推广,影子应用单独发布等等需求,重新调整架构迫在眉睫。


8.浅谈设计模式

开闭原则(Open-Closed Principle, OCP), 一个软件实体应该对扩展开放,对修改关闭。即软件实体应该在尽量不修改代码的情况下进行扩展。在该原则中,软件实体可以指一个软件模块,一个由多个类组成的局部结构或者一个独立的类。


9.Android7.0新签名对多渠道打包的影响

由于Android7.0发布了新的签名机制,加强了签名的加固,导致在新的签名机制下无法通过美团式的方式再继续打多渠道包了。不过在说新的签名机制对打包方案的 影响和为什么会影响我们原有的打包机制之前,需要先简单理解下打包原理和签名在整个打包过程中的作用。


10.从json文件到炫酷动画-Lottie实现思路和源码分析

Lottie是最近Airbnb开源的动画项目,支持Android、iOS、ReactNaitve三个平台,相关背景介绍可以参考之前的文章Airbnb开源炫酷动画库Lottie(译)-看看Airbnb的工程师怎么说。本文分析主要Lottie把json文件转为动画的思路和源码实现。

类库


1.Alerter

https://github.com/Tapadoo/Alerter

一款Android闹钟应用

2.routerSDK

https://github.com/Jomes/routerSDK

一款小而美的路由框架。网页动态添加自定义参数启动应用。


3.mkloader

https://github.com/nntuyen/mkloader

一个漂亮的加载动画

4.BadgeView

https://github.com/qstumn/BadgeView

一个可以自由定制外观、支持拖拽消除的MaterialDesign风格Android BadgeView


5.ListenerMusicPlayer

https://github.com/hefuyicoder/ListenerMusicPlayer

一款音乐播放器

6.Zoomy

https://github.com/imablanco/Zoomy

容易集成的pinch-to-zoom


7.Hamburger-Button

https://github.com/LongDinhF/Hamburger-Button

Android hamburger button


8.Just-Another-Android-App

https://github.com/athkalia/Just-Another-Android-App

An Android base app with loads of cool libraries/configuration

9.Cockroach

https://github.com/android-notes/Cockroach

打不死的小强,永不crash的Android

算法


1.ConcurrentHashMap的红黑树实现分析

红黑树是一种特殊的二叉树,主要用它存储有序的数据,提供高效的数据检索,时间复杂度为O(lgn),每个节点都有一个标识位表示颜色,红色或黑色,有如下5种特性:1、每个节点要么红色,要么是黑色;2、根节点一定是黑色的;3、每个空叶子节点必须是黑色的;4、如果一个节点是红色的,那么它的子节点必须是黑色的

面试题


1.这可能是史上最全的简历教程

最近看了30多份简历,也面试了几个人,发现有些人的能力其实并不差,但在简历上表现出来却资质平平,没有什么亮点,如果不是约过来面谈,估计简历就石沉大海了。那我作为一名PPT达人,同时也是一位职场人士,在简历制作这块也小有心得,今天就想来和大家聊聊关于简历制作,你必须要知道的事。


2.Android面试题收集

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。这里会不断收集和更新Android基础相关的面试题,目前已收集100题。

博外话

1.10年学到的编程经验总结

我作为一个web开发者的旅程始于2000年,那时我还只有21岁,我依然可以清楚地记得那些日子里激荡在我内心的感觉。如果一定要找一个词来形容的话,我觉得那是——愉悦。 我不需要担忧时间、最后期限和轻重缓急,也不需要担心生产力。我所要关心的只有一件事,那就是学习,尽可能多和尽可能快地学习。

2.说说跳槽这件事

上周一个挺熟识的女工程师离职了,原因是她很喜欢写作,突然觉得比起写代码,更喜欢写作。于是辞职,一门心思去做技术写作和编辑相关的工作。 虽然这算是非典型跳槽,但是在硅谷也不算太少见。




------------------------------  End  ------------ --------------------


精选文章:

View事件体系 面试遇到的那些坑 Android密钥保护和C/S网络传输安全理论指南

随机洗牌算法 Android增量编译 由模块化到组件化(一) 一致性Hash算法

Android应用耗电量分析与优化建议 我不是不同意你的看法,而是受不了你说话的样子

仿京东手势解锁 开发人员一份技术简历写好很重要 泛型深度解耦下的MVP大瘦身

每年应该更新你的简历


往期周刊:

54期 | 53期 |     52期    | 51期 | 50期 | 49期 | 48期 | 47期 |

46期 | 45期 | 44期 | 43期 | 42期 | 41期 | 40期 | 39期

38期 | 37期 | 36期 | 35期 | 34期 | 33期 | 32期 | 31期

30期 | 29期 | 28期 | 27期 | 26期 | 25期 | 24期 | 23期

22期 | 21期 | 20期 | 19期 | 18期 | 17期 | 16期 | 15期

14期 | 13期 | 12期 | 11期 | 10期 | 09期 | 08期 | 07期

06期 | 05期 | 04期 | 03期 | 02期 | 01期 |



-----------------------------------------------------------------------------------------

自动回复:

公众号已做了自动聊天回复功能,大家可以用以下关键词进行挑逗。

网站 QQ群 代言人 福利 1-55(最新期数)之间任意数字 最新文章 等!


温馨提示:

微信公众号做了超链接限制,有兴趣的小伙伴可以直接到www.androidblog.cn

或点击文章末尾" 阅读全文 "里进行查看








请到「今天看啥」查看全文