您的位置:首页 > 产品设计 > UI/UE

Android开发技术周报 Issue#74

2016-07-19 13:21 218 查看

教程

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

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

Android MotionEvent详解 (By stelar)

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

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

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

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

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

Android Bitmap面面观

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

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

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

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

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

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

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

Java 单例真的写对了么?

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

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

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

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

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

Android自定义Lint实践

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

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

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

Android适配到底有多坑?

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

开源库&项目

TriangleLabelView

自定义三角标签 View

LuseenBottomNavigation

Material Bottom Navigation 实现

BottomNavigation

Material Bottom Navigation 实现

LivingTabs

仿 Youtube Gaming Tabs 滑动效果

RxJavaSamples

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

JKeyboardPanelSwitch

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

cssdroid

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

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

AndroidTabbedDialog

支持左右滑动选项卡的 Dialog

SuperNova-Emoji

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

BoomMenu

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

ArcProgressStackView

圆弧进度条

AndRouter

Android路由框架

Android-SpinKit

各种 Loading 动画效果

ParallaxViewPager

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

AndroidKeyboardWatcher

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

BlurLockView

毛玻璃效果的解锁界面

AnimatedEditText

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

Carouselview

可以循环切换的 Banner View

Spork-Android

一个注解库

android-snake-menu

模仿 Tumblr's 的菜单效果

RoadRunner

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

LyricView

lrc 歌词显示控件

MDPreference

Material Design 风格的 PreferenceFragment

EasingInterpolator

28 个与众不同动画插值器

工具

Coverity

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

macaca

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

视频

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

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

StrictMode for enforcing best practices at runtime

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

设计

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

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

技术之外

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

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

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

我相信一个很小的网络事件的热传可能是出于偶然,但一个持续高密度出现的网络事件,一定有着精心策划和准备,当然也有认真和努力。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: