Android Studio最全快捷键和使用技巧

  categories:资料  author:

Android studio作为如今主流的Android开发平台,熟悉常用快捷键可以让我们开发更加高效便捷,如鱼得水。

本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键。 根据这些小技巧的使用场景,本文将这62个小技巧分为常用技巧(1 – 28)、编码技巧(29 – 49)和调试技巧(50 – 62),分成三个部分。

每个小技巧都配有 gif 动图,由于原图在 google photo 上,加载较慢,本文全部转存到七牛上了。

由于能力有限,翻译过程中难免有所疏漏,如发现错误或问题,请在评论中提出,谢谢。

常用技巧

1. 书签(Bookmarks)

  • 描述:这是一个很有用的功能,让你可以在某处做个标记(书签),方便后面再跳转到此处。
  • 调用:Menu → Navigate → Bookmarks
  • 快捷键:
    • 添加/移除书签:F3(OS X) 、F11(Windows/Linux);
    • 添加/移除书签(带标记):Alt
阅读全文

Android定时任务的应用及实现

  categories:资料  author:

定时任务在Android中这算是一个常用的功能了。比如注册获取验证码时的倒计时,或者支付时候也会有倒计时。正计时大多也都用在定时唤醒或者延时做一些操作的情况。本文我会先整理一下定时任务的几种方法以及CountDownTimer这个专门用来倒计时的类,后面我们以最常用应用场景来演示一下验证码倒计时原理的实现,包装效果后如下图:

实现正定时的五种方法

方法1:通过Handler + Thread 的方式。代码如下。

MainActivity.java

public class MainActivity extends AppCompatActivity {
    private static final int TIMER = 999;
    private static boolean flag = true;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate
阅读全文

c语言线程编程

  categories:资料  author:
Abstract

In shared memory multiprocessor architectures, threads can be used to implement parallelism. Historically, hardware vendors have implemented their own proprietary versions of threads, making portability a concern for software developers. For UNIX systems, a standardized C language threads programming … 阅读全文

C语言实现的猜拳游戏(剪子锤子布),让你与电脑对决

