linux(centos) 搭建SVN服务器

linux(centos) 搭建SVN服务器

安装步骤如下:

第一步:安装SVN

yum install subversion

第二步:创建SVN版本库目录

mkdir -p /var/svn/svnrepos

第三步:创建版本库

Read More

Share Comments

JSR-330和assertion(断言)介绍

@Inject注解和Android中的依赖注入框架

怎么让代码显得高大上呢,当然是多使用注解,那Android Support Annotation没新意了,有没有更高端的呢?

当然有了。Java 依赖注入标准(JSR-330)规范,主要应用在JavaEE中。在 javax.inject 包中提供了一个接口 Provider,和几个注解类型 @Scope、@Inject、@Named、@Qualifier

关于JSR-330标准可以看这篇文章:Java 依赖注入标准(JSR-330)

下面简单介绍下 javax.inject 中提供的注解类型。

Read More

Share Comments

“HTTPS”安全在哪里?

文章转载自:“HTTPS”安全在哪里? (出处: Bugly)


背景

最近基于兴趣学学习了下 HTTPS 相关的知识,在此记录下学习心得。

在上网获取信息的过程中,我们接触最多的信息加密传输方式也莫过于HTTPS了。每当访问一个站点,浏览器的地址栏中出现绿色图标时,意味着该站点支持HTTPS信息传输方式。我们知道HTTPS是我们常见的HTTP协议与某个加密协议的混合体,也就是 HTTP+S。这个 S 可以是 TLS(安全传输层协议)、也可以是 SSL(安全套接层),不过我更认可另一个抽象概括的说法,HTTP+Security。不过要谈论 HTTPS 为何安全,还得从 HTTP 为何不安全说起。

Read More

Share Comments

解决Android多进程导致Application重复创建问题

本编文章是在阅读:Android架构思考(模块化、多进程)过程中,结合自己的理解,对Android开启多进程,会导致Application重复创建问题进行一个总结。


Android开启多进程

一般情况下,一个应用程序就一个进程,这个进程的名称就是应用程序包名。Android的四大组件在AndroidManifest文件中注册的时候,有个属性是android:process,这里可以指定组件的所处的进程。

一个进程情况下,Application的onCreate方法只会执行一次,但如果应用中采用多进程方式,onCreate方法会执行多次。

解决Application的onCreate方法多次调用

总结了两种实现方式:

Read More

Share Comments

MAC下用iTerm2连接远程主机

MAC下用iTerm2连接远程主机

iTerm2是MAC的一个终端工具。
简单介绍一个小功能,使用iTerm2连接远程主机:

  • 1.先打开一个iTerm2窗口,选择菜单profiles中的Open Profiles,然后选择Edit Profiles中创建一个新的Profile,随便命名成容易记的。
  • 2.选择command,输入ssh -A -p xxx root@输入远程计算机的IP地址(xxx表示端口)。
  • 3.然后选择这个新的profile,New一个window就可以连接远程服务器了。

SCP命令使用说明

Read More

Share Comments

IM 国外公司,服务费,方案

一、海外提供IM服务的公司

1.1 Sinch

官网: https://www.sinch.com/products/instant-messaging/
收费介绍
Snich_pricing

Read More

Share Comments

Android 增量更新整理

背景

在前几年,整体移动网络环境相比现在差很多,加之流量费用又相对较高,因此每当我们发布新版本的时候,一些用户升级并不是很积极,这就造成了新版本的升级率并不高。而google为了解决了这个问题,提出了Smart App Update,即增量更新(也叫做差分升级)。

增量更新与热修复完全不是一个东西。增量更新需要重新安装apk,而热修复不需要。热修复也能完成部分增量更新的功能。

增量更新的流程

增量更新的具体流程是:用户手机上安装着某个应用,下载了增量包,手机上的apk和增量包合并形成新的包,然后再次安装(注意这个过程是要重新安装的,当然部分应用市场有root权限你可能感知不到)。

Read More

Share Comments

ThreadLocal一个使用——SimpleDateFormat

背景

之前写过一篇文章:《ThreadLocal、HandlerThread、Lopper区别》,其中简单提及了ThreadLocal的解释。本篇文章主要结合具体应用场景——SimpleDateFormat,和大家来一起学习ThreadLocal的原理,并对ThreadLocal进行一个详细的介绍。

下面是本文的参考资料:

java学习记录–ThreadLocal使用案例——SimpleDateFormat:
http://blog.csdn.net/u012706811/article/details/53231598

SimpleDateFormat的线程安全问题与解决方案:
http://www.cnblogs.com/zemliu/archive/2013/08/29/3290585.html

前言

Thread这个类有一个变量:ThreadLocal.ThreadLocalMap threadLocals。

这是一个map的数据结构,里面的元素的key就是ThreadLocal,value就是我们自定义的一些目标类。

我们可以在自己的多线程类中定义好几个ThreadLocal,然后每一个ThreadLocal put一个特定的目标类,然后以后可以用ThreadLocal get到目标类(ThreadLocal用自己作为Thread里map的key),因为每个Thread有自己独自的map,所以这样可以实现每个线程有自己的LocalThread,并且一个Thread里可以有多个LocalThread。

ThreadLocal为变量在每个线程中都创建了一个副本,所以每个线程可以访问自己内部的副本变量,不同线程之间不会互相干扰。

本篇文章结合具体应用场景,来分析ThreadLocal为什么可以实现不同线程之间不会互相干扰。

Read More

Share Comments