Android开发周报:Android M即将发布、弹幕源码开放送
pjp 10年前
原文 http://www.infoq.com/cn/news/2015/05/Android-M-5-x
新闻
- 《谷歌即将发布Android M系统》 :Google本周放出了2015年I/O开发者大会的《会议日程安排表》。根据日程安排和内容描述看,最新版本的Android M操作系统预计会在此次大会中首度亮相。Google在稍早时候公布的日程安排中曾提到了这款最新版本的Android操作系统。虽然公司随后撤下了有关描述,但Android M的功能改进介绍会是I/O大会的一个重点。据悉,新版本的Android M特别强调了在工作场合的应用。
- 《Android 版本分布图曝光 5.X飙升至10%》 :近日最新的Android系统分布图得到曝光,其中Android 5.X版本的表现让人眼前一亮。从系统分布图来看,Android 4.X依然是绝对主力,其中4.0.3-4.0.4占比5.3%,而4.1.X-4.2.X占比33.7%,4.3和4.4的占比分别是5.5%、 39.8%。值得一提的是,Android 5.0的占比从之前的5%飙升至9%,而5.1也从0.4%升至0.7%。
二者加起来接近10%。 - 《Android Wear客户端应用更新:支持中文》 :Google已经发布智能手表系统Android Wear一段时间了,也已经发布了安卓设备上的配套客户端。不过,Android Wear系统及其配套的App一直都没有中文语言支持,Google最初并没有打算在中国开展业务。现在,Google发布了新版的Android Wear客户端,加入了中文语言支持,也许Google有意在中国开展Android Wear相关业务。
教程
- 《Android apk 防止反编译技术第五篇-完整性校验》 :所谓完整性校验就是用各种算法来计算一个文件的完整性,防止这个文件被修改。其中常用的方法就是计算一个文件的CRC32的值或者计算一个文件的哈希值。我们在防止apk被反编译的方法中也可以采用这种方法。我们知道apk生成的classes.dex主要由java文件生成的,它是整个apk的逻辑实现。所以我们可以对classes.dex文件进行完整性校验,来保证整个程序的逻辑不被修改。如果我们想要保证整个apk文件的完整性,也可以对整个 apk文件进行完整性校验。点击文章,查看详细实现方案。
- 《Canvas之translate、scale、rotate、skew方法讲解》 :本文是关于Canvas、自定义View的相关知识。Canvas大致可以分为三类: save、restore 等与层的保存和回滚相关的方法;scale、rotate、clipXXX 等对画布进行操作的方法;drawXXX 等一系列绘画相关的方法。掌握了这三点,关于View绘制方面的知识就可以说基本毕业了,以后只能靠自己的悟性了。本文详细讲解了Canvas的 translate(平移)、scale(缩放) 、rotate(旋转) 、skew(错切),并且提供了实现代码。
- 《安卓自动缩放布局,解决屏幕适配问题》 :做过安卓开发的同学都知道,屏幕适配是一件非常困难的事情。Google官方的解决方案是:screens_support 需要写多个layout文件以及dimens.xml,工作量大不说,维护也麻烦。其实很多时候我们的需求很简单,就是要求不同的屏幕看上去效果一样就可以了。本文作者的解决方案是根据屏幕大小重新对布局以及布局内部对象的大小进行调整。也有的同学提出了采用百分比的方式解决该问题。不过百分比的方式实现相比本文的方法复杂一些,而且也不是完全解决适配问题。详细信息可以查看该文 《屏幕适配方案》 。
- 《Android属性动画完全解析》 :属性动画对补间动画进行了很大幅度的改进,之前补间动画可以做到的属性动画也能做到,补间动画做不到的现在属性动画也可以做到了。本文主要介绍了 ValueAnimator和ObjectAnimator的高级用法。作者给出了两个Demo,示例了使用ValueAnimator进行View移动,使用ObjectAnimator实现颜色渐变的效果。
- 《理解TCP/IP网络栈&编写网络应用(上)》 :很多公司招聘需求上都会有这么一条:熟悉TCP/IP网络协议。虽然我们每天都上网,都要coding,但如果没有好好学习过计算机网络,对于TCP /IP这种相对”底层“知识还远远谈不上理解。每个技术同学了解网络协议属于基本功,特别是移动端的开发人员,需要频繁的和服务器端进行数据交互及网络优化。本文是一篇描述TCP网络栈原理的文章,这里是 英文原文 。
- 《用XML写出原生设置界面》 :几乎所有的应用都会有设置和关于页面。我们一般的实现方式是通过自定义嵌套布局来实现。但这种实现方式不仅麻烦而且还是一个体力活,有时候还不符合 Android规范。其实Android SDK自带了设置界面,开发者可以根据相应的Api快速实现美观、规范的设置页。阅读文章,看看作者是如果快速实现设置页与关于页的。
- 《Android 10ms问题:关于Android音频路径延迟的解释》 :相信很多同学都看不懂这个题目,什么10ms、音频路径延迟,开发N年了也没听过这些概念。笔者也是看了后才明白题目的意思。国内很少有公司研发音频相关的App,包括手机厂商及ROM团队,所以10ms问题对于大多数开发者来说没有任何概念。阅读本文,给自己充充电。
- 《如何检查 Android 应用的内存使用情况》 :Android是为移动设备而设计的,所以应该关注应用的内存使用情况。尽管Android的Dalvik虚拟机会定期执行垃圾回收操作,但这也不意味着就可以忽视应用在何时何处进行内存分配和释放。为了提供良好的用户体验,做到系统在不同应用间流畅切换,当用户和应用无交互时,避免应用不必要的内存消耗是很重要的。
开源项目
- ijkplayer :ijkplayer是基于FFmpeg n2.6Android/iOS 的视频播放器,同时提供了Android和iOS的版本,Readme给出了详细的编译指南,并且提供了实现Demo。我们可以利用该项目实现一个功能强大的视频播放器。
- MaterialViewPager :ViewPager的Material Design版本,效果和Google Play中的ViewPager几乎一样,还提供了多种动画效果。开发者可以很方便的集成到自己的项目中。
- DanmakuFlameMaster :本周B站连续放大招,开源了号称Android上最好的弹幕引擎。DanmakuFlameMaster使用多种方式 (View/SurfaceView/TextureView)实现高效绘制,采用B站xml弹幕格式解析,支持自定义字体,支持多种弹幕参数设置等。功能强大,应该是视频类应用的大福利。
工具
- Androidtool-mac :Mac用户的小福利来了,该工具可以对Android设备进行截屏、录制视频(Gif和mp4),也可以直接安装Mac上的apk文件。开发者可以使用 AndroidTool收集Bug报告,还可以运行脚本。最后说明一点:该工具是由swift编写,你是不是也应该学学Swift了?