  categories:资料  author:

这是一个简单的猜拳游戏(剪子包子锤),让你与电脑对决。你出的拳头由你自己决定,电脑则随机出拳,最后判断胜负。

下面的代码会实现一个猜拳游戏,让你与电脑对决。你出的拳头由你自己决定,电脑则随机出拳,最后判断胜负。

启动程序后,让用户出拳,截图:

用户出拳,显示对决结果:截图:

代码实现:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. int main()
  5. {
  6. char gamer; // 玩家出拳
  7. int computer; // 电脑出拳
  8. int result; // 比赛结果
  9. // 为了避免玩一次游戏就退出程序,可以将代码放在循环中
  10. while (1){
  11. printf(“这是一个猜拳的小游戏,请输入你要出的拳头:
阅读全文

Maven学习总结:基本概念和配置

  categories:资料  author:

简介

    在前一篇文章里已经介绍了怎么安装和配置maven。在安装好之后我们这里来看看怎么通过maven来构建一个工程并详细的了解一下maven的配置文件里各配置项是什么意思。只有理解清楚这些之后我们才能够更好的运用好这个工具。

 

创建一个示例工程

首先我们尝试创建一个普通的工程。在命令行的情况下,我们输入如下命令:

  1. mvn archetype:generate -DgroupId=com.yunzero -DartifactId=SampleProject -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

系统会显示如下的输出:

这表示一个工程已经建立好了。那么我们前面的这个命令表示什么意思呢?它究竟做了什么?我们又创建了一个什么样的工程呢?我们一点点详细的分析过来。

先看我们建立的这个工程的结构:

 

如上图所示,这里表示一个普通的java console工程结构。这是我们用命令行建立的。如果我们考虑用IDE工具来建立工程呢?也可以用类似的方式。我们以eclipse为例。

1. 首先选择新建一个maven project:

2.  然后选择Next, 在这里选择工程所在的目录,我们选择默认的位置,如下图:

3. 选择next之后再继续选择archetype

这里,也选择默认的maven-archetype-quickstart。然后继续选择Next。如果我们留意的话会发现这个类型的archetypeid也就是我们前面命令行创建工程里指定的。

4. 在这一步选择Group Id和Artifact Id:

在这一步,设置的Group Id和artifact Id也就是我们前面命令行里指定的那样。这样,我们就建立了一个简单的maven示例工程了。它的结构如下图:

 

这样,我们通过命令行和IDE两种方式创建了一个示例工程。下面我们针对命令行的参数和pom.xml文件里的一些项进行详细的讨论。

参数解释

我们在最开始创建maven工程的时候指定了archetype参数。然后在后面的参数里又指定了archetypeartifactId。

archetype: 指的是我们如果要通过maven创建一个项目工程的话,因为具体针对不同类型的项目它的结构组织不一样,于是maven就提供了一个项目创建的模板。这些模板包含了一些最佳实践,这样可以使得我们在构建项目的时候节约不少实践。比如说,我们需要创建一个普通的console应用,那么它的结构模板必然是一种样式,而如果要构建一个JavaEE的项目,它的结构则不一样。既然我们需要针对不同项目提供不同的模板,于是就有了一个需要怎么来定义和区分它们的问题。这样就有了archetypeArtifactId。

 

阅读全文

两角和差的三角函数公式的证明

  categories:资料  author:

前阵子出过一道 ( ),有一些网友踊跃提供了自己的思路。在公布我的做法之前,我想先讲讲其中需要利用到的一个有关三角函数的公式以及其证明,大家可以先了解一下三角函数的定义:

先来看看两角和差的三角函数公式的内容吧,真是又对称又神奇吧:

证明方法并不唯一,在这里提供一种我认为比较容易理解的方法。如下图所示,从 A 出发作 ∠α 和 ∠β,在 ∠β 的一条射线上取一点 D ,过 D 作 ∠β 的另一条射线的垂线,设垂足为 E。然后过 E 作∠α 的另一条射线的垂线,设垂足为 B。再延长 EB,作 CD ⊥ CE。

如果假设 AD = 1,那么在 △AED 中,AE = cosβ,DE = sinβ。先来证明第 1 个公式:在 △CDE

阅读全文

赢在起跑之前

  categories:儿童计算机, 培训, 资料  tags:, ,   author:

儿童计算机培训的一个策略

大家可能经常听说, 别输在起跑线上, 而我这里提出“赢在起跑之前”,其实, 您在起跑线上无论您多么努力,您也是同大家处于基本相同位置, 最多也就赢了几秒钟而已, 如下图, 您还能多获得多少时间?

我说赢在起跑之前,是指若是我们能在起跑之前已经合理合法的取得了足够的优势, 那么我将更有优势, 如下图

我们若是能像上图,在起跑之前已经取得了合理的领先优势, 那么我们应该比赢在起跑线上更有优势感了。我想当我们有了足够超前的优势后, 您就真的不用担心自己有事情打扰, 有跑的慢的可能等。。。  一切当然都不是问题了。

本文探讨一种儿童计算机培训的策略问题, 希望对您有一定的帮助。

一。 我们的终点在哪里?

有了起跑线, 自然就要有终点, 那么什么是我们的终点, 也就是:什么是我们的目标?

我们的目标就是孩子将来大学毕业后,能在工作中更轻松, 更有竞争力, 用更少的时间获得更多成功, 更快的提升。 我们孩子现在可能不了解将来社会的压力和竞争, 但是我们的家长可能会略知道些社会的竞争。 我们总会自觉不自觉的,主动或者被动的就被参与到社会竞争中。这里是我以前总结的关于人的竞争的资料供您参考

二。 我们如何能获取必要的合理的优势?

正如文章的前面所讲, 我们必须提前在起跑线上出发, 处于一个非常超前的位置, 然后我们在正式起跑的时候我们就有了足够的优势了。

每个行业等都有自己的优势,都有自己的办法和窍门, … 阅读全文

Kubernetes 在知乎上的应用

  categories:资料  author:

知乎在 2014 年开始使用容器技术,至今为止几乎所有的业务都运行在容器平台上。知乎最初使用 Mesos 来管理容器集群,现在正处于向 Kubernetes 迁移的过程中。本次分享主要介绍知乎应用 Kubernetes 管理容器集群的一些经验。

从 Mesos 到 Kubernetes

之前的调度框架是基于 Mesos 自研的。采用的语言是 Python。运行了大概两年多的时间了,也一直比较稳定。但随着业务的增长,现有的框架的问题逐渐暴露。

  1. 调度速度遇到瓶颈,影响大业务的部署速度。
  2. 不能很好的支持有状态服务。

解决上述问题的方案有两个,一个是对现有系统进行改进重构,另一个是迁移到 Kubernetes。我们最终选择迁移到 Kubernetes,主要基于以下考虑。

  1. Kubernetes 的架构设计简单明了,容器管理的抽像做的很好,重易进行复用和二次开发,没有必要造重复的轮子。比较典型的像Pod、Mesos 也已经引进了类似概念。
  2. Kubernetes 已经逐渐成为业界主流。社区很活跃,新的特性不断地被添加进来,这导致 Kubernetes 变的越来越重,但基本的架构和核心功能是一直比较稳定的。
  3. 相对于 Mesos 来讲,基于 Kubernetes 的开发成本是要低一些的,尤其是在熟悉之后。便于 k8s 的推广使用。除了主要的业务运行平台 bay,我们的负载均衡平台、Kafka 平台以及定时任务平台全部都是基本 Kubernetes 的。
阅读全文

Linkerd 使用指南

  categories:资料  author:

前言

该文章已归档到 kubernetes-handbook 第五章【领域应用】中,一切内容以 kubernetes-handbook 为准,该文档可能不会及时更新。以下内容参考:A Service Mesh for Kubernetes

Linkerd 作为一款 service mesh 与kubernetes 结合后主要有以下几种用法:

  1. 作为服务网关,可以监控 kubernetes 中的服务和实例
  2. 使用 TLS 加密服务
  3. 通过流量转移到持续交付
  4. 开发测试环境(Eat your own dog food)、Ingress 和边缘路由
  5. 给微服务做 staging
  6. 分布式 tracing
  7. 作为 Ingress controller
  8. 使用 gRPC 更方便

以下我们着重讲解在

阅读全文

FreeWheel基于Kubernetes容器云构建与实践

  categories:资料  author:
【编者的话】随着公司业务不断发展以及逐渐向微服务的转变,我们借助于Kubernetes容器化解决方案来标准化和简化应用发布的整个流程,使原来需要大量人工维护和干预的工作变为自动化。本次内容主要是FreeWheel现阶段基于Kubernetes容器化经验和实践的总结,目标是提供一个持续、稳定、高效的容器云平台。

服务健康检查与自我恢复

对线上业务来说,保证服务的正常稳定是重中之重,对故障服务的及时处理避免影响业务以及快速恢复一直是开发运维的难点。Kubernetes提供了健康检查服务,对于检测到故障服务会被及时自动下线,以及通过重启服务的方式使服务自动恢复。

主要分享内容:

  1. 如何判断Container和Service的健康状态。
  2. 健康检查失败的Container和Service,如何自我恢复。
  3. 使用建议。

 

健康检查

使用Liveness及Readness探针
  • Liveness探针主要用于判断Container是否处于运行状态,比如当服务crash或者死锁等情况发生时,kubelet会kill掉Container,然后根据其设置的restart policy进行相应操作(可能会在本机重新启动Container,或者因为设置Kubernetes QoS,本机没有资源情况下会被分发的其他机器上重新启动)。
  • Readness探针主要用于判断服务是否已经正常工作,如果服务没有加载完成或工作异常,服务所在的Pod的IP地址会从服务的Endpoints中被移除,也就是说,当服务没有ready时,会将其从服务的load balancer中移除,不会再接受或响应任何请求。

探针处理Handler类型

无论对于Readness或Liveness探针,Handler均支持以下3种类型:ExecAction、TCPSocketAction、HTTPGetAction。每种类型说明与举例如下:

  • ExecAction:Container内部执行某个具体的命令,例子。
  • TCPSocketAction:通过Container的IP、port执行tcp进行检查, 例子。
  • HTTPGetAction:通过Container的IP、port、path,用HTTP Get请求进行检查,例子。

 

探针检查结果

探针检查结果分为3种情况:

  1. 成功(Success):通过检查。
  2. 失败(Failure):检查失败。
  3. 未知(Unknown):检查未知,需要人工干预。

 

健康检查总结
探针类型          说明                                 通过健康检查标准 
ExecAction       Container内部执行shell命令            shell命令返回
阅读全文



快乐成长 每天进步一点点      京ICP备18032580号-1