自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Tianhui Yang的个人网站:aitech.me

It takes courage to choose hope than fear -Mark Zuckerberg

  • 博客(44)
  • 收藏
  • 关注

原创 Linux SSH远程文件/目录传输命令scp

传文件scp -P 29031 /root/activator.zip root@**:/root/activator.zip传文件夹scp -P 2222 -r /root/lnmp0.4/ root@**:/home/lnmp0.4/

2016-12-10 10:54:04 361

转载 知乎上的48条神回复,句句都是人生哲理

1、交朋友的标准是什么? 答:出世的智者,入世的强者,或者正常而阳光的普通人。 2、男性更看重女性的身材、脸蛋,还是思想? 答:脸蛋和身材决定了我是否想去了解她的思想,思想决定了我是否会一票否决掉她的脸蛋和身材。 3、“别让孩子输在起跑线上”有道理吗? 答:一辈子都要和别人去比较,是人生悲剧的源头。 4、做哪些事情可以提升生活品质? 答:定期扔东西。 5、结婚以后两个人在一起最重要的

2016-06-29 13:47:58 2503 1

原创 使用screen将程序放到背景运行

使用ssh远程连接 linux服务器工作的时候,比如需要编译某些程序而这时网络不稳定断线, 工作就白干了, 又的重新连接重复刚才的工作,这时候screen就可以派上用场了。1.安装screenyum install screen2.运行 screenscreen3.用法Ctrl+a 然后按c 建立一个新的screen 会话 Ctrl+a 然后按d 将当前的screen 会话放在背景

2016-06-20 09:27:03 835

转载 IOC和DI的通俗解释

这是我以前复制下来的,原文地址已经找不到了。作者写得太生动了!首先想说说IoC(Inversion of Control,控制倒转)这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的mm,然后打听她们的兴趣爱好、qq号

2016-05-31 15:41:25 390

原创 ORM, ormlite和sqlite

ORM它的英文全称是Object Relational Mapping,意思是对象关系映射;如果接触过Java EE开发的,一定知道Java Web开发就有一个类似的数据库映射框架——Hibernate。简单来说,就是我们定义一个实体类,利用这个框架,它可以帮我们吧这个实体映射到我们的数据库中。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO

2016-05-30 17:08:34 1340

原创 Redis和MongoDB的关系

MongoDB是一个基于文档的数据库,所有数据是从磁盘上进行读写的。MongoDB善长的是对无模式JSON数据的查询。Redis是一个基于内存的键值数据库 它由C语言实现的,与Nginx/ NodeJS工作原理近似,同样以单线程异步的方式工作, 先读写内存再异步同步到磁盘,读写速度上比MongoDB有巨大的提升。 因此目前很多超高并发的网站/应用都使用Redis做缓存层,普遍认为其性能明显好于

2016-05-30 16:53:34 520

原创 MongoDB介绍

MongoDB简介MongoDB是10gen开发出来的的NoSQL资料库,而NoSQL是Not Only SQL的缩写。 MongoDB是用来处理大数据级的资料库,以文本的方式储存 Mongo的资料体结构是以Key,Value组合的,储存的方式与Json格式完全相同为什么要学习MongoDB1.MongoDB可以处理资料库为T级量的数据 2.支持分散式架构 当然在使用MongoDB也有很多不

2016-05-30 15:36:34 387

转载 RESTful API

网络应用程序,分为前端和后端两个部分。 当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备……)。 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。 这导致API构架的流行,甚至出现”API First”的设计思想。 RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。一、协议API与用户的通信协议,总是使用HTTPs协议。二、域名应

2016-05-30 14:52:09 340

原创 Java的线程池机制

JDK5开始使用java.lang.Thread,可以不用new也可以新建threadexecutorService的接口class有以下3个方法newSingleThreadExecutor 生成单一进程 new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS,

2016-05-27 15:43:25 267

转载 SQL的锁

一. 为什么要引入锁并发操作 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题:【丢失更新】 A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 【脏读】 A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致 【不可重复读】 A用户读取数据,

2016-05-27 13:44:10 353

转载 使用apache实现负载平衡

