新闻
1.Android O Developer Preview 终于推出啦!
自 2008 年首次推出以来,得益于我们由应用开发者、设备厂商和用户提供组成的生机勃勃的生态系统提供的出色反馈,Android 项目得以蓬勃发展。最近,我们一直在尽力推动工程流程的改进,以便可以更轻松、更开放地与合作伙伴进行分享和合作。
2.Android O启动器已经移植到Android 6或更高版本当中
Android的优势之一是开放性。虽然这可以在一定程度上被滥用,但是它允许用户无需考虑手机品牌或者是否获得谷歌官方支持,让他们享受他们无法访问的功能。例如,Android O开发者版本附带的最新启动器,现在已经非官方地移植到Android 6或更高版本当中。
国外博客
1. Rewriting Uber Engineering’s Rider App with Deep Scope Hierarchies
Uber rewrote their rider apps and subdivided the app into a deep hierarchy of dependency injection scopes to allow more features to be written without knowledge of one another.
2. Reducing networking footprint with OkHttp, Etags & If-Modified-Since
You have many options to reduce networking usage of your Android app. Low-hanging fruit is the use of If-Modified-Since or Etags headers. It’s already included in OkHttp3, you will just have to enable it.
3. Random Musings on the O Developer Preview 1
Each time Google releases a new developer preview, Mark Murphy rummages through the API differences report and the high-level overviews, to see if there are things that warrant more attention from developers.
4. Writing Concise Code with Kotlin and RxJava
Ribeira dos Caldeirões shows how using RxJava with Kotlin can be far more concise and readable than with Java.
5. JUnit 5: Dynamic Tests
Mark Allison continues his series on JUnit 5, showing how to further simplify things and reduce boilerplate.
国内博客
1.Android 内存优化总结&实践
智能手机发展到今天已经有十几个年头,手机的软硬件都已经发生了翻天覆地的变化,特别是Android阵营,从一开始的一两百M到今天动辄4G,6G内存。然而大部分的开发者观看下自己的异常上报系统,还是会发现各种内存问题仍然层出不穷,各种OOM为crash率贡献不少。
2.Android-Code-Style
新建工程需要按照最新的Android Gradle的工程结构,在以下定义:Android Gradle plugin user guide. 该工程: BoilerPlate 是一个很好的参考材料类命名方式采用 大驼峰 命名法 对于继承自安卓组件的类来说,类名应该以该组件名结尾.
3.ART深度探索开篇:从Method Hook谈起
Android上的热修复框架 AndFix 想必已经是耳熟能详,它的原理实际上很简单:方法替换——Java层的每一个方法在虚拟机实现里面都对应着一个ArtMethod的结构体,只要把原方法的结构体内容替换成新的结构体的内容,在调用原方法的时候,真正执行的指令会是新方法的指令.
4.Android 优化APP 构建速度的17条建议
较长的构建时间将会减缓项目的开发进度,特别是对于大型的项目,app的构建时间长则十几分钟,短则几分钟,长的构建时间已经成了开发瓶颈,本篇文章根据Google官方文档,加上自己的一些理解提供一些提升app构建速度的优化建议。
5.Android安全防护之旅---应用防dex2jar工具反编译原理实现
最近在看某外卖(v4.2.0.388)的代码,发现外卖最新版本版本无法正常的通过dex2jar工具将dex转换出Java源代码,在转换过程中会提示出错,查看转换出的Java源代码,会发现很多类方法提示下图所示异常,很多方法中都会抛出RuntimeException:can not merge I and Z:
6.Android Things和TensorFlow能擦出怎样的火花?
前面絮叨了这么多,好像还没有一个总体的概念,我们如何写一个完整的代码呢? 现在深度学习很火,那我们就在 Android Things 中,利用摄像头抓拍图片,让 TensorFlow 去识别图像,最后用扬声器告诉我们结果。 是不是很酷?说基本的功能就说了这么长一串,那垒代码得垒多久啊?
7.小微团队怎么玩转App自动化测试
App自动化测试一直是小微团队很少会去涉足的领域,在互联网快速迭代这个大场景下,随着业务发展,回归压力逐渐增大。相信每次因为回归覆盖不足而导致线上事故,懊恼郁闷到要砸桌子的绝对不止我一个。
8.Android 6.0运行时权限简析及最佳实践
从Android 6.0(API 23)开始,对系统权限做了很大的改变。在之前用户安装APP前,只是把APP需要使用的权限列出来给用户告知一下,APP安装后都可以访问这些权限。从6.0开始,一些敏感权限,需要在使用时动态申请,并且用户可以选择拒绝授权访问这些权限,已授予过的权限.
类库
1.android-PictureInPicture
https://github.com/googlesamples/android-PictureInPicture
The video keeps on playing when the app is turned in to Picture-in-Picture mode
2.AppMethodOrder
https://github.com/zjw-swun/AppMethodOrder
一个能让你了解所有函数调用顺序的Android库(无需侵入式代码)
3.vlayout
https://github.com/alibaba/vlayout
VirtualLayout是一个针对RecyclerView的LayoutManager扩展, 主要提供一整套布局方案和布局间的组件复用的问题。
4.ListItemView
https://github.com/lurbas/ListItemView
Implementation of List Item from Material Design
5.BubbleSeekBar
https://github.com/woxingxiao/BubbleSeekBar
自定义SeekBar,进度变化由可视化气泡样式呈现
6.AndroidTensorFlowMachineLearningExample
https://github.com/MindorksOpenSource/AndroidTensorFlowMachineLearningExample
一款Android 端机器学习的demo
7.SlidMenu
https://github.com/lichenyu10/SlidMenu
轮盘样式的 Fragment 菜单选择控件。
8.ChannelTagView
https://github.com/yilylong/ChannelTagView
一个频道管理view
9.ProProgressViews
https://github.com/DamanSingh4321/ProProgressViews
Progress Views Library
算法
1.二叉查找树实现原理分析
二叉查找树是一种能将链表插入的灵活性和有序数组查找的高效性结合起来的一种重要的数据结构,它是我们后面学习红黑树和AVL树的基础,本文我们就先来看一下二叉查找树的实现原理。二叉查找树最重要的一个特征就是:每个结点都含有一个Comparable的键及其相关联的值.
面试题
1.前端面试季--12家公司面试题全揭秘
写一个方法,在一个未知对象中,找出所有的“李鹏”。并 console.log 对象输出它的引用地址,以及对应值以及当前所在对象和当前对象有多少个目标值。
2.3月快过了,你找到心仪的工作了吗?
金三银四也过去一半了,过去的这个月,找工作、面试一直是热门话题,做移动开发的小伙伴也不例外,在月初我发了一个招聘季活动,有不少小伙伴响应,由于回复是陆续发布,有些同学可能没有看到,这里我将已发布的招聘信息整理发布一下。
博外话
1.【汇总】机器学习基础之「统计篇」
本文用一系列「思维导图」由浅入深的总结了「统计学」领域的基础知识,是对之前系列文章做的一次完整的梳理,也是我至今为止所有与统计有关的学习笔记。众所周知,「统计学」是深入理解「机器学习/数据挖掘」的重要基础学科。
2.做开发十年,我总结出了这些开发经验
在一线做了十年的开发,经历了网易、百度、腾讯研究院、MIG等几个地方,陆续做过3D游戏、2D页游、浏览器、移动端翻译app等。 积累了一些感悟。必然有依然幼稚的地方,就当抛砖引玉,聊为笑谈。