BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Android开发周报:Android7.0截图公布、插件化原理解析

| 作者 郭亮 关注 18 他的粉丝 发布于 2016年3月1日. 估计阅读时间: 10 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

新闻

  1. 《安卓7.0首批截图公布:惊现汉堡菜单》:2月26日消息,谷歌在开发者页面公布了首批Android N(安卓7.0)截图,从截图中能够了解到的一点是安卓7.0设置界面中会添加汉堡式菜单,但并不清楚是否汉堡菜单会贯穿全系统。当然,最终这个特性会不会出现在安卓7.0中也不能确定。另外还有消息称,安卓7.0将取消应用抽屉。
  2. 《微软正式宣布移植Android应用计划流产》:2月26日上午,微软今天宣布将停止为开发者提供Android应用导入工具,意味着他们无法借助微软提供的官方工具轻易将Android应用导入Windows 10。微软最早在去年的Build开发者大会上宣布了这个名为Project Astoria的项目,同时还发布了一项类似的计划,可以在iOS与Windows之间建立所谓的“桥”,而且可以帮助开发者将旧版Windows软件和Web软件迁移到新版Windows 10系统。
  3. 《2015年Android恶意软件样本数量超230万》:据德国网络安全公司G DATA最新公布的一份调查报告显示,2015年,Android恶意软件样本数量达到了2,333,777个,形象的来描述就是差不多每隔11秒就会出现一个新的Adnroid恶意软件样本。该数值同比2014年增长了50%。而在2015年第四季度,新出现的Android恶意软件文件数量达到758,133个,同比14年第四季度增长了32%。

教程

  1. 《ReactNative For Android 项目实战总结》:本文由QQ空间终端开发团队出品。Android Qzone 6.1版本在情侣空间涉水React Native,以动态插件方式将情侣空间进行React Natived的改造。在情侣空间基础上,Android Qzone 6.2版本以融合的方式将话题圈进行React Native改造。本文主要讲述话题圈的开发改造流程、相关数据对比及性能优化,本次改造React Native基于15Release。
  2. 《Android:我为何要封装DialogFragment?》:Dialog在实际使用中会存在一些问题,比如在手机配置发生变化后(比如屏幕旋屏),无法恢复Dialog的状态。DialogFragment是在Android3.0被引入的,从其名字可以很直观的看出它是一种基于Fragment的Dialog,可以用来创建对话框,DialogFragment是用来替代Dialog的。本文作者解释了为什么抛弃Dialog而使用DialogFragment,并且详解了对DialogFragment的封装过程。
  3. 《Facebook如何采集其Android应用性能数据》:Facebook一直致力于不断提高Android应用的运行速度。虽然他们内部已经有类似CTScan这样的性能跟踪系统,但Android的碎片化使他们无法在实验室中测试每一种可能。因此,他们希望通过遥测技术从人们真实使用的Android手机中收集性能信息来补充测试数据。本文介绍了Facebook的插桩方法,他们在考察了Android内建的Debug以及另一些方法后,选择了字节码重写技术,避免了手工插桩的劳动,且性能损失降到最低。
  4. 《Android开发必备知识:为什么说Kotlin值得一试》Kotlin是一门与Swift类似的静态类型JVM语言,由JetBrains设计开发并开源。与Java相比,Kotlin的语法更简洁、更具表达性,而且提供了更多的特性。用Kotlin替代Java开发你的程序,无论是Android还是Server,你都能像之前写Java一样思考,同时又能享受到新一代编程语言的特性。其实经过一年多的发展,Kotlin 1.0已经release,feature基本完善,api也趋于稳定,或许你可以尝试使用Kotlin来开发App了。
  5. 《Android Support Library 23.2介绍》:当我们说起 Android Support Library时,必须清楚的认识到这不仅仅只是一个库,而是一个能对API向后兼容的,提供独特的功能而不需要最新平台(plathform)支持的 库的集合。23.2版本在许多现有库的基础上增加一些新的支持以及功能。本文是对该库的一个简单介绍,有助于我们更加了解该库的新特性。
  6. 《最详细的Toolbar开发实践总结》:Toolbar是在Android 5.0开始推出的一个Material Design风格的导航控件,Google强烈推荐大家使用Toolbar来作为Android客户端的导航栏,以此来取代之前的Actionbar。与Actionbar相比,Toolbar明显要灵活的多。它不像Actionbar一样,一定要固定在Activity的顶部,而是可以放到界面的任意位置。除此之外,在设计Toolbar的时候,Google也留给了开发者很多可定制修改的余地,这些可定制修改的属性在API文档中都有详细介绍。本文详细讲解了Toolbar的使用方法,能够帮助我们快速上手Toolbar。
  7. 《在Android应用中使用Clean架构》Clean是一个开源的Android 架构。写一个好的App是很复杂的,不仅要满足产品需求,还要健壮、好维护、好测试并且容易扩展和修改。这便是The Clean Architecture出现的原因。本文详细的介绍了Clean的使用方法,结合代码讲解了如何在Android应用中使用Clean架构。这里是英文原文。
  8. 《Android插件化原理解析——Hook机制之Binder Hook》:Android系统通过Binder机制给应用程序提供了一系列的系统服务,诸如ActivityManagerService,ClipboardManager, AudioManager等;这些广泛存在系统服务给应用程序提供了诸如任务管理,音频,视频等异常强大的功能。插件框架作为各个插件的管理者,为了使得插件能够无缝地使用这些系统服务,自然会对这些系统服务做出一定的改造(Hook),使得插件的开发和使用更加方便,从而大大降低插件的开发和维护成本。我们把这种Hook系统服务的机制称之为Binder Hook。本文对Binder Hook进行了详解,对于我们了解插件化原理大有帮助。这里是作者另外一篇介绍插件化原理的文章。
  9. 《开发一流的Android SDK:Fabric SDK的创建经验》:Twitter的Fabric是知名的注重质量的SDK,并已部署在数十亿的设备。来自Twitter的Ty Smith,揭示了Fabric团队创建Fabric的各种原则,特别是在Android方面。通过深入参与技术决策团队,Ty了解到很多信息,他展示了团队在创建这个SDK过程中学到的各种经验心得,关于稳定性、性能、SDK 体积控制、以及对于一些特殊情况的处理这些方面。无论你现在或将来想要建设一个SDK,通过本文(文中附视频)你将收益很多关于设计SDK的伟大想法。

开源项目

  1. Douya:Douya是一款开源的豆瓣客户端,项目采用了Material Design的设计风格。
  2. SwipeCardView:SwipeCardView是一个带渐变层叠动画的左右滑动效果(类似于探探左右刷脸效果)。
  3. CoolAndroidAnim:一个酷炫的android loading效果,作者的想法来源于nexus6.0系统的开机动画,也是对于它的一个模仿:从四个小球的 不同的组合动画演变成loading字样的效果。

调查报告

  1. 《Google Play榜单APP冷启动速度分析报告》:作者通过对Google Play商店中排名前100名APP的启动速度进行测量,得出了这份Google Play榜单APP冷启动速度分析报告。

感谢徐川对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群InfoQ好读者(已满),InfoQ读者交流群(#2)InfoQ好读者)。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT