貌似掉线的博客

疯狂的键盘

排序:
默认
按更新时间
按访问量

Phabricator 添加对 Kotlin 的语法高亮

一直难以忍受在做 Code Review 时,Phabricator 无法对 kotlin 代码进行高亮显示,直到今天项目的阶段性开发终于告一段落进入测试,于是着手处理该问题。 Phabricator 对语法高亮有两种支持方式,一种是其自带的高亮,还是一种是对 pygments 的集成。在 Ph...

2018-05-16 15:41:08

阅读数:23

评论数:0

Gradle 2.0 用户指南翻译——第二十三章. Java 插件

第二十三章. Java 插件 Chapter 23. The Java Plugin Java 插件向项目添加 Java 编译、测试和捆绑的功能。它是其他许多 Gradle 插件的基础。 The Java plugin adds Java compilation, testing and bun...

2018-04-28 23:23:57

阅读数:59

评论数:0

Gradle 2.0 用户指南翻译——第二十二章. 标准的 Gradle 插件

第二十二章. 标准的 Gradle 插件 Chapter 22. Standard Gradle plugins Gradle 发行版中包含一些插件,如下列所示 There are a number of plugins included in the Gradle distribution. ...

2018-04-27 13:38:14

阅读数:275

评论数:0

Gradle 2.0 用户指南翻译——第二十一章. Gradle 插件

Gradle 在它的核心中有意地为真实世界的自动化提供一些有用的功能。所有有用的功能,例如能够编译 Java代码,都是通过插件来添加的。插件添加了新任务(如 JavaCompile),域对象(如 SourceSet),约定(如主要的 Java 源码是位于 的src/main/java),以及从扩展...

2018-04-24 07:41:05

阅读数:83

评论数:0

皮肤包项目的 Gradle 脚本演化

我在做的一个项目需要有换肤功能,换肤的方案是采用第三方库 ThemeSkinning 的实现(在其基础上修复若干 bug)。皮肤的制作是把相关的资源放在一个 app module 中打包成 apk,当然资源的命名要和原有项目中的命名一致。目前的皮肤加载方式,是把皮肤包放到 assets 中去加载。...

2018-04-11 21:06:50

阅读数:2398

评论数:3

Gradle 2.0 用户指南翻译——第二十章. 构建环境

Gradle提供了几个选项,可以很容易地配置用于执行构建的 Java 进程。尽管可以通过 GRADLE_OPTS 或 JAVA_OPTS 在本地环境中配置这些设置,但是如果某些设置,像 JVM 内存设置,Java home,守护进程开启/关闭等特定设置可以提交到 VCS 的话会更有用,这样整个团队...

2018-03-30 13:41:04

阅读数:125

评论数:0

Gradle 2.0 用户指南翻译——第十九章. Gradle 守护进程

Gradle 守护进程(有时也称为构建守护进程) 旨在改善 Gradle 的启动和执行时间。 我们想到了几个关于守护进程非常有用的情形。对于一些工作流,用户会多次调用 Gradle 以执行少量相对较快的任务。例如: 当使用测试驱动开发时,单元测试会被执行多次。 当开发一个 web 应用程序中,...

2018-03-26 17:36:14

阅读数:99

评论数:0

Gradle 2.0 用户指南翻译——第十八章. 日志

日志是构建工具的主要“UI”。如果日志过于冗长,则真正的警告和问题很容易被隐藏。另一方面,如果出了错,你就需要相关的信息。 Gradle 定义了 6 个日志级别,如表18.1,“日志级别”所示。除了你可能通常都会看到的日志级别之外,还有两个 Gradle 特定的日志级别。这两个级别分别是QUIET...

2018-03-12 12:18:31

阅读数:144

评论数:0

深踩 AndroidStudio 缓存的坑

本文记录的是今天在群里提到的昨天所踩的一个坑,有关 AndroidStudio 缓存的。 先说一下背景。 我负责的一个项目,对一个图表库有外部依赖。这个图表库是我在维护的,由于新功能在开发中,所以我就使用了 SNAPSHOT 版本发布到 OJO(oss.jfrog.org) 上。我在项目中刚更...

2018-03-08 09:53:03

阅读数:955

评论数:4

Gradle 2.0 用户指南翻译——第十七章. 从 Gradle 中使用 Ant

Gradle 对 Ant 提供了极好的集成。你可以在你的 Gradle 构建中使用单独的 Ant 任务,或者是整个 Ant 构建。实际上,你会发现在 Gradle 构建脚本中使用 Ant 任务比使用 Ant 的 XML 格式要容易得多,功能也更强大。你甚至可以把 Gradle 当作是一个强大的 A...

