[关闭]
@Sniper 2016-09-13T03:00:33.000000Z 字数 2638 阅读 1307

Android开发周报:热修复技术选型、Android 6.0运行时权限管理

Android周报 Android 移动


摘要:谷歌开始向Android One手机推送安卓7.0,研究报告称Android Accessibility并不安全。本期周报带来了热修复、内存泄露、Android 6.0运行时权限、组件化等方面的技术干货,欢迎阅读。

新闻

  1. 《谷歌开始向Android One手机推送安卓7.0》:按照以往的惯例,谷歌的Nexus手机和平板将享受到第一时间升级至最新版Android系统的优待,今年也不例外,几天前谷歌在修复电池和性能问题之后终于向Nexus 6P推送了Android 7.0 Nougat正式版。而另一方面,Android One手机则应该是第二波收到Android 7.0更新的机型。据最新报道,谷歌已经在开始向Android One手机推送Nougat更新了。

  2. 《Android Accessibility安全性研究报告》:Android Accessibility被称为无障碍或残疾人模式,设计初衷是为了帮助特殊用户更好地使用Android设备。从使用Android Accessibility技术的样本占样本总数百分比看,截止2012年仅有0.015%,截止2015年不足0.5%,2016年上半年占比超过2.6%。从使用Android Accessibility技术场景看,可以分为合理利用、提升体验、灰色地带和肆意滥用。

  3. 《谷歌将弃用通过“网络视图”等方式发送OAuth请求》:Google身份团队一直致力于帮助Google用户以安全无缝的方式使用他们的Google帐户登录第三方应用,以及让用户能够在必要时将其帐户中的特定信息(如日程或联系信息)分享给其他应用。 在后台,这些交互是通过OAuth请求进行的,多年以来,Google 支持开发者以多种方式实现与我们之间的OAuth流程。为了提高安全性和易用性,Google不久将会终止对其中一种方式的支持。

教程

  1. 《Android热修复技术选型——三大流派解析》:2015年以来,Android开发领域里对热修复技术的讨论和分享越来越多,同时也出现了一些不同的解决方案,如QQ空间补丁方案、阿里AndFix以及微信Tinker,它们在原理各有不同,适用场景各异,到底采用哪种方案,是开发者比较头疼的问题。本文希望通过介绍QQ空间补丁、Tinker以及基于AndFix的阿里百川HotFix技术的原理分析和横向比较,帮助开发者更深入了解热修复方案。

  2. 《Android的OOM详解》:OOM(out of memory)即内存泄露。一个程序中,已经不需要使用某个对象,但是因为仍然有引用指向它垃圾回收器就无法回收它,当该对象占用的内存无法被回收时,就容易造成内存泄露。本文为我们讲解了OOM的原因以及如果避免OOM。

  3. 《 Android 6.0运行时权限管理最佳实践》:在旧的权限管理系统中,权限仅仅在App安装时询问用户一次,用户同意了这些权限App才能被安装。在Android6.0开始,App可以直接安装,App在运行时一个一个询问用户授予权限,系统会弹出一个对话框让用户选择是否授权某个权限给App,当App需要用户授予不恰当的权限的时候,用户可以拒绝,用户也可以在设置页面对每个App的权限进行管理。这个对话框不是开发者调用某个权限的功能时由系统自动弹出,而是需要开发者手动调用,如果你直接调用而没有去申请权限的话,将会导致App奔溃。本文为我们详细讲解了Android 6.0的权限管理知识。

  4. 《Android内存泄漏的简单检查与分析方法》:内存泄漏问题大约是Android开发者最烦恼的问题之一了,内存泄漏不可小视,在Android开发中,比如说一个Activity页面会占用许多资源开销,如果页面发生泄漏,关闭以后页面没有能被系统回收,对应用程序的伤害是很大的。本文详解了如果发现内存泄漏、发现后使用工具来分析内存泄漏等知识。

  5. 《Android深入理解Loader机制,让APP轻装上阵》:Android开发者都经历过APP UI开发不当会造成OverDraw,导致APP UI渲染过慢,但是很多人却没听过OverLoad,OverLoad一般是由于开发者在主线程进行耗时操作,导致程序变慢,甚至出现的ANR的现象,那么Android早已为这种现象提供完美的解决方案,就是本文给大家带来的Android Loader机制。

  6. 《iOS App组件化开发实践》:当业务变得越来越复杂,项目变的越来越庞大,参与同一项目的开发人员越来越多的时候,项目管理者就需要考虑引入组件化或插件化,以这种方式去维护项目、添加功能。组件化其实就是对项目的解耦,使开发人员各司其职,能够更专注于与自己相关的业务。一般大的厂商都会有组件化的方案。本文作者介绍了自己的实践之路,如果你的团队或项目还没有进行组件化,那么可以参考作者的思路。

  7. 《Fastlane-移动开发自动化之道》:在程序的世界里,一切重复性的,流程化的工作都可以交给自动化去完成。在移动开发中也是如此:其实写代码只是我们开发过程中的一部分,除此之外我们还需要进行编译,打包,上传,部署,库管理,版本控制等等Coding之外的杂事,而正是这些乏味而重复的工作占用了我们宝贵的时间。本文为大家介绍其中一套用Ruby语言编写的自动化工具集和框架:Fastlane,这个Github上的明星项目截止到目前共获得1万多个Star,并且还有1500多个Fork。

  8. 《SQLite 中的各种限制》:SQLite最初被设计成避免任何限制策略的数据库。当然,运行任意程序的机器都有特定大小内存和磁盘空间限制。但是在SQLite,哪些限制没有被定义。该策略是,如果有足够内存并且可以运行在32位机器上,那么它应该可以工作。不幸的是,没有限制策略已经暴露出问题了。

开源项目

  1. LingDong2.0:这是一个面对面文件快传的项目。

  2. GeekNews:GeekNews是一款开源的新闻阅读App,使用了目前比较流行的一些技术,包括Material Design、MVP、RxJava、Retrofit、Dagger2、Realm、Glide等。

  3. TedBottomPicker:一款从底部弹出的图片选择器,支持滑动到顶部的功能,用户体验比较友好。

工具

  1. Exynap:一款Android Studio代码自动补全插件,补全功能相当强大,学习成本也很低,推荐大家使用。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注