Android开发技术周报 Issue#65
新闻
-
2016 Google I/O大会日期宣布了,今年Sundar Pichai会说些什么?
【官方独家】谷歌CEO桑达尔·皮查伊(Sundar Pichai)今天在Google+上宣布:2016年Google I/O大会将于5月18日至20日举行。今年大会的地址为谷歌总部山景城的Shoreline Ampitheatre 露天剧场。
-
Android Studio 2.0 Preview 5 发布
新特性有:增加"cold swap" for Instant Run 功能,在重构菜单中增加了删除未使用资源的功能、data binding 增加在 xml 中的代码自动补全提示功能,Implicit API checks,Several new lint checks,Test Artifacts,优化在编写 Style 时的代码补全提示功能,会根据 parent styles 给出更合适的 item 以及修复一些列 bug 等等。
-
木马SlemBunk再次进化,瞄准全球Android手机银行用户
FireEye专家们最近发现SlemBunk再次进化,这次它变身成了一个瞄准全球手机银行用户的强大的Android木马。去年十二月,FireEye安全专家首次发现Android银行木马SlemBunk,一开始还只是针对银行用户使用的手机,作为从第三方网站下载的合法银行app的副本来迷惑用户的双眼。
教程
-
Android 6.0,代号棉花糖,自发布伊始,其主要的特征运行时权限就很受关注。因为这一特征不仅改善了用户对于应用的使用体验,还使得应用开发者在实践开发中需要做出改变。没有深入了解运行时权限的开发者通常会有很多疑问,比如什么是运行时权限,哪些是运行时的权限,我的应用是不是会在6.0系统上各种崩溃呢,如何才能支持运行时权限机制呢。
-
性能优化都需要有一个目标,UI的性能优化也是一样。你可能会觉得“我的app加载很快”很重要,但我们还需要了解终端用户的期望,是否可以去量化这些期望呢?我们可以从人机交互心理学的角度来考虑这个问题。研究表明,0-100毫秒以内的延迟对人来说是瞬时的,100-300毫秒则会感觉明显卡顿,300-1000毫秒会让用户觉得“手机卡死了”,超过1000ms就会让用户想去干别等事情了。
-
在复杂的项目环境中,由于历史代码庞大,业务复杂,包含各种第三方库,偶尔再来个jni调用,所以在出现了卡顿的时候,我们很难定位到底是哪里出现了问题,即便知道是哪一个Activity/Fragment,也仍然需要进去里面一行一行看,动辄数千行的类再加上跳来跳去调来调去的,结果就是不了了之随它去了,实在不行了再优化吧。于是一拖再拖,最后可能压根就改不动了,客户端越来越卡。
-
Android 开发绕不过的坑:你的 Bitmap 究竟占多大内存?
做移动客户端开发的朋友们肯定都因为图头疼过,说起来曾经还有过 leader 因为组里面一哥们在工程里面加了一张 jpg 的图发脾气的事儿,哈哈。为什么头疼呢?吃内存呗,时不时还给你来个 OOM 冲冲喜,让你的每一天过得有滋有味(真是没救了)。那每次工程里面增加一张图片的时候,我们都需要关心这货究竟要占多大的坑,占多大呢?
-
Android性能优化典范第4季的课程学习笔记终于在2015年的最后一天完成了(并于2016年1月12日正式发布在CSDN上),文章共17个段落,包含的内容大致有:优化网络请求的行为,优化安装包的资源文件,优化数据传输的效率,性能优化的几大基础原理等等。
-
Android系统碎片化造成应用程序崩溃严重,在模拟器上运行良好的程序安装到某款手机上说不定就会出现崩溃的现象。而且,往往都是程序发布之后在用户端出现了崩溃现象。所以,如何及时捕获并收集Android平台的崩溃就显得愈发重要。目前,市面上已经有第三方SDK可以帮助开发者完成这一功能,本文将跟大家分享一下这些崩溃分析SDK的实现原理。
-
ZipInputStream对于zip文档不安全的处理方式会直接导致将设备最终控制权交给攻击者,攻击者能够遍历整个路径并写入任何数据。然而今天我并不是要讲ZipInputStream的使用方法,当然如果感兴趣的开发者朋友可以花点时间看看《Safely extract files from ZipInputStream》
-
本文将要讲述一个滥用Android的ClipBoardManager最后自食恶果的故事,当你使用Android的Clipboard框架,你将数据转换成一个剪切对象,然后将剪切对象传递到系统剪贴板。剪贴板同一时间只允许存在一个剪切对象,当应用在剪切板中传递一个剪切对象,前面一个剪切对象就会被移除。应用也不需要请求任何特殊许可就能对剪切板进行读取/写入。
-
用户空间就是常规进程(如JVM)所在区域,用户空间是非特权区域,如不能直接访问硬件设备。内核空间是操作系统所在区域,那肯定是有特权啦,如能与设备控制器通讯,控制用户区域的进程运行状态。进程执行I/O操作时,它执行一个系统调用把控制权交由内核。
-
随着移动互联网时代的到来,移动技术也随之飞速发展。如今,APP已然成为绝大多数互联网企业用来获取用户的核心渠道。与此同时,伴随着业务量的增长,愈来愈多的APP也在不断地挑战着每一个移动端研发人员的知识深度,而移动端技术人员也在这个不断接受挑战的过程中,成就了今天的移动互联网时代。
-
2个月的开发时间,微信后台系统经历了从0到1的过程。从小步慢跑到快速成长,经历了平台化到走出国门,微信交出的这份优异答卷,解题思路是怎样的?
开源库&项目
-
此项目是一个Android UML图的集合,以前大家画UML图的时候,是使用画图工具来进行绘图的,这样一旦完成之后,别人来修改的代价 就很高,自己去修改的动力也不大,更不利于修改和传播。
-
一个 Android Testing 示例项目,你可以学到怎么实现不同的 Testing 类型。
-
通过注解实现的一种类型的安全方式在 Android 中传递 bundles, intents 和参数的库。
-
基于编译时注解处理实现的 Content Provider 生成器。
-
一个可以实现圆形布局的 Layout 控件。
-
在输入完密码后会显示一个很好玩的动画的控件。
-
AndroidTargetToolTip
可以在 View 的上下左右位置或者屏幕上任意一点显示一个类似 Toast 一样的工具提示 View 的库。 -
安卓选择器类库,包括日期时间选择器、单项选择器、地址选择器、颜色选择器、文件目录选择器、数字选择器、星座选择器等。
-
显示一串数据为波形图,或者条状图。
-
简单Hybrid框的实现。
工具
-
一个可以连续追踪构建时间的 Gradle 插件。
-
一个 Android 逆向工程框架和工具集。
视频
-
数据序列化是 Android 应用很重要的一个方面,同时也影响着 Android 性能。JSON 虽然可读性好,但这些面向人类的信息却不是性能最优的。本期 Android Performance Patterns 第四季第14集,Colt McAnlis 为大家介绍一些性能更优的数据序列化方案。
-
UX Design for Mobile Developers
Google 官方推出的一套面向移动开发者的用户体验设计(UX Design for Mobile Developers)教程。良好的设计和良好的代码同样重要。本课程教你最重要的并且立即可用的技术和方法,帮你更好地把握应用中的设计元素。
设计
-
各平台 (Android/iOS/HTML5/Web) 的标准设计语言接近一致 部分原生控件上只存在风格上的差异,对用户无显著影响。Material Design 不会大兴其道,更不可能逆袭(用 Material Design 设计的 App 在 iOS 上使用),iOS 的实用主义设计会显著影响 Material Design。
技术之外
-
正好写2015年终总结,其实今年不太想写的,但是公司有个个人总结要弄,写了个开始就情不自禁了,谈谈这方面的总结吧。互联网公司的技术团队负责人应该具备怎样的能力?以下也发表一些个人的总结,这里也参考了曾看到的优质文章和朋友的看法。主要从三个层面讨论,当然它并不能适用所有公司,也能可引发一些口水,而且我做的是客户端负责人,所以,仅供参考咯。