剑客
关注科技互联网

Android开发周报:Android Studio 2.2发布、微信热补丁方案开源

新闻

  1. 《Android Studio 2.2发布:改进平台支持 速度提升更智能》
    :Google刚刚发布了Android Studio 2.2,这款IDE(集成开发环境)旨在帮助开发者们从头打造Android应用。老用户可以直接在软件的设置项中点击更新,新手们则可以到官方下载页查看最新内容。Android产品经理Jamal Eason在开发者博客文章中总结了本次更新的内容,主要集中在速度、智能和Android平台支持三个方面。

  2. 《Chrome PC能运行Android应用了》
    :目前智能手机上的应用数量已经超过PC,其中一些实用App更是受用户喜爱。于是便有不少用户希望能够在PC上运行智能手机应用,免去一手拿鼠标、一手抓手机的不便。

    现在,谷歌表示用户们的这一期需已经实现,最新版本的Chrome OS已经可以支持Android App。

  3. 《谷歌测试Android/Chrome OS混合系统 代号“仙女座”》
    :据外媒报道,谷歌将在10月4日举行的发布会上推出新硬件,但是近期有消息称,此次活动的最重要部分可能不是硬件,而是软件。消息称,传闻已久的Android/Chrome OS混合系统内部代号为“Andromeda”(仙女座)。目前还不清楚这款系统是否会登陆上市近两年的Nexus 9,但是谷歌正在该平板电脑上测试这一系统。

教程

  1. 《微信Tinker的一切都在这里,包括源码(一)》
    :最近半年以来,Android热补丁技术热潮继续爆发,各大公司相继推出自己的开源框架。Tinker在最近也顺利完成了公司的审核,并非常荣幸的成为github.com/Tencent上第一个正式公开的项目。在笔者看来Android热补丁技术应该分为以下两个流派:Native流派与Java流派。他们都有着自己的优缺点,它们具体差异大家可参考上文。事实上从来都没有最好的方案,只有最适合自己的。

  2. 《Android DataBinding 数据绑定》
    :数据绑定简单来说,就是通过某种机制,把代码中的数据和xml(UI)绑定起来,双方都能对数据进行操作,并且在数据发生变化的时候,自动刷新数据。在2015年的谷歌IO大会上,Android UI Toolkit团队发布了DataBinding 框架,将数据绑定引入了Android开发,当时还只支持单向绑定,而且需要作为第三方依赖引入,时隔一年,双向绑定这个特性也得到了支持,同时纳入了Android Gradle Plugin(1.5.0+)中,只需要在gradle配置文件里添加短短的三行,就能用上数据绑定。

  3. 《Retrofit中如何正确的使用https》
    :信息安全对于每一个用户、厂商来说都是非常重要的。Https是客户端与服务器端通信安全的常用方式。证书锁定是用来限制哪些证书和证书颁发机构是可信任的。需要我们直接在代码中固定写死使用某个服务器的证书,然后用自定义的信任存储去代替系统系统自带的,再去连接我们的服务器,我们将这种做法称之为证书锁定。本文为我们介绍了证书锁定的使用、原理及优缺点,以及对介绍了客户端使用自定义证书。

  4. 《Android耗电量测试及排查方法》
    :Android应用耗电量一直是比较麻烦的,也是大家所关注的问题,在4.4系统之前,google一直没有相关API暴露给外面,所以要研究4.4系统以前的耗电量,就需要研读Android的源码;5.0之后的系统,就可以使用adb命令直接获取。仔细查看BatteryStatsHelper中的processAppUsage这个类,就可以看出,每个app的耗电量主要由以下几个方面决定:cpu的耗电量、wakelock的耗电量、wifi的耗电量、移动数据的耗电量和其他传感器的耗电量。

  5. 《Android混淆从入门到精通》
    :作为Android开发者,如果你不想开源你的应用,那么在应用发布前,就需要对代码进行混淆处理,从而让我们代码即使被反编译,也难以阅读。混淆概念虽然容易,但很多初学者也只是网上搜一些成型的混淆规则粘贴进自己项目,并没有对混淆有个深入的理解。本篇文章的目的就是让一个初学者在看完后,能在不进行任何帮助的情况下,独立写出适合自己代码的混淆规则。

  6. 《App优化之消除卡顿》
    :用户对卡顿的感知,主要来源于界面的刷新,而界面的性能主要是依赖于设备的UI渲染性能。如果我们的UI设计过于复杂,或是实现不够好,设备又不给力,界面就会像卡住了一样,给用户卡顿的感觉。本文详细分析了可能引起卡顿的一些原因及解决办法。

  7. 《拥抱SVG:苦恼于图片适配 in Android?》
    :SVG是指可伸缩矢量图形 (Scalable Vector Graphics),它不同于传统的位图,不是通过存储图像中每一点的像素值来保存与使用图形,而是通过XML文件来定义一个图形,通过一些特定的语法和规则来绘制出我们所需的图像——同样是使用一张图片,SVG 的方式是事先定义好怎么去画这个图,然后等要用的时候再把它去画出来,而使用传统的位图的话就是已经有了画出来的图,然后要用的时候直接把画好的图拿出来用。

  8. 《基于Instant Run思想的HotFix方案实现》
    :近一年来,各种HotFix库层出不穷,各家大厂百花齐放,QQ空间最早提出了自己的热修复实现,接着阿里也开源了自家的AndFix(貌似阿里百川已经给开发者提供了新的Hotfix功能),现在微信又有了Tinker,各家都如此关心HotFix,无非是线上版本的bug对产品影响太大,尤其是DAU比较高的app,更是不能容忍。美团基于Instant run原理推出了自己的Hotfix库,不过貌似没有开源,于是自己就按照Instant run的原理也鼓捣出了一个简单的HotFix实现,可以在不重启App和Activity的条件下实现修复。代码地址在 这里

开源项目

  1. SuperPlayer
    :SuperPlayer 是一个基于IjkPlayer的控制器,支持手势操作,滑动快进,快退,支持,上滑音量亮度的变化,支持指点位置播放,播放源的切换

  2. tinker
    :这是Github上腾讯开源的第一个项目。tinker是微信的热修复解决方案,支持dex、library、resources的动态更新。

  3. BookReader
    :“任阅”,开源小说阅读器,高仿追书神器,实现追书推荐、标签检索、翻书效果、文章阅读、缓存章节、日夜间模式、文本朗读等功能。

  4. CouponView
    :这是一个半圆锯齿背景虚线边框组合实现简单优惠券效果,可自定义大量参数。

感谢徐川对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina
)关注我们。

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址