Android开发技术周报 Issue#96

九月 05, 2016 0 条评论 AndroidDevWeekly

教程

  1. 浅析 Android 打包流程

    和一些同行交流的过程中发现部分朋友实际上对 Android 打包流程基本没有比较清晰完整的概念,所以本文主要聊一聊 Android 的打包流程,以及目前已有的或多或少可以与 Android 打包搭一点边的开源技术,互相学习。 更好的了解 Android 的打包流程,有助于我们做一些针对编译期的优化,包括但不限于提高打包速度(毕竟时间就是金钱,我的朋友),提高 Android 应用的 hack 难度增加安全性,减少 Android 安装包的体积,完成一些自动化的编码减少编码压力等。

  2. Android构建过程分析

    或许我们都知道Android构建会经历资源合并打包、源码编译、dex生成及打包签名等步骤,可是不是每个人对这些过程中发生的事情都了然于心呢?或许不然,于是带着好奇心开始了对Android gradle plugin的学习,现简要整理一下。如果项目引入了android support包,又或许依赖于其它第三方aar库,那构建前会将aar解压并与本地资源合并,这里的资源主要包括assets目录,res目录及Androidmanifest.xml。

  3. 基于RxJava的一种MVP实现

    RxJava是一个实现Java响应式编程的库,让异步事件以序列的形式组织。MVP则通常用来将View业务层与Model层分离开来,两者结合起来可轻松实现业务解耦、线程控制、单元测试等等强大功能

  4. 为什么图片反复压缩后会普遍会变绿而不是其他颜色?

    问题出在 Android 提供的压缩图片接口上,准确的说是一个 Android 里一个叫做 Skia 的库上。而这个 bug 在 2016 年 4 月中旬被修复了,如果按照 Android 的发行来看,那就是从 Android 7 (Nougat) 开始才消除这个问题。

  5. Android 专项测试之GPU测试探索

    我们在安卓上进行性能测试时,如果想获取CPU以及内存等常用性能指标,linux系统自身就提供了现成的方法,谷歌官方甚至公司内部也都提供了大量功能强大的分析工具。而相比之下,想要获取GPU的相关指标则没那么容易,甚至我们对GPU应该使用什么指标衡量都几乎一无所知。这一方面是由于系统没有提供相关接口与命令,另一方面似乎业界目前对于GPU的关注度不足,相关积累与沉淀较少,鉴于此,个人感觉GPU测试这一块也可以作为终端专项后面需要关注及攻克的课题。

  6. 解析ViewTreeObserver源码,体会观察者模式、Android消息传递(下)

    继上篇内容,本文介绍 ViewTreeObserver 的使用,以及体会其所涉及的观察者模式,期间会附带回顾一些基础知识。最后,我们简单聊一下 Android 的消息传递,附高清示意图,轻松捋清整个传递过程!在开始下篇之前,有必要回顾一下上篇提及的 ViewTreeObserver 的概念:ViewTreeObserver 是被用来注册监听视图树的观察者,在视图树发生全局改变时将收到通知。这种全局事件包括但不限于:整个视图树的布局发生改变、在视图开始绘制之前、视图触摸模式改变时

  7. Android 7.0 Nougat 多窗口 秘の初体験

    谷歌于8月22日也就是北京时间23日发布了Android 7.0 Nougat牛轧糖的正式版,爱哥也及时将手中的Nexus5X刷到了正式版7.0,把玩了一段时间后爱哥觉得在普通应用的功能上7.0木有太大的改进,当然这是相比5.0而言,5.0爱哥觉得算是Android改动较大的一个版本,刚出来就给人各种惊喜,相对而言7.0则没那么多亮点,一个主要的原因是7.0中不少功能在国内各大各小的UI系统上都早有雏形甚至体验比7.0更好,就拿7.0让人期待的分屏来说,早在某米和某族等国产神机上就有了,某族上的一些应用分屏甚至做得更好

  8. JAVA代码覆盖率工具JaCoCo-实践篇

    Android项目只能使用JaCoCo的离线插桩方式。为什么?主要是因为Android覆盖率的特殊性:一般运行在服务器java程序的插桩可以在加载class文件进行,运用java Agent的机制,可以理解成"实时插桩"。JaCoCo提供了自己的Agent,完成插桩的同时,还提供了丰富的dump输出机制,如File,Tcp Server,Tcp Client。覆盖率信息可以通过文件或是Tcp的形式输出。这样外部程序可很方便随时拿到被测程序的覆盖率。

  9. JAVA代码覆盖率工具JaCoCo-踩坑篇

    JAVA代码覆盖率工具JaCoCo-原理篇和JAVA代码覆盖率工具JaCoCo-实践篇已经给大家介绍过了,本篇为踩坑篇,这里的话题不是说明JaCoCo有什么问题,而是把过程中遇到的几个棘手问题的解决方法分享给大家,只要细心,放下焦虑的心态,问题都可以解决的。在项目中使用JaCoCo覆盖率的时候,也遇到过各种奇葩的问题,在这里列出来分享下,问题和实际的项目关系密切,希望对有遇到过相似问题的童鞋有所启发。

开源库&项目

  1. Amigo

    一个由来自饿了么团队开源的 Android Hotfix 新方案

  2. RecyclerViewSnap

    RecyclerView snapping example with SnapHelper

  3. Particle

    很酷的粒子动画效果

  4. MagicIndicator

    一个强大、可定制、易扩展的 ViewPager 指示器框架

  5. SmartisanPull

    仿锤子阅读下拉刷新效果

  6. StateView (By C君)

    StateView一个轻量级的控件, 继承自View, 初始状态下是不可见的, 不占布局位置, 占用内存少。 相对于其他具有同样功能的一些控件, StateView更具有优势

  7. GpCollapsingToolbar

    Google Play app behaviour collapsing toolbar

  8. Reduks

    A "batteries included" port of Reduxjs for Kotlin+Android

  9. loaderviewlibrary

    Library that enables TextView of ImageView to show loading animation while waiting for the text and image get loaded

  10. unipiazza-android-twostepslogin
    An Android library that helps you to make a cool two steps login in Material Design way. Such as Google web login

  11. TextViewExpandableAnimation

    Expandable TextView With Smooth Transition Animation

  12. UltraIndicator

    A custom indicator for ViewPager

  13. WavyLineView

    A custom wavy line view for android.

工具

  1. Awesome adb

    ADB 用法大全

视频

  1. 首次 Sketch 官方授权的线下活动嘉宾分享视频出炉

  2. 精准测试介绍

设计

  1. 产品设计的思考方式系列

技术之外

  1. 一家初创公司的 CTO 应当做什么?

版权声明

欢迎自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 4.0

捐赠

如果你觉得Android开发技术周报对您有所帮助,请考虑对本周报捐赠支持。支持我把Android开发技术周报做的更好,帮助更多的人,金额随意,您的捐赠将用于支付服务器和邮件推送服务的费用。去捐赠

脉脉不得语
ZhengZhou Website
{Developer=菜鸟Android程序猿; Blog=http://inferjay.com; Github=http://github.com/inferjay}