新闻
1.谷歌模块手机Project ARA上手图赏:像掰巧克力一样
就像PC能够DIY一样,谷歌近几年也一直在潜心研发自己的模块化手机。现在,外媒首次拿到了Project ARA的原型机,并分享了详细配置和上手感觉。
2.Android安全主管:安卓安全性不输iPhone
凤凰科技讯 北京时间11月3日消息,Android安全主管艾德里安·路德维希(Adrian Ludwig)最近在接受采访时表示,谷歌Pixel和苹果iPhone一样安全。
国外博客
1. MVVM + RxJava: Learnings
MVVM + RxJava is a great formula for an app architecture. In this blog post, Lucia Payo sharies two specific issues and solutions using the actual specific scenarios that inspired them.
2.The key concepts of app tracking for developers
If you have a mobile application or are going to develop one, it is
3. Implementing Filter Animation in Kotlin
Here's a design concept of search in a Quora meets
4. How Dagger 2 Helps In Android Espresso Tests
This post explains how to use Dagger 2 in Android Tests and how Dagger 2 helps in writing Espresso tests.
5. 50 Android Studio Tips, Tricks & Resources
Here's a list of helpful tips, tricks, shortcuts and resources for Android Studio that will improve your overall efficiency and performance.
国内博客
1.如何构建Android MVVM 应用框架
说到Android MVVM,相信大家都会想到Google 2015年推出的DataBinding框架。然而两者的概念是不一样的,不能混为一谈。MVVM是一种架构模式,而DataBinding是一个实现数据和UI绑定的框架,是构建MVVM模式的一个工具。
2.Android M 权限最佳实践
Google在Android 6.0 上开始原生支持应用权限管理,再不是安装应用时的一刀切。权限管理虽然很大程度上增加了用户的可操作性,但是却苦了广大Android开发者。由于权限管理涉及到应用的各个方面,为了避免背锅,很多大厂App的targetSdkVersion仍然停留在22。
3.Android 启动卡顿原因查询
启动是一个什么样的过程?首先要对这个过程进行一个定义。考虑到进程是否存在,对启动时间有着明确的影响,将启动分为两种情况。冷启动 :在进程不存在的情况下,从点击应用 Icon 到用户能看到界面所占用的时间。 热启动 :在进程依然存在的情况下,点击应用 Icon 到用户能看到对应的界面所用的时间。我们看看在热启动和冷启动,怎么看启动过程中可能的卡顿原因。
4.Retrofit结合RxJava使用指南
Retrofit是一个当前很流行的网络请求库, 官网的介绍是: "Type-safe HTTP client for Android and Java". 本文介绍Retrofit的使用. 先介绍单独使用Retrofit进行网络请求, 后面主要介绍和RxJava结合的请求, 有实例代码.
5.WebP原理和Android支持现状介绍
目前网络中图片仍然是占用流量较大的一部分,对于移动端更是如此,因此,如何在保证图片视觉不失真前提下缩小体积,对于节省带宽和电池电量十分重要。 然而目前对于JPEG、PNG、GIF等常用图片格式的优化已几乎达到极致,因此Google于2010年提出了一种新的图片压缩格式 — WebP,给图片的优化提供了新的可能。
6.热修复框架HotFix源码解析
讲起 Android 的热修复,相信大家对其都略知一二。热修复可以说是继插件化之后,又一项新的技术。目前的 Android 热修复框架主要分为了两类: 基于 Native Hook:使用 JNI 动态改变方法指针,比如有 Dexposed 、AndFix 等; 基于 Java Dex 分包:改变 dex 加载顺序,比如有 HotFix 、Nuwa 、Amigo 等;
7.Android 复杂的列表视图新写法: MultiType 详解篇
在开发我的 TimeMachine 时,我有一个复杂的聊天页面,于是我设计了我的类型池系统,它是完全解耦的,因此我能够轻松将它抽离出来分享,并给它取名为 MultiType. 从前,比如我们写一个类似微博列表页面,这样的列表是十分复杂的:有纯文本的、带转发原文的、带图片的、带视频的、带文章的等等,甚至穿插一条可以横向滑动的好友推荐条目。
8.深入理解Android之View的绘制流程
本篇文章会从源码(基于Android 6.0)角度分析Android中View的绘制流程,侧重于对整体流程的分析,对一些难以理解的点加以重点阐述,目的是把View绘制的整个流程把握好,而对于特定实现细节则可以日后再对相应源码进行研读。
9.大幅提高Android开发效率之Android项目模板化(上)
大家好,我是光源。 首先思考一个最普通的场景:创建一个 Activity。你需要做的是: 1、 创建 Activity 类文件; 2、 创建对应的 Layout 布局文件; 3、 在 AndroidManifest.xml 注册; 当然现在 MVP 模式(mvp 模式有多种实现方式,这里选择一种普遍的)基本成为标配,所以你还需要接着
10.Android 模块间的代码级解耦实现
自从项目分解模块之后,由于之前重构过程比较仓促,花了比较少的精力来进行模块之间的解耦,沿用了比较传统的接口暴露方式,它的特点是需要在主app注册一个接口实现,暂时能够缓解模块独立开发的尴尬。
11.Android 自定义View
Android自定义View的详细步骤是我们每一个Android开发人员都必须掌握的技能,因为在开发中总会遇到自定义View的需求。为了提高自己的技术水平,自己就系统的去研究了一下,在这里写下一点心得,有不足之处希望大家及时指出。
12.Android"挂逼"修炼之行---微信摇骰子和猜拳作弊器原理解析
在之前的一篇文章中我们已经详细介绍了一款Android中Hook功能的神器Xposed工具:Xposed框架原理解析和使用案例分析 在那一篇文章中我们介绍了如何安装Xposed框架,以及如何使用Xposed库编写第一个模块来做到修改系统方法功能的效果
13.Android"挂逼"修炼之行---实现微信本地视频发布到朋友圈功能
前一篇文章已经详细介绍了如何使用Xposed框架编写第一个微信插件:摇骰子和猜拳作弊 本文继续来介绍如何使用Xposed框架编写第二个微信插件,可以将本地小视频发布到朋友圈的功能。
类库
1.RapidInterpolator
Realtime interpolator editor(Inspired by Facebook Rebound)
2.ChipsLayoutManager
A custom layout manager for RecyclerView which mimicric TextView span behaviour
3.DrawView
一个自定义画图控件。
4.GetWordTextView
一个可以取词的TextView
5.Android-SearchView
动感十足的搜索加载View。
6.Telegram
开源了 Telegram 应用
7.tinker-manager
微信tinker补丁管理,后端代码+客户端sdk
8.FirebaseUI-Android
UI bindings for Firebase
9.SwipeCardRecyclerView
利用RecyclerView打造的滑动卡片View,支持左滑右滑删除
10.DragFooterView
自带拖拽效果的ViewGroup
参考视频
1.10 Kotlin Tricks in 10(ish) Minutes
本讲座Kotlin的主要优势和特点.(需要科学上网)
2. Android Developers Backstage 58: Quick Settings
系统UI团队的讲座
算法
1.数据结构和算法(一):hash散列容器
散列技术常常用于键-值关系的数据结构中,比如数据库索引、map、缓存等地方,其是通过在记录(值)的存储位置和其关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。
2.数据结构和算法(二):AVL自平衡二叉树
二叉树(Binary Tree)是n个结点的有限集合,该集合或者为空集,或者由一个根节点和两棵互不相交的、分别称为根节点的左子树和右子树的二叉树组成,且二叉树的左右要求是有顺序的。
3.数据结构和算法(三):红黑二叉树
AVL自平衡二叉树在教科书上比较常见,因为是最先提出的自平衡二叉树,自然是学术价值比较的高,但是目前工业环境觉得名为红黑二叉树(Red-Black Tree)的自平衡二叉树使用的更为的广泛,比如C++标准库中的有序容器(std::set、std::map),Linux内核中的很多数据结构等,都是用的RBTree来维护管理的。
4.数据结构和算法(四):主流内排序算法
数据结构中通用的算法主要涉及查找和排序。查找操作基本依赖于数据组织的方式(顺序存储、链表存储、树存储等),主流的有顺序查找、折半查找、插值查找、散列查找等,其操作比较的简单明了;而排序算法算是算法中最热门的讨论话题.
博外话
1.反省我十年开发犯过的错
我 2006 年开始工作,到现在已经 10 年了。 10 年,够得上是一个“里程碑”,驱使我回首过去,反省记录那些年我犯过的错,真希望当初有人对我说这些话。不论你是刚入行的新手还是多年经验的老兵,本文多少会对你有一些帮助。
2.互联网风雨十年,我所经历的技术变迁
美国当地时间2016年10月4日,谷歌在一个新品发布会上首次提出了AI-First(人工智能优先)战略[1]。在过去的十年,谷歌一直秉承的是Mobile-First的发展思路,而未来的十年,则会迎来一场新的革命。这将是比移动互联网规模更为宏大的一场技术革命,如今,我们正站在历史的分界点上。