Android开发周报:Google I/O大会日期确定、Bitmap内存详解

jopen 9年前

新闻

  1. 《2016 Google I/O大会日期确定》 :近日,谷歌正式宣布了一年一度的Google I/O开发者大会2016年的举办日期为5月18日—20日。过去的一年对谷歌来说相当重要,他们发布了安卓6.0,在自动驾驶汽车领域独领风骚,进行了架构重组,诞生了名为Alphabet的新公司。虽然取得了许多成绩,但并不代表谷歌会躺在功劳簿上睡大觉。在今年的Google I/O大会上,谷歌依然会带给大家许多惊喜。此外,微软的重新崛起和苹果的步步紧逼也让谷歌压力山大,如果谷歌不能拿出更好的产品,恐怕就会在三巨头的竞争中落于人后。
  2. 《ZeroTurnaround宣布JRebel for Android 1.0》 :ZeroTurnaround发布了JRebel for Android的第一个稳定版本。它是流行插件JRebel的Android版本,允许修改正在运行中的应用程序,而且不必重新部署或重启。JRebel for Android适用于Android Studio,可以从JetBrains插件库下载,支持所有运行Android 4.0及以上版本的手机和平板。ZeroTurnaround提供了为期21天的免费试用,起步价为每年49美元。

教程

  1. 《Android开发绕不过的坑:你的Bitmap究竟占多大内存》 :从事Android开发的同学几乎都遇到过OOM的问题。很多时候引起OOM的原因就是图片太大。因为图片消耗内存比较严重,所以在加载之前我们最好知道要加载的图片会占用多大的内存。 getByteCount 就是来干这件事情的,它是由Android API直接提供的一个方法。本文顺藤摸瓜,详细分析了该方法的实现过程。
  2. 《手把手教你用Kotlin实现ButterKnife》Kotlin 是一门与Swift类似的静态类型JVM语言,由JetBrains设计开发并开源。与Java相比,Kotlin的语法更简洁、更具表达性,而且提供了更多的特性,比如,高阶函数、操作符重载、字符串模板。它与Java高度可互操作,可以同时用在一个项目中。当然,大家对 ButerKnife 一定也不陌生。本文讲解了用Kotlin实现ButterKnife的完整过程,是我们学习Kotlin的优秀教程。
  3. 《如何选择compileSdkVersion, minSdkVersion和targetSdkVersion》 :当你发布一个应用之后,可能没过几个月 Android 系统就发布了一个新版本。但之前所有东西还能够正常工作,这是因为Android支持向前兼容。用户在升级到新版Android的时候,用以前版本的SDK构建的现有应用理论上应该不会出问题。这就是compileSdkVersion, minSdkVersion和targetSdkVersion的作用,他们分别控制可以使用哪些API,要求的API级别是什么,以及应用的兼容模式。阅读文章,了解更详细的内容。
  4. 《AndroidFlux-异步请求和网络》 :Flux是一个由非死book开发的、利用单向数据流实现的应用架构,用于React。Flux应用有三个主要的部分组成:调度程序、存储和视图(React 组件)。在移动开发中,异步网络操作必不可少,本篇着重介绍在Flux模式中如何处理异步操作的问题,并深入一些细节,比如如何在异步操作时显示异步状态。另外,网络操作仅仅是异步操作的一种,最后扩展ActionCreator的语义来处理更多的业务逻辑。
  5. 《Android工具箱之Context解析》 :Context是Android开发过程中出现频率最高的类。通过Context可以获取应用状态的信息。有了Context,activitys和Fragments以及Services能够使用资源文件、图片、主题以及其他的文件夹内容。Context也可以用于Android自带服务,例如inflate,键盘,以及content providers。本文从Context的用途、适配器、内存溢出、Application与Context等几个角度分析了Context,对于我们深入了解Context有一定的帮助。
  6. 《Android应用开发之自定义View触摸相关工具类全解》 :本文是对于自定义View中工具类、事件传递的一个总结。从ViewConfiguration基础参数工具类、VelocityTracker手势速率工具类、GestureDetector手势工具类等几个方面总结了自定义控件常用的知识点。其实关于自定义控件的基础触摸相关的内容并不是很多,掌握了文章中提到的这些内容,相信你就能够玩转Android自定义控件触摸相关的处理。
  7. 《事件总线源码分析》 :在Android中处理不同组件之间的事件传递依靠广播机制,即Intent/BroadcastReceiver机制,其原理类似于传感网中的Ad hoc网络模式,所有组件处在一种无序状态。事件总线机制则引入中心控制节点来集中管理事件,类似于移动通信网络中的基站功能。本文以EventBus源码为例,请解了Android中事件总线的一些知识点。

开源项目

  1. AutoRobRedPackage :这是一款自动抢微信红包的开源项目,自带关闭窗口功能。
  2. FastAdapter :RecyclerView是Android中最常用的组件之一,使用RecyclerView的时候,必须实现Adapter中提供的相应接口。所以每次调用RecyclerView时,就需要重复实现Adapter中的这些方法。FastAdapter就是用来解决重用问题的,使用FastAdapter后,我们就只需关心item与view的部分就可以了。
  3. GifView :这是一个播放Git图片的库,支持播放、暂停、停止功能。

图书

  1. 《Gradle for Android(译)》 :很多同学都写过有关于Gradle的文章,但大家侧重点各有不同。Gradle for Android是一本详细介绍Gradle的图书。该项目是《Gradle for Android》的中文翻译,推荐大家仔细阅读,了解Gradle的工作原理。

工具

  1. pngquant :pngquant是一个有损的png压缩开源库,提供了命令行形式和源码库形式。通过这个库的转化可以显著减少png文件大小(通常减少70%),并且保持原有透明度通道。另外,生成的图片文件可以兼容所有现代web浏览器,在IE6下比24-bit PNGs也有更好的表现。

来自: http://www.infoq.com/cn/news/2016/01/Android-weekly-goole-bitmap