一,看有没有安装过mod_proxy之类的东西[zhangy@BlackGhost ~]$ /usr/local/apache2/bin/httpd -l 如果没有发现mod_proxy,我们就到apache安装目录下的modules里面看看有没有mod_proxy.so文件,如果都没有,则说明没有加载负载均衡的模块二,安装mod_proxy,proxy_balancer_module等进入apa

2016-05-27 12:52:18 375

原创 ANR和FC

1. ANR的定义(Application Not Responding)翻译过来就是应用程序无响应,此时正在运行的应用程序会变得很慢,反应不灵敏(一般来说,超过100毫秒的时间用户就会感知到阻滞感) 这三点,如果你在主线程里这样做,当然会使主线程阻塞啦。 1. 创建UI控件 2. 更新UI控件状态 3. 事件处理解决办法其实很简单,为每一个耗时的操作都开一个子线程,分别在子线程里执行,然后

2016-05-17 13:06:21 618

转载 android进程间通信

进程和线程进程就好比工厂的车间,它代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。 线程就好比车间里的工人。一个进程可以包括多个线程。 操作系统的设计,因此可以归结为三点: (1)以多进程形式,允许多个任务同时运行; (2)以多线程形式,允许单个任务分成不同的部分运行; (3)提供协调机制,一方面防止进程之间和线程之间产生冲突,另一方面允许进程之间和

2016-05-17 12:43:10 215

转载 Activity的view绘制流程

