稀有猿诉

十年磨一剑,历炼出锋芒,说话千百句,不如码二行。

Android Layout大点兵

智能手机催生了移动互联时代,现如今移动应用越来越成为最为核心的终端。而GUI页面是移动互联终端的标配,做好一个GUI页面,是非常重要的,能极大的提升用户体验和用户满意度。安桌生态,自古以来(没那么久,自安桌流行以来)在GUI方面就逊于水果生态,GUI页面的美观程度,操作流畅度以及动效的优美程度,水果生态是远好于安卓生态的。好消息是近几年的版本谷歌在这些方面做了大量努力,几乎追平与水果平台的差距。特别是在support libraries(现在是叫AndroidX)里面加入一些在各方面都远好于标准API中的UI组件,现在只要稍加努力就可以做出与水果一样,甚至更炫酷的GUI页面。

Android ConstraintLayout使用攻略

ConstraintLayout是新一代的布局,它汲取了众家之长,把布局的概念进行了大统一,灵活且强大,基本上可以干掉以前所有的常用布局(LinearLayout, RelativeLayout和FrameLayout)。自从Android Studio 2.3(大约在2017年)后,它就变成了Android Studio的默认模板的布局控件,可以看出谷歌对它的钟爱程度。今天就来学习一下如何使用这个新布局神器。

Android事件高级手势处理

GestureDetector只能帮我们处理并识别一些常用的简单的手势,如点击,双击,长按,滑动(Scroll)和快速滑动(Fling)等,一般情况下,这些足够我们使用了,但有些时候需要一些更为复杂的手势操作,如Translate,Zoom,Scale和Rotate,以及像处理一些多点触控(MultiTouch),这就需要开发人猿自己处理了,本文将讨论一下这些内容。

Android View滑动处理大法

对于触控式操作来说,滑动是一个特别重要的手势操作,如何做到让应用程序的页面滑动起来如丝般顺滑,让用户感觉到手起刀落的流畅感,是开发人猿需要重点解决的问题,这对提升用户体验是最为重要的事情。本文就将探讨一下,Android中View的滑动相关知识,以及如何做到丝般顺滑。

Android View 事件派发流程

自从乔帮主横空出世推出了iPhone以来,触控式的操作便成了21世纪智能设备的标准输入方式。对于同是智能操作系统的Android来说,也不例外。事件,特别是触控事件对于移动应用程序开发来说是一个非常重要的,也是开发人猿必须掌握的事情。这里就要讨论一下Android View中的Event系统,重点探讨一下事件的派发流程。

Android View的渲染过程

对于安卓开发猿来说,每天都会跟布局打交道,那么从我们写的一个布局文件,到运行后可视化的视图页面,这么长的时间内到底 发生了啥呢?今天我们就一起来探询这一旅程。

理解安卓的视图体系结构

当我们想要写一个页面的时候,通过一个Activity,然后调用其setContentView方法,把一个布局文件当作一个参数传递过去,然后一个页面就好了,但是除此之外,我们还需要与一些组件打交道,比如像Window,WindowManager,那么这些东西到底 与我们的页面布局有什么关系,今天就来学习一下,以便对整体窗口有个更清楚的认知。

如何玩转安卓源代码

身为一个安卓开发者,除了学习应用开发以外,安卓本身的源码也是必须要玩一玩的,因为安卓系统的源码中还有相当不错的东西值得去学习的。官方的网站(AOSP)就是专门为安卓源码相关而搭建的,换句话说想玩转安卓的源码,看这个网站就可以了。本篇重点讲一讲,如何玩转安卓源码,从环境搭建,到下载源码,到编译,以及源码的学习和查看。

Python字符串编码答疑

Python 2中的字符串分类

在Python 2中字符串,有两个类型,一个是str,一个是unicode。str可以理解为ASCII的字符列表,说白了,只能存储ASCII字符,如果赋个中文值,会报错;而unicode是支持非ASCII字符的。这个与C语言中的字符非常类似char[]只能存ASCII字符串,而wchar[]才可以存储Unidcode字符串。

Python 2升级到Python 3的指导建议

“Life is short, we must upgrade to Python 3”

Python是一个非常好用的工具语言,哪怕主业中用不到它,到处可见到一些非常实用的小的工具都是用Python来写的,即使再小的工具,也要做到小而美,这是工匠精神的体现。在社区里面Python 2已经停止开发新功能了,仅维护并修复一些bug,未来也将会停止维护,有些平台已经默认用python3了。除非有些无法替换的依赖必须强制使用Python 2以外,建议要升级到Python 3。本篇记录一些朕在升级到Python 3时遇到的一些问题,也即升级的时候的一些指导提示。