Android开发技术周报 Issue#74

三月 28, 2016 0 条评论 AndroidDevWeekly

教程

  1. 零开始的Android新项目3 - MVPVM in Action, 谁告诉你MVP和MVVM是互斥的

    去年5月左右的时候,笔者在逛GitHub的时候,看到了一个MVP的项目,叫做mosby,仔细看了源码和作者介绍的文章后,发现确实有点意思,虽然会需要多写几个类和方法,但是解决了activity/fragment过重的问题,通过V/P分离能够帮助提高可维护性。时至去年年底,今年年初,MVP才逐渐被大家所知,也不时看到些文章介绍其概念和实践。

  2. Android MotionEvent详解 (By stelar)

    我们都知道,每个触摸事件都代表用户在屏幕上的一个动作,而每个动作必定有其发生的位置。在MotionEvent中就有一系列与标触摸事件发生位置相关的函数:1. getX()和getY():由这两个函数获得的x,y值是相对的坐标值,相对于消费这个事件的视图的左上点的坐标。2. getRawX()和getRawY():有这两个函数获得的x,y值是绝对坐标,是相对于屏幕的。

  3. Android安全攻防战,反编译与混淆技术完全解析(下)

    在上一篇文章当中,我们学习了Android程序反编译方面的知识,包括反编译代码、反编译资源、以及重新打包等内容。通过这些内容我们也能看出来,其实我们的程序并没有那么的安全。可能资源被反编译影响还不是很大,重新打包又由于有签名的保护导致很难被盗版,但代码被反编译就有可能会泄漏核心技术了,因此一款安全性高的程序最起码要做到的一件事就是:对代码进行混淆。

  4. 那些年,我们一起点过的赞

    举个例子,就用户最多的微信、QQ来说,点赞也就是个心形和拇指的放大动画(自己去体验下),这里顺便吐槽下网易的点赞,动画做的不错,虽然我手机小小不流畅,可是不能取消赞是怎么回事? 也许,现在你觉得无非就是个点赞效果,随便做个点击效果就好了,也许产品设计的人也是这样觉得的,也许用户根本就不在乎。

  5. Android Bitmap面面观

    在日常开发中,可以说和Bitmap低头不见抬头见,基本上每个应用都会直接或间接的用到,而这里面又涉及到大量的相关知识。所以这里把Bitmap的常用知识做个梳理,限于经验和能力,不做太深入的分析。

  6. Android 6.0 对于权限和标识符的更改

    在 Marshmallow 中,权限请求已从安装时改到运行时。 这是 SDK 23+ 的一项强制性改动,意味着它会影响所有以 Android 6.0 作为目标平台的开发者和应用。无论如何,您的应用都需要更新,因此,您的挑战在于审慎地进行更新。

  7. 使用Clean Architecture模式开发Android应用的详细教程

    随着应用体积和代码数量的膨胀,Android应用的架构越来越复杂,遗留代码越来越多,接手开发、协作都变得越来越困难,有些人试图用框架、规范来解决这个问题,但为什么不从一开始就从架构上着手呢?干净架构就是一种很好的层级解耦、理清依赖的架构,作者在接触干净架构后就喜欢上了它,不仅在商业上成功应用,还撰文介绍、开源样板代码,简直化身干净架构布道师了,我们一起来看作者是如何向我们安利这一架构吧。

  8. 极致的 Hybrid 混合式开发(去啊App Hybrid 实战)

    目测性能是可观的。尽管H5包的离线化隔绝了弱网对秒出的干扰,设备本地 IO 耗时也是不能忽视的,算上zip的解压缩,仅在设备本地 IO 完全一个 HTML(包含其携带的资源文件)也会达到秒级的耗时,在iphone5上也会有0.5秒左右的白屏时间。另外,HTML 本身的优化依然无法绕过,WebView 里 JS 的运行效率通常是 Mobile Browser 里的四分之一。

  9. Java 单例真的写对了么?

    单例模式是最简单的设计模式,实现也非常“简单”。一直以为我写没有问题,直到被 Coverity 打脸。Coverity 是静态代码分析工具,它会模拟其实际运行情况。例如这里,假设有两个线程进入到这段代码,其中红色的部分是运行的步骤解析,开头的标号表示其运行顺序。

  10. 如何精确地测量java对象的大小-底层instrument API

    关于java对象的大小测量,网上有很多例子,大多数是申请一个对象后开始做GC,后对比前后的大小,不过这样,虽然说这样测量对象的大小是可行的,不过未必是完全准确的,因为过程中包含对象本身的开销,也许你运气好,正好能碰上,差不多,不过这种测试往往显得十分的笨重,因为要写一堆代码才能测试一点点东西,而且只能在本地测试玩玩,要真正测试实际的系统的对象大小这样可就不行了,本文说说java一些比较偏底层的知识,如何测量对象大小,java其实也是有提供方法的。

  11. 一种为 Apk 动态写入信息的方案

    Android 使用的 Apk 包的压缩方式是 zip,与 zip 有相同的文件结构,在 zip 文件的末尾有一个 Central Directory Record 区域,其末尾包含一个 File comment 区域,可以存放一些数据,所以 File comment 是 zip 文件一部分,如果可以正确的修改这个部分,就可以在不破坏压缩包、不用重新打包的的前提下快速的给 Apk 文件写入自己想要的数据。

  12. Android自定义Lint实践

    Android Lint是Google提供给Android开发者的静态代码检查工具。使用Lint对Android工程代码进行扫描和检查,可以发现代码潜在的问题,提醒程序员及早修正。为保证代码质量,美团在开发流程中加入了代码检查,如果代码检测到问题,则无法合并到正式分支中,这些检查中就包括Lint。

  13. H5、React Native、Native应用对比分析

    2015年是React Native发展的一年,2016年必定是React Native蓬勃的一年!2016年React Native很可能成为最为成功的开源技术之一。为什么React Native这么火呢?那么React Native相比H5、Native又有哪些优势呢?使用React Native的正确姿势又是怎样呢?

  14. Android适配到底有多坑?

    由于安卓系统的开放性,OEM厂商和运营商都会对Android进行定制。于是安卓的大航海时代来了。Android设备五花八门,各种Android手机、平板、电视、手表层出不穷,Android电冰箱电饭锅乱入…随着设备、品牌、系统版本、屏幕、分辨率碎片化的不断加深,兼容性测试一直在折磨着测试人员。统计,我们团队中做过兼容性测试的男性有2/3在已经开始谢顶,每做6个月兼容性测试寿命就会缩短半年。

