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:资料  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 更方便

以下我们着重讲解在

阅读全文

编程成为英国小学必修课

  categories:资料  author:

在信息数字化时代,美国中小学用信息技术改变教学方式,而英国似乎更加重视提升信息技术作为基础课程的地位。     信息数字化时代到来,如何科学合理地把现代技术教给孩子,美国、英国都有了不小的动作。
美国蒙哥马利县7月中旬宣布,将于今年八月推出 “校园技术升级”计划,为公立学校提供4万台笔记本和平板电脑,并在未来几年迅速推广。
三年内将有10万台设备进入校园

蒙哥马利教学督导员Joshua P. Starr告诉澎湃新闻(www.thepaper.cn),蒙哥马利学校系统在2014-2015学年将为三年级至高三年级的学生提供谷歌笔记本,为幼儿园至二年级学生提供安卓系统的平板电脑。4万台设备中,大约3万台用于中小学,1万台用于高中社会学课堂。首批设备会分发给学区参加“现代技术项目”的67所学校,其余设备将陆续抵达全县的各所学校。根据这项计划,2017学年前将有10万台设备进入校园。

蒙哥马利县共有在校学生151000人,是马里兰州学生人数最多、招生规模增长最快的学校系统。此次技术升级计划并不是让学生人手一台移动设备,笔记本和平板电脑作为学区财产仅供学生在校使用,通过资源共享、可持续的方式推进技术升级。

为推进这项技术升级计划,蒙哥马利学校系统将承担1500万美元的费用,联邦教育补助项目(E-rate program)将提供补充资金。该项目是美国政府为应对数字鸿沟、针对全国各所学校以及图书馆设立的国家补助项目。

蒙哥马利教学督导员Joshua P. Starr告诉澎湃新闻,在21世纪,数字设备开辟了新的机会,让教育变得丰富多彩。这项计划的重点不是技术,而是提升传授学问和学习知识的过程,提供个性化的教学,给学生更好的学习体验,促进合作与创新。
云网络:打造教育新平台

近年来,蒙哥马利县致力于实现教育信息化,让所有的学生用上连接云网络的移动电脑。不少学校已经安装了无线网络和交互式白板,九所公立学校在去年率先参加试点,让学生使用谷歌笔记本和安卓系统平板电脑完成作业,如创建录像、博客、网站等。

实现教育信息化,推广平板电脑等“新式武器”只是第一步,创建云学习平台才是关键。蒙哥马利从去年起建设该平台,目前正在与谷歌合作推进该计划,将谷歌应用服务教育版(Google Apps for Education)打造为师生共用的云平台,该平台提供各种网络通信及合作应用,学生可以储存、提交、分享作业,在家里复习上课内容,老师也可以在线为学生辅导功课。

新平台将为传统的课堂教学带来重大变革。蒙哥马利学校科技人员Sherwin Collettet告诉澎湃新闻,云平台的信息储存功能和交互式的环境可以为教育提供便利,“许多学生作业不是一节课内能够完成的,一星期可能也不够。要给孩子一段时间,循序渐进完成任务,通过合作解决问题。”
基础教育信息化已成趋势

在美国,信息技术与基础教育正在不断融合,很多中小学在信息技术硬件方面已经走在了蒙哥马利的前面。

在华盛顿地区,几百所学校在课堂教学中引进了平板电脑,例如,乔治王子县为本县60所贫困学校的部分课堂购买了4500台iPad;费尔法克斯县则鼓励学生把家里的电子设备带到教室,越来越多的学校争相效仿;马萨诸塞州的阿灵顿推行试点项目,学生人手一台移动设备,该项目将在明年继续推广。
信息技术:既是手段也是内容

在这个信息数字化时代,美国中小学用信息技术改变教学方式,而英国似乎更加重视提升信息技术作为基础课程的地位。

自2012年起,英国教育大臣迈克尔 戈夫力推计算机课程改革。今年9月,改革措施即将生效:英国小学生从5岁起要学习使用算法公式编程编码,从11岁起学习程序设计语言,以及设计、储存、应用计算机指令。

迈克尔 戈夫告诉澎湃新闻,未来就业市场对这些技能的需求很大,课程改革将让孩子赢在起跑线上。

伦敦汉维克(Hanwick)小学的一名计算机教师表示,学生需要更好得了解计算机和网络的工作原理,教会他们编程不是最终目标,关键是要学会技术背后的思维方式,让他们在未来有能力判断选择什么工具来完成某项任务。

在汉维克小学,5、6年级的计算机课将了信息技术和其他学科结合在一起,跨科目的教学方式深受学生的喜爱。比如,一堂关于自然灾害的课上,学生不仅学习自然科学知识,还要动手拍摄录像、直播,创建网站、博客,制作火山爆发的基础动画;另一节课上,老师教授学生运用可下载的免费网络软件,制作电脑游戏。

英国计算机协会教育主任Bill Mitchell在接受英国每日电讯报和澎湃新闻采访时表示,随着信息技能的推广,学生将从被动的技术消费者转变为积极的使用者,更好地适应数字时代的发展。… 阅读全文



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