2018-02-26 10:46:27

阅读数:163

评论数:0

Gradle 2.0 用户指南翻译——第十六章. 使用文件

大多数构建工作都需要使用到文件,Gradle 添加了一些概念和 API 来帮助你实现这一点。 16.1. 查找文件 你可以使用Project.file()方法来找到相对于项目目录的文件。 示例 16.1. 查找文件

2018-02-11 15:59:10

阅读数:227

评论数:0

对读取短信验证码封装库的思考

在我的目前阶段,许多开源项目的产生都是直接来源于项目本身的需求,比如这次要讲的读取短信验证码的封装库。 项目目前挂在 github 上的公司组织下,地址为:https://github.com/parkingwang/sms-captcha。使用方法很简单,在界面创建时注册: mCaptc...

2018-02-03 22:39:05

阅读数:2117

评论数:1

Gradle 2.0 用户指南翻译——第十五章. 任务详述

在入门教程(《第六章,构建脚本基础》)中,你已经学会了如何创建简单的任务。之后你还学习了如何在向任务添加额外的行为。你也已经学会了如何创建任务之间的依赖。这都是简单的任务。但是Gradle将任务的概念推得更深远。 Gradle支持增强任务,也就是有自己的属性和方法的任务。这是真正的与你所使用的An...

2018-02-01 17:49:47

阅读数:202

评论数:0

Gradle 2.0 用户指南翻译——第十四章. 教程 - 杂七杂八

第十四章. 教程 - 杂七杂八 Chapter 14. Tutorial - 'This and That' 14.1. 创建目录 14.1. Directory creation 有一个常见的情况是,有多个任务依赖于某个目录的存在。当然,你可以在这些任务开始时执行mkdir来解决这个问题。但这是...

2018-01-23 20:30:54

阅读数:228

评论数:0

Gradle2.0用户指南翻译——第十三章. 编写构建脚本