Activity的view绘制流程performTraversals 整个View树的绘图流程是在ViewRootImpl类的performTraversals()方法开始的private void performTraversals() { ...... //最外层的根视图的widthMeasureSpec和heightMeasureSpec由来

2016-05-17 10:07:10 420

原创 AsyncTask和Handler的区别

AsyncTask是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程。使用的优点:简单、快捷过程可控使用的缺点:在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来asyncTask和线程池Android 原生的 AsyncTask.java 是对线程

2016-05-17 09:13:06 496

原创 使用screen保持程序在背景继续运行

使用Play framework做了一个web程序,使用activator启动后,关闭ssh后,程序也自动关闭了。 这个问题,可以使用screen来解决 1. 安装 screenyum install screen在command line中输入screen,运行screen程序Ctrl+a 然后按c 建立一个新的screen 会话Ctrl+a 然后按d 将当前的scree

2016-05-17 08:27:54 339

转载 android的动画

Android中的动画大致分为三种:逐帧动画,视图动画,属性动画。1.逐帧动画这个动画效果是最简单的,也是非常容易实现的,原理就是,在一个ImageView上不断的切换显示的图片(当然也不一定是图片),来达到动画的效果,很明显,这样的实现方式和动漫,电影的原理是一样的。 实现的过程是非常简单的,大致上是: 准备每一帧的图像(可以是图片,也可以是通过xml定义的图形)。 给ImageView设置

2016-05-16 13:52:11 216

转载 android的touch事件

基础知识所有的Touch事件都封装到MotionEvent里面事件处理包括三种情况,分别为: 传递—-dispatchTouchEvent()函数、拦截——onInterceptTouchEvent()函数、消费—-onTouchEvent()函数和OnTouchListener事件类型分为ACTION_DOWN, ACTION_UP, ACTION_MOVE, ACTION_POINT

2016-05-16 13:21:48 234

转载 handler和looper的关系

在Android应用启动时,会默认有一个主线程(UI线程),在这个线程中会关联一个消息队列,所有的操作都会被封装成消息然后交给主线程来处理。 为了保证主线程不会主动退出,会将取消息的操作放在一个死循环中,这样程序就相当于一直在执行死循环,因此不会退出。 在应用启动时,会开启一个主线程(UI线程),并且启动消息循环,应用不停地从该消息队列中取出、处理消息达到程序运行的效果。 Looper对象封装

2016-05-16 09:55:44 638

原创 参观slush asia(创业大会)的笔记

2016年5月13,14日在东京召开了slush Asia 技术发展方向new interface facebook vivamazon echoon demand manufacturingservice /work on Demand uber, upworklocation will not be important2025 predictions 10% of peopl

2016-05-16 09:14:41 445

原创 使用Firebase介绍,附带聊天实现的功能code地址

什么是Firebase?firebase提供实时数据后端,可以只用JavaScript就能建立动态网站特点云服务,随时扩展,高性能,无需部署管理自己的服务器,数据库,大大减少工作量api简单,使用起来非常的方便,可大大减少代码量可通过网页对数据进行管理,很方便1. 注册首先需要注册一个Firebase账号(https://www.firebase.com/),可以得到一个地址(https:/

2016-05-11 13:18:31 2251

原创 使用com.lorentzos.swipecards创建Tantan探探,tinder般的翻卡片效果

使用com.lorentzos.swipecards创建探探,tinder般的翻卡片效果效果是这个样子滴 导入方法首先在Gradle中添加一下代码dependencies { compile 'com.lorentzos.swipecards:library:X.X.X@aar'}在activity中添加一下代码public class MyActivity_Simple ext

2016-05-07 16:33:53 1536 1

原创 JAVA复习(不定期更新)

java中的小问号if (a == b) { do(a); } else { do(b); } 相当于(a == b) ? do(a) : do(b); 关系Inheritance 继承Aggregation 聚集 聚合是一种特殊的关联(Association)形式,表示两个对象之间的所属(has-a)关系。所有者对象称为聚合对象,它的类称为聚合类;从属对象称为被聚合对

2016-05-07 15:52:44 307

原创 使用volley进行post操作

什么是volleyVolley 是一个 HTTP 库,它能够帮助 Android app 更方便地执行网络操作,最重要的是,它更快速高效,支持高并发网络连接。使用volley在manifest中添加android.permission.INTERNET使用newRequestQuence发送postRequestQueue requestQueue = Volley.newRequestQue

2016-05-07 13:39:35 244

原创 【轮子介绍】android图片加载库:Glide的简单介绍

什么是Glide 快速的图片加载工具,可以解决复杂的网络状况,缓存和图片处理,类似工具有Picasso,Universal Image Loader等 开发者是bumptech,好像被google买了 如何使用Glide导入Glidedependencies { compile 'com.github.bumptech.glide:glide:3.5.2' compile 'c

2016-05-07 12:33:57 288

原创 使用Jekyll now 30秒快速建站

打开jelly now的github,然后fork到自己的github上 Jekyll now的地址如下:https://github.com/barryclark/jekyll-nowfork按钮在屏幕的右上角然后在自己的github中,更改仓库域名 仓库名称必须为USERNAME.github.io或者USERNAME.github.com,其中USERNAME为github的账号名称。现

2016-05-07 10:22:43 597

转载 使用WiFIManager自动连接指定Wifi

定义连接方法的classopen WiFiconfigure WiFiconnet WiFipublic class WifiAdmin { // 定义WifiManager对象 private WifiManager mWifiManager; // 定义WifiInfo对象 private WifiInfo mWifiInfo; public Wif

2016-05-06 13:39:05 905

原创 android使用butterknife InjectView和BindView

Butter Knife 是一个专注于 Android 系统 View 的注入框架, 让你从烦人的 findViewById 中解脱出来。同时还支持 View 的一些事件处理函数。 butterknife地址:https://github.com/JakeWharton/butterknife 以下介绍两种实现button的方法老版本方法(InjectView)在app目录下的build.gr

2016-05-06 12:10:36 2435

原创 mac 苹果电脑的睡眠与休眠,决待机耗电的问题,AddressBookSourceSync

前一阵电脑关上盖子任然很费电,于是调查一下, 以下是苹果电脑的几种休眠状态, 查看自己电脑的休眠状态pmset -ghibernatemode=0by default is supported on desktops. The system will not back memory up to persistent storage. The system must wake from the c

2016-05-05 10:29:53 22899 1

原创 android test review

Which of the following is not Content Provider?answer: Shared PreferencesAndroid系统一共提供了四种数据存储方式。分别是:SharePreference、SQLite、Content Provider和File。Which of the following statements are correct with reg

2016-05-03 14:31:25 419

原创 ContentResolver和ContentProvider的关系

ContentProvider负责 组织应用程序的数据;向其他应用程序提供数据;ContentResolver则负责 获取ContentProvider提供的数据;修改/添加/删除更新数据等;ContentProvider 向外界提供数据Android提供了ContentProvider,一个程序可以通过实现一个ContentProvider的抽象接口将自己的数据完全暴露出去,而且Con

2016-04-27 14:41:13 1113

原创 android GCM(消息推送)面向国内开发的话基本不用看了

GCM(Google Cloud Message for Android)Google发布的Android服务器推送(push)技术。 之前的C2DM(Android Cloud to Device Messaging)已与2012年6月26日被正式弃用, 使用GCM,需要申请开通Google APIGCM的网络机制不是很适合国内的网络。之前有人写过一篇文章讲为何微信导致移动的基站负载变高之类的

2016-04-27 14:14:05 1005

原创 android的四大存储之一 SharedPreferences

SharedPreferences的基本概念:文件保存路径:/data/data/<包名>/shared_prefs目录下目录下生成了一个SP.xml文件 SharedPreferences的存储修改是通过Editor对象实现。 实现SharedPreferences存储的步骤如下: 1. 根据Context获取SharedPreferences对象 2. 利用edit()方法获取Edito

2016-04-27 14:11:06 261

转载 android的token

Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌, 当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。用设备号/设备mac地址作为Token(推荐)客户端:客户端在登录的时候获取设备的设备号/mac地址,并将其作为参数传递到服务端。 服务端:服务端接收到该参数后,便用一个变量来接收同时

2016-04-27 13:00:08 586

原创 content Provider

content Provider使用内容提供器是 Android 实现跨程序共享数据的标准方式。 实现各个应用程序之间的(跨应用)数据共享, ContentProvider是怎么实现数据共享的呢?(1) URI URI:统一资源标识符,代表要操作的数据,可以用来标识每个ContentProvider,这样你就可以通过指定的URI找到想要的ContentProvider,从中获取或修改数据。

2016-04-23 14:38:17 257

原创 android的service基础

service继承于servicepublic class MyService extends Service { @Override public IBinder onBind(Intent intent) { return null; }}每一个服务都需要在 AndroidManifest.xml 文件中进行注册才能生效, 这是 Android 四大组

2016-04-23 13:12:03 203

原创 初学者常见错误,android的多线程更新UI

android的多线程方法1class MyThread extends Thread {}new MyThread().start();方法2class MyThread implements Runnable {}MyThread myThread = new MyThread();new Thread(myThread).start();非主线程更新UI主线程通过handler接收mes

2016-04-23 11:27:42 294

原创 商业的本质

是在市场交换中获得利益 市场交换的基础是物权和人们的需求趋势越来越多的过剩需求也从物质转变为精神知识共享化(开源)产品拟人化(服务)所有权临时化(租赁,分期付款)信息传播实时化(互联网)人们的需求也在变化工业时代资源和制造力的匮乏,我们需要专家品牌独占和技术成立中心问题:压抑人性的自由互联网时代生产力的绝对过剩,人么需求是自我价值和个性主张去中心化时代人性将会再次解放

2016-04-23 11:10:36 603

原创 asyncTask基础

asyncTask的参数Params 在执行 AsyncTask 时需要传入的参数,可用于在后台任务中使用。Progress 后台任务执行时,如果需要在界面上显示当前的进度,则使用这里指定的泛型作为 进度单位。Result 当任务执行完毕后,如果需要对结果进行返回,则使用这里指定的泛型作为返回值 类型。asyncTask需要重写的方法onPreExecute() 用于进行一些界面上

2016-04-23 10:52:43 238

原创 android的fragment

android的fragment采用fragment而不是activity进行应用的UI管理,可绕开Android系统activity规则的限制。1.使用布局fragment这种方式虽然简单但灵活性不够。 添加fragment到activity布局中,就等同于将fragment及其视图与activity的视图绑定在一起, 在activity的生命周期过程中,无法切换fragment视图。publ

2016-04-23 10:50:52 269

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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