Android 开发周报:Android Studio2.0 发布、Activity 动态创建

  • 郭亮

2015 年 12 月 8 日

话题:移动Android语言 & 开发架构

新闻

  1. 《Android Studio 2.0 发布 增加代码热更新功能》:在近日的 Android 开发者大会中,Google 高调发布了 Android Studio 2.0。然而就在不到一周之前,Google 才刚刚发布了 Android Studio 1.5,许多开发者还没来得急更新。Android Studio 2.0 主题是提速,新特性主要包括代码热更新(Instant Run)、GPU 分析工具、Gradle 速度提升、高性能模拟器等。
  2. 《2015 年 Q3 全球智能手机销量 3.24 亿部,均价 1880 元》:11 月 30 日消息,德国知名调研机构 GFK 今日正式公布了 2015 年三季度全球智能手机市场统计报告,数据显示,2015 年 Q3 全球智能手机销售量达 3.24 亿部,平均售价 (ASP) 为 294 美元,约合人民币 1880 元。中国智能手机市场销售收入达到 280 亿美元,同比增长 30%。
  3. 《安卓 7.0 将自带类似苹果 3D Touch 功能》:Android 铁杆粉丝已经购买了最新的运行 Android 6.0 系统(Android M)的 Nexus 手机,除了这部分粉丝之外,更多的人还在吃着 Lollipop 或者更早的甜品系统。我们现在谈 Android N,也就是 Android 7.0 系统好像有些太早了,这款系统的初次亮相也要等到明年 5 月份或者 6 月份的 Google I/O 大会。

教程

  1. 《Android 开发必备知识:我和 Gradle 有个约会》:和 Ant 一样,Maven 可以用来构建 Java 工程,同样 Maven 的配置用 xml 来描述;Maven 可以管理依赖,它可以让你做到一句话添加第三方类库到项目中。Gradle 和 Maven 的作用相似,是帮助我们构建 Android 工程的工具,Gradle 也是谷歌推荐的工具,本文详细分析了 Maven、Gradle 的工作原理、使用方法以及 Android 中项目构建的基础知识。
  2. 《Android 动态加载黑科技之动态创建 Activity》:我们可以通过代理的方式实现动态启动插件 Apk 里的 Activity,但由于插件里的 Activity 没在主项目的 Manifest 里面注册,所以无法经历系统 Framework 层级的一系列初始化过程,最终导致获得的 Activity 实例并没有生命周期和无法使用 res 资源。而动态创建 Activity 模式,被动态创建出来的 Activity 类是已经在主项目里面注册的,它是一个标准的 Activity,有着自己的 Context 和生命周期,不需要代理的 Activity。运行时动态创建并编译一个 Activity 类的想法不是天方夜谭,我们可以使用动态创建类的工具 dexmaker 和 asmdex 来完成。本文详细解析了动态创建 Activity 的过程。阅读原文,十分钟掌握该项黑科技。
  3. 《Android 第三方 Push 推送方案使用调查》:这是一个关于 Android 第三方推送的调查。目前市场上很多三方推送方案,比较知名的有较早的 JPush、个推、腾讯的信鸽、小米推送、百度推送、华为推送、友盟推送等。该项目已经收集到了大量开发者的反馈信息,这些信息对于我们选择推送服务有一定的参考价值。快去看看你的产品适合选择哪家的推送服务吧。
  4. 《Instant Run 浅析》:Android 开发最烦人是就是编译过程,与 iOS 中的模拟器相比,Android Studio 自带的虚拟机启动、运行速度都非常的慢,即使在真机上每次编译也很慢。Android Studio 2.0 带来的革命性功能便是 Instant Run,据谷歌官方称:代码变动,一秒生效。使用 Instant run,在第一次运行之后,以后的修改只需点击闪电编译图标,就可以快速的在真机中看见修改后的结果,而不需要重新加载 Activity。最重要的不仅仅是 UI 可以直接显示,还包括代码逻辑。Android 开发者终于不用再苦苦等待 build 了。这里是另外一篇关于 Instant Run 使用方法的文章。
  5. 《使用 JS 构建跨平台的原生应用(二):React Native for Android 调试技术剖析》:React Native 能够改变目前移动跨平台的难题,但对于一直开发原生应用的 Android 或 iOS 开发者来说,RN 还是有一定的技术门槛,因为 React Native 更多的是利用前端知识进行开发。本文出自淘宝前端技术博客,详细解读了 React Native for Android 调试方法。本文对于我们快速学习前端技术有很大帮助。这里是 React Native for Android 环境搭建的一篇文章。
  6. 《Android 制作粒子爆炸特效》:MIUI 系统中有一个非常赞的效果:卸载 App 时,会利用 icon 生成粒子脱落的动画。本文作者自己动手实现了这种粒子效果。实现方法分为三步,首先获取控件背景 bitmap,其次将背景 bitmap 转换成 Particle 数组,然后生成爆炸场地,开始爆炸动画流程,最后就是计算粒子的运动轨迹。阅读文章,了解详细实现过程。作者在文章的末尾给出了源码地址。
  7. 《各大热补丁方案分析和比较》:最近开源界涌现了很多热补丁项目,但从方案上来说,主要包括 Dexposed、AndFix 和 ClassLoader 三种。前两个都是阿里巴巴内部的不同团队开发的(淘宝和支付宝),后者则来自腾讯的 QQ 空间团队。虽然都是热更新技术,但这三种方案的原理徊然不同,本文详细分析这三种热补丁方案的实现原理及各自的优缺点。

开源项目

  1. WeChatLuckyMoney:首先这是一个能够让你的钱包鼓起来的开源项目,其次才是一个罕见的项目。该项目利用 Android 的无障碍服务功能实现了一款微信抢红包插件。该项目的原理是实时进行屏幕内容检测,然后在特定的时刻进行自动化点击。具体实现过程,请参考源码。
  2. floatingsearchview:floatingsearchview 实现了浮动搜索界面。搜索功能是最常用的功能之一,开发者可以通过几行代码将该功能添加到自己的工程中。
  3. android-classyshark:这是一个非常有意思的项目,能够将你的代码重新排版。请大家移步项目地址,直接很效果图。
  4. android-card-slide-panel:该项目模仿了探探首页卡片左右滑动的效果。用户体验很赞,滑动流畅,卡片 view 无限重生。

工具

  1. Scalpel:JakeWharton 是 Android 武林界的绝世高手, 他有三把好刀:Dagger、ButterKnife、Scalpel。Scalpel 能够查看布局层次结构三维效果。只需要简单几行代码就可以将 Scalpel 集成到我们的应用中,然后就能够将布局层次结构进行三维效果的展示,同时支持三维的移动和缩放,效果十分炫酷。

视频

  1. 谷歌开发者社区 11 月更新的上百部 Google 技术视频:在 11 月份快要结束的时候,谷歌开发者社区更新了上百部技术视频,涉及的面很广,包括设计、访谈、Google Play 技巧、Android 年度技术大会、Android 性能系列、Android 开发技术视频、Android 开发工具视频、Android 开发者故事等方面。
移动Android语言 & 开发架构