开源库&项目

  1. TriangleLabelView

    自定义三角标签 View

  2. LuseenBottomNavigation

    Material Bottom Navigation 实现

  3. BottomNavigation

    Material Bottom Navigation 实现

  4. LivingTabs

    仿 Youtube Gaming Tabs 滑动效果

  5. RxJavaSamples

    RxJava 和 Retrofit 结合使用的几个最常见使用方式举例

  6. JKeyboardPanelSwitch

    Android键盘面板冲突 布局闪动处理方案

  7. cssdroid

    一个可以把 CSS 文件转换成 Android Style 的库

  8. PhoneNumber
    一个获取号码归属地和其他信息(诈骗、骚扰等)的开源库

  9. AndroidTabbedDialog

    支持左右滑动选项卡的 Dialog

  10. SuperNova-Emoji

    一个实现了可以渲染 Emoji 的库

  11. BoomMenu

    可以让你的菜单按钮瞬间爆炸的库

  12. ArcProgressStackView

    圆弧进度条

  13. AndRouter

    Android路由框架

  14. Android-SpinKit

    各种 Loading 动画效果

  15. ParallaxViewPager

    左右滑动时有视差的效果的 ViewPager

  16. AndroidKeyboardWatcher

    一个可以监控到软键盘打开关闭的库

  17. BlurLockView

    毛玻璃效果的解锁界面

  18. AnimatedEditText

    可以给 EditText 输入文字时给输入的文字添加各种动画效果的库

  19. Carouselview

    可以循环切换的 Banner View

  20. Spork-Android

    一个注解库

  21. android-snake-menu

    模仿 Tumblr's 的菜单效果

  22. RoadRunner

    可以使用 SVG 图片制作 Loading 动画的库

  23. LyricView

    lrc 歌词显示控件

  24. MDPreference

    Material Design 风格的 PreferenceFragment

  25. EasingInterpolator

    28 个与众不同动画插值器

工具

  1. Coverity

    静态代码分析工具,它会模拟代码的实际运行情况

  2. macaca

    一套完整的自动化测试解决方案

视频

  1. 内容型App的客户端架构之道

    内容型App指的是以呈现内容内主要交互的应用,这样类型的App很多,好的架构设计,可以使得内容型App的研发事半功倍。在豌豆荚我们积累了很久的经验,构建一套基于呈现内容的应用框架,在这个框架上快速搭建出来了豌豆荚,和豌豆荚一览、豌豆荚锁屏(Snaplock)等应用。

  2. StrictMode for enforcing best practices at runtime

    Android 开发者除了编译时的 Lint 检查,在运行时还有另外一种捕获问题的手段——Strict Mode 。Strict Mode 工作在线程和虚拟机级别,除了用于检查性能方面的问题,它还可用于检查文件分享和网络访问。

设计

  1. 得到简单设计方案的过程是复杂的

    前段时间有件“大事儿”, Facebook Reactions 终于面向全球用户开放 了。之所以说这是件大事是因为这是一个核心体现在设计上的重要项 目,Facebook 的标志性操作 Like 体系从此将步入新的时代。

技术之外

  1. 如何才能找到自己热爱的工作

    根据德勤的调查,80% 的美国人工作是不开心的,找一份自己热爱的工作的确不是一件容易的事。你对自己现在的工作满意吗?对你来说,真的有什么工作是非做不可的吗?如何才能发现自己热爱的工作是什么呢?

  2. Papi酱联手罗辑思维广告拍卖,有10件我想说的事 | 狗熊有话说

    我相信一个很小的网络事件的热传可能是出于偶然,但一个持续高密度出现的网络事件,一定有着精心策划和准备,当然也有认真和努力。

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

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