第十三章. 编写构建脚本 这一章着眼于编写构建脚本的一些细节。 13.1. Gradle 构建语言 Gradle 提供了一种领域特定语言,或者说是 DSL,用于描述构建。这种构建语言基于 Groovy 中,并进行了一些补充,使得更容易地描述构建。 构建脚本可以包含任何Groovy语言元素。 [...

2018-01-20 10:42:28

阅读数:208

评论数:0

一个动态权限库的设计

在经过上一次尝试剖析源码后,我意识到自己并没有一种比较好的方式去讲解代码,从而无法把自己所知道的知识更好地输出。所以接下来,至少在源码讲解有新想法前,我都不会再去尝试,也尽量减少博客中的非核心代码,而以思路及想法为主。另外,我也将尝试改进技术博客的笔法,段落之间尽量连贯,整体内容尽量有节奏感,目标...

2018-01-12 16:07:12

阅读数:1519

评论数:1

跳一跳——电脑能做的事就不要人工来做啦

补发30日未发的博客。 PS:最新改进的算法和针对我自己手机调优的参数已经停不下来了,见项目:https://github.com/GameTerminator/AutoJump 几年前参考网上的文章写过天天连萌自动玩的项目(之前写在 iteye 的博客上:http://maosidiaox...

2018-01-03 20:59:23

阅读数:2495

评论数:1

Gradle2.0用户指南翻译——第十二章. 使用Gradle 图形用户界面

第十二章. 使用Gradle 图形用户界面 Chapter 12. Using the Gradle Graphical User Interface 除了支持传统的命令行界面,Gradle也提供了一个图形用户界面(GUI)。它是一个独立的用户界面,可以使用--gui选项来启动。 In addit...

2017-12-19 11:29:34

阅读数:444

评论数:0

实现 RecyclerView 上拉加载及自动加载

之前在《一步步打造自己的通用上拉加载布局》(如果没有看过,建议先看下这一篇)写到如何实现一个通用的上拉加载布局,本文将基于此进行扩展,实现 RecyclerView 的上拉加载及自动加载。在之前的《一步步打造自己的通用上拉加载布局》已经提到,下拉刷新是将获取到的数据替换掉原有的数据,而上拉加载则是...

2017-12-09 12:58:13

阅读数:772

评论数:0

Gradle2.0用户指南翻译——第十一章. 使用Gradle命令行

第十一章. 使用Gradle命令行 本章介绍了Gradle命令行的基础知识,正如你在前面章节所看到的使用gradle命令来运行构建。 11.1. 执行多个任务 你可以通过在命令行中列出每个任务来在单个构建中执行多个任务。例如,gradle compile test命令将执行compile和tes...

2017-11-30 09:54:23

阅读数:486

评论数:0

Retrofit 上传文件显示进度及踩坑记录

因产品需求,需要实现图片上传显示文件进度。我在项目中是使用的 Retrofit 和 RxJava,虽网上不乏相关文章,然而在使用的过程中还是遇到了点坑,记录为文,谨供他人参考。

2017-11-26 08:56:40

阅读数:1073

评论数:1

CoordinatorLayout 之深入理解

上篇在对 CoordinatorLayout 作了一些简单介绍,以了解 CoordinatorLayout 带来的一些特性和常见用途。本篇将对 CoordinatorLayout 的源码进行一些分析,以了解它的相关特性的运行原理,以及 Behavior 的执行过程。Android design l...

2017-11-17 20:02:47

阅读数:492

评论数:0

CoordinatorLayout之初步认识

CoordinatorLayout是2015 I/O大会发布的一种布局,它可以说是一个非常强大的FrameLayout,主要用于协调(Coordinate)子控件,来帮助实现它们之间的一些交互效果。它适合用于应用的顶层布局,或是View之间交互的一个容器。本篇主要是对CoordinatorLayo...

2017-11-04 14:21:35

阅读数:325

评论数:0

Gradle2.0用户指南翻译——第十章. Web 应用程序快速入门

第十章. Web 应用程序快速入门 Chapter 10. Web Application Quickstart 本章还在完善中。 This chapter is a work in progress. 本章介绍了Gradle对Web应用程序的相关支持。Gradle提供了两个用于Web应用开发的...

2017-10-31 22:40:43

阅读数:488

评论数:0

Gradle2.0用户指南翻译——第九章. Groovy 快速入门

第九章. Groovy 快速入门 Chapter 9. Groovy Quickstart 要构建一个Groovy项目,你可以使用Groovy插件。此插件继承了Java插件,以便将Groovy的编译功能添加到项目中。你的Groovy项目可以包含Groovy源代码,Java源代码,或者两者都有。在...

2017-10-31 14:12:37

阅读数:548

评论数:0

Gradle2.0用户指南翻译——第八章.依赖管理基础

第八章.依赖管理基础 本章节介绍如何使用Gradle进行基本的依赖管理. 8.1. 神马是依赖管理? 通俗来讲,依赖管理由如下两部分组成.首先,Gradle需要知道项目构建或运行所需要的一些文件,以便于找到这些需要的文件. 我们称这些输入的文件为项目的依赖.其次,你可能需要构建完成后自动上传到某个...

2017-10-22 10:58:11

阅读数:388

评论数:0

Gradle2.0用户指南翻译——第七章. Java 快速入门

第七章. Java 快速入门 Chapter 7. Java Quickstart 7.1. Java 插件 7.1. The Java plugin 如你所见,Gradle是一个通用的构建工具。你在构建脚本中实现的几乎任何内容它都能够构建。它开箱即用,但是需要你在构建脚本中先写好代码。 As...

2017-10-14 17:35:38

阅读数:910

评论数:0

Gradle2.0用户指南翻译——第六章. 构建脚本基础

在整个Gradle,有两个最基础的概念:项目 和 任务。 Everything in Gradle sits on top of two basic concepts: projects and tasks. 任何一个Gradle构建都是由一个或多个项目组成。一个项目代表着什么,取决于你想通过G...

2017-09-27 11:46:47

阅读数:742

评论数:0

一步步打造自己的通用上拉加载布局

背景下拉刷新是App交互中非常常见的场景,而与其对应的上拉加载,在很多场景中也已经是用户意识中理所当然的一种交互了。在很久之前的项目开发中,就已经有上拉加载的这个需求。但是那时苦于没有找到一个合适的上拉加载的库,而项目迭代又紧,那时自己实现恐时间上来不及或者引入其他bug,就暂时用了秋百万的cub...

2017-09-24 19:09:22

阅读数:2045

评论数:5

ViewPager与CoordinatorLayout一起使用的一个Bug

本文记录一个关于ViewPager与CoordinatorLayout一起使用的Bug,目前虽然有解决问题的方法,但是原因依然没有找到。最初的布局是正常的项目最初的布局树是这样的:CoordinatorLayout --RelativeLayout(height:match_parent) ---...

2017-09-21 14:27:06

阅读数:2300

评论数:1

Gradle2.0用户指南翻译——第五章. 疑难解答

本章节目前还在完善中。 This chapter is currently a work in progress. 当使用Gradle(或者是其他软件包)的时候,或多或少都会遇到一些问题。或许是您无法驾驭的新特性,或许是正好遇到了缺陷,也可能是关于Gradle的一些常见问题。 When usin...

2017-09-19 09:47:15

阅读数:853

评论数:0

开源项目——让okhttp3优雅地打印日志

现在应该有许多人都是使用okhttp来作为项目的网络请求的底层库,那么,还有人在沿用着对每个请求在执行前后手动打印一下参数及地址这种古老的日志打印方式吗?okhttp的灵活而强大的特点之一,就是其提供了一个拦截器接口,使得我们在打印日志时极为方便,并且对我们的接口代码无入侵性。 本篇文章推荐...

2017-09-14 00:02:08

阅读数:2034

评论数:0

Android开发技巧——使用RecyclerView实现分组列表

有一个多月没写原创博客了,介绍一下使用RecyclerView来实现分组列表。之所以使用RecyclerView,主要原因还是因为ExpandableListView无法实现设计师所需要的分割线。 本篇内容偏简单,主要是讲如何集成使用。这一使用场景还是相对常见的,较适合初学者进阶。实现原因及效果...

2017-09-10 18:20:48

阅读数:4581

评论数:4

Gradle2.0用户指南翻译——第四章. 安装Gradle

第四章. 安装Gradle Chapter 4. Installing Gradle 4.1. 环境要求 4.1. Prerequisites Gradle需要安装Java6或更高以上版本的JDK或JRE。Gradle自带了Groovy库,因此不需要安装Groovy。已经安装的Groovy会被...

2017-09-07 10:05:06

阅读数:859

评论数:0

Gradle2.0用户指南翻译——第三章. 教程

第三章. 教程 Chapter 3. Tutorials 34.1. 入门 3.1. Getting Started 以下是Gradle的一些基础的教程介绍,来帮助你快速入门。 The following tutorials introduce some of the basics of Gr...

2017-08-01 09:44:06

阅读数:1078

评论数:0

Gradle2.0用户指南翻译——第二章. 概述

第二章. 概述 Chapter 2. Overview 2.1. 特性 2.1. Features 以下是Gradle的一些特性列表。 Here is a list of some of Gradle's features. 声明式的构建以及基于约定的构建 Declarative buil...

2017-07-31 09:23:34

阅读数:1142

评论数:0

Gradle2.0用户指南翻译——第一章. 介绍

第一章. 介绍 Chapter 1. Introduction 我们很高兴向大家介绍Gradle,一个我们认为在Java(JVM)世界的构建技术上富有突破性的构建系统。它提供了: We would like to introduce Gradle to you, a build system ...

2017-07-28 09:43:10

阅读数:1404

评论数:0

关于Gradle2.0的翻译说明

Gradle1.12的翻译情况Gradle实际上在4月16日就已经在对应的OmegaT项目上完成了翻译,后因项目繁忙,直到7月20日才完成了Github上Gradledoc项目及七牛站点的更新。 总结一下1.12的翻译情况: 从2014年11月12日开始使用OmagaT翻译,到2017年4月16...

2017-07-23 15:57:51

阅读数:460

评论数:0

Gradle 1.12用户指南翻译——第六十五章. Maven 发布(新)

第六十五章. Maven 发布(新) 本章内容讲的是一个新的 孵化中的 功能,是由“maven-publish”插件提供的 Maven 发布支持。最终这个新的发布支持的发布功能将会取代Upload任务的发布功能。 如果你正在查找关于使用 Upload 任务的原始的Maven 发布支持的文档,请查...

2017-07-20 14:32:55

阅读数:713

评论数:0

Gradle 1.12用户指南翻译——第六十四章. 发布到Ivy(新)

本章内容描述了一个新的 孵化中的 功能,是由“ivy-publish”插件提供的 Ivy 发布支持。最终这个新的发布支持的发布功能将会取代Upload任务的发布功能。 如果你正在查找关于使用 Upload 任务的原始的Ivy发布支持的文档,请查阅 第五十一章, 发布构件。 本章内容主要描述了如何...

2017-07-14 15:16:40

阅读数:712

评论数:0

Android开发技巧——写一个StepView

在我们的应用开发中,有些业务流程会涉及到多个步骤,或者是多个状态的转化,因此,会需要有相关的设计来展示该业务流程。比如《停车王》应用里的添加车牌的步骤。 通常,我们会把这类控件称为“StepView”。上图的这种设计相对来说还是比较简单的,下面我们以它为例,来一步步写我们的“StepView...

2017-06-02 10:58:00

阅读数:1766

评论数:0

Android开发技巧——实现设计师给出的视觉居中的布局

本篇主要是对自定义控件的测量方法(onMeasure(int widthMeasureSpec, int heightMeasureSpec)在实际场景中的运用。 在移动应用的设计中,经常有这样的界面:某个界面的元素非常少,比如空列表界面,或者某某操作成功的界面,只有一两个像素在中间。但是它们在某...

2017-05-06 15:47:54

阅读数:923

评论数:0

Gradle 1.12用户指南翻译——第六十三章. 构建比较

Gradle 提供了对两个构建的 结果(例如生成的二进制档案)进行比较的支持。为什么你可能需要对两个构建的结果进行比较,有几个原因。你可能想要比较: 比当前所使用的Gradle版本更新的版本的构建(即升级Gradle版本)。 由Apache Ant,Apache Maven 或其他工具执行的Gr...

2017-05-01 12:56:41

阅读数:527

评论数:0

Gradle 1.12用户指南翻译——第六十二章. 嵌入 Gradle

62.1.Tooling API 简介 1.0 里程碑 3 的发布带来了新的 API 叫tooling API,可以用于嵌入 Gradle。这个API可以让你执行和监视构建,并向Gradle 查询有关构建的细节。它的主要受众是IDE,CI服务器,其他的UI作者,或者你的Gradle插件的集成测试。...

2017-04-30 21:08:13

阅读数:661

评论数:0

Gradle 1.12用户指南翻译——第六十一章. Gradle包装器

Gradle 包装器(下称“包装器”)是启动 Gradle 构建的首选方法。这个包装器是Windows上的一个批处理脚本和以及用于其他操作系统的shell 脚本。当你通过包装器启动 Gradle 构建时,Gradle 将被自动下载并用于运行这个构建。 The wrapper is somethi...

2017-04-29 16:59:38

阅读数:594

评论数:0

Gradle 1.12用户指南翻译——第六十章. 初始化脚本

第六十章. 初始化脚本 Gradle提供了一种强大的机制,可以让你基于当前的环境自定义构建。这种机制还支持希望与Gradle集成的工具。 60.1. 基本用法 初始化脚本 (也称为init scripts和Gradle的其他脚本类似。然而,这些脚本是在构建之前就运行的。下面是几种可能的用法: ...

2017-04-28 23:25:31

阅读数:937

评论数:0

Gradle 1.12用户指南翻译——第五十九章. 组织构建逻辑

Gradle 提供了多种方式来组织你的构建逻辑。首先,你可以把你的构建逻辑直接放到一个任务的action闭包里。如果两个任务有相同的逻辑,你可以把这段逻辑抽取为一个方法。如果一个多项目构建中的多个项目有相同的逻辑,你可以把这个方法定义在父项目里。如果构建逻辑通过方法来正确建模比较复杂的话,你就要使...

2017-04-27 23:14:30

阅读数:450

评论数:0

Gradle 1.12用户指南翻译——第五十八章. 编写自定义插件

Gradle 插件打包了可以复用的构建逻辑块,这些逻辑可以在不同的项目和构建中使用。Gradke 允许你实现你自己的自定义插件,因此你可以重用你的构建逻辑,并且与他人分享。 你可以使用你喜欢的任何一种语言来实现一个自定义插件,只要这个实现最终能够提供编译的字节码。在这里的例子中,我们将使用Gra...

2017-04-23 21:44:53

阅读数:844

评论数:0

Gradle 1.12用户指南翻译——第五十七章. 编写自定义任务类

Gradle 支持两种类型的任务。一种是简单的任务,你可以使用一个action闭包来定义它。这样的任务我们在第六章, 构建脚本基础已经看到过。对于这种类型的任务,action闭包决定了这个任务的行为。这个类型的任务适合于实现在构建脚本中只执行一次的任务。 另一种类型的任务是增强型的任务,它的任务...

2017-04-21 23:54:22

阅读数:759

评论数:0

Gradle 1.12用户指南翻译——第五十六章. 多项目构建

对多项目构建的强大支持是 Gradle 的独特优点之一。本主题也是最具智力挑战性的。 56.1. 跨项目配置 让我们从一个非常简单的多项目构建开始。在全部 Gradle 的核心都是作为一个通用构建工具后,我们的项目并不一定得是个 java 项目。我们的第一个例子是关于海洋生活的。 56.1.1...

2017-04-17 23:06:48

阅读数:968

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