• Android开发技术周报 Issue#98


    新闻

    1. Android Studio 2.2发布:改进平台支持 速度提升更智能

    2. Nexus 5非官方吃上Android 7.0 Nougat

    3. Google Pixel新机可能允许双安卓系统启动

    教程

    1. C++11学习

      当Android用ART虚拟机替代Dalvik的时候,为了表示和Dalvik彻底划清界限的决心,Google连ART虚拟机的实现代码都切换到了C++11。C+11的标准规范于2011年2月正式落稿,而此前10余年间,C++正式标准一直是C++98/03[①]。相比C++98/03,C++11有了非常多的变化,甚至一度让笔者大呼不认识C++了[②]。不过,作为科技行业的从业者,我们要铭记在心的一个铁规就是要拥抱变化。既然我们不认识C++11,那就把它当做一门全新的语言来学习吧。

    2. 推送 从入门到放弃

      推送简直就是一种轻量级的骚扰方式自从有了推送,各个公司基本上都在使用推送,这确实是一个比较好的提醒方式,Android较iOS强的一个部分,也就是在于Android的Notification。Google教育我们利用好Android的通知模块,做更多友好的交互,可这句话,翻译成中文,不知不觉,就变成了在Notification中推送各种广告,而且仅仅就是一些广告,Notification各种牛逼的功能,完全不需要,这也违背了Google设计Notification的初衷。更关键的是,现在随便找一款App,没有推送的真是凤毛麟角,更可恶的是,做外卖的App给我推送奥运新闻,一条新闻十几个App推送,以至于现在很多用户都非常反感各种推送广告,就我本人而言,基本上会禁用所有广告类的App的推送。

    3. Android LowMemoryKiller原理分析

      Android的设计理念之一,便是应用程序退出,但进程还会继续存在系统以便再次启动时提高响应时间. 这样的设计会带来一个问题, 每个进程都有自己独立的内存地址空间,随着应用打开数量的增多,系统已使用的内存越来越大,就很有可能导致系统内存不足, 那么需要一个能管理所有进程,根据一定策略来释放进程的策略,这便有了lmk,全称为LowMemoryKiller(低内存杀手),lmkd来决定什么时间杀掉什么进程.

    4. 拆轮子系列:拆 RxJava

      RxJava 这个项目已经持续四年半了,第一个 commit 是在 2012 年 3 月 18 号。我从 14 年 11 月份开始使用 RxJava,应该算是比较早的,将近两年过去了,现在 RxJava 1.x 版本已经进入稳定期,2.0 版本也已经进入了 RC 阶段。原本打算把 Advanced RxJava 系列博客翻译完之后再拆 RxJava 的,但是前两周看了一个 JW 讲 RxJava 的视频,突然有种隐隐打通任督二脉的感觉,索性趁着中秋佳节,一鼓作气把 RxJava 好好拆开看个究竟。本文的分析基于 RxJava 截至 2016.9.16 的最新源码,非常建议大家下载 RxJava 源码之后,跟着本文,过一遍源码

    5. Android热更新方案Robust

      从去年开始,Android平台出现了一些优秀的热更新方案,主要可以分为两类:一类是基于multidex的热更新框架,包括Nuwa、Tinker等;另一类就是native hook方案,如阿里开源的Andfix和Dexposed。这样客户端也有了实时修复线上问题的可能。但经过调研之后,我们发现上述方案或多或少都有一些问题,基于native hook的方案:需要针对dalvik虚拟机和art虚拟机做适配,需要考虑指令集的兼容问题,需要native代码支持,兼容性上会有一定的影响;基于Multidex的方案,需要反射更改DexElements,改变Dex的加载顺序,这使得patch需要在下次启动时才能生效,实时性就受到了影响,同时这种方案在android N [speed-profile]编译模式下可能会有问题,可以参考Android N混合编译与对热补丁影响解析。考虑到美团Android用户机型分布的碎片化,很难有一个方案能覆盖所有机型。

    6. 安卓自定义View进阶-Matrix Camera

      本篇依旧属于Matrix,主要讲解Camera,Android下有很多相机应用,其中的美颜相机更是不少,不过今天这个Camera可不是我们平时拍照的那个相机,而是graphic包下的Camera,专业给View拍照的相机,不过既然是相机,作用都是类似的,主要是将3D的内容拍扁变成2D的内容。众所周知,我们的手机屏幕是一个2D的平面,所以也没办法直接显示3D的信息,因此我们看到的所有3D效果都是3D在2D平面的投影而已,而本文中的Camera主要作用就是这个,将3D信息转换为2D平面上的投影,实际上这个类更像是一个操作Matrix的工具类,使用Camera和Matrix可以在不使用OpenGL的情况下制作出简单的3D效果。

    7. 那些你不知道的APK 瘦身,让你的APK更小

      让我们的apk文件尽可能更小,移除那些未使用的代码和资源文件。本章节介绍了如何做到让APK更小,性能更好,下载转化率会更高,以及如何指定在构建APK过程中保留或移除项目中的代码和资源,在我们还没有分析APK大小之前,项目中存在一些资源放置处理不当,没有统一的规范,依赖管理不合理,资源重叠,dex方法数过多、文件过大等问题,导致整个APK文件也比较大,对于下载转化率必然有一定的影响。那么公司要求我们的产品APK体积大小要优化到3M左右。经过我们的努力终于达到要求,然而我们发现还能再小。

    开源库&项目

    1. AnoleFix

      Another hotfix 另一个热修复方案 Alpha,来自InstantRun 和 Robust 类似

    2. TapTargetView

      Material Design 风格的使用指南提示效果

    3. Qart

      一个可以将图片和二维码合并成一张带有图片内容的二维码的库

    4. LowPoly

      一个可以将图片转换为 Lowpoly 风格的库

    5. StylishMusicPlayer

      一款优雅时尚的 Android 播放器

    6. DrawableColorChange

      可以通过代码动态改变 Drawable 颜色的库

    7. java-error-handler

      Error handling library for Android and Java

    8. DoubleStickyHeadersList

      An Android library for double level section headers that stick to the top of list

    9. fingerlock

      FingerLock is a library designed to make fingerprint authentication an easy task for Android developers

    10. AndroidAudioConverter

      一个音频格式转换库,支持 AAC, MP3, M4A, WMA, WAV、FLAC 等格式

    11. GoogleClock

      仿Google 2016 I/O大会里那个炫酷的时钟,纯SVG动画

    12. CreditSesameRingView

      Imitation of Ali credit sesame new old ring view

    13. OhMyBiliBili

      高仿哔哩哔哩动画安卓客户端 - ( ゜- ゜)つロ 乾杯~

    14. UniqueAdapter

      借助DataBinding,只需要一个Adapter

    技术之外

    1. 什么是工程师文化?

    2. 你连自律都做不到,还奢谈什么自由

  • 相关阅读:
    MySQL5.7 容器化安装
    什么是架构?——软件系统架构的定义
    服务端高并发分布式架构演进之路(转)
    CentOS7 增加回环地址
    三句话看明白jdk收费吗
    【转载】C#里怎么把string类型转换成double
    【转载】如何查看自己网站的搜索引擎收录量和索引量
    【转载】c# datatable 判断值是否存在
    【转载】C#中Datatable修改列名
    【转载】C#使用typeof运算符获取对象变量的具体类型Type
  • 原文地址:https://www.cnblogs.com/stewartlj/p/6002910.html
Copyright © 2020-2023  润新知