Handler替代TimerTask

Handler替代TimerTask

原文来自:http://www.mopri.de/2010/timertask-bad-do-it-the-android-way-use-a-handler/

作者文中提到,使用TimerTask更新GUI,debug看起来可以,但实际上根本不起作用。
同时作者发现,使用handler可以得到更好的表现。

下面是一个例子,使用handler在100ms后启动一个Runnable:

private Handler handler = new Handler();
handler.postDelayed(runnable, 100);

下面代码里有一个小技巧,实现每隔100ms运行一次Runnable,就像TimerTask的scheduleAtFixedRate()方法:

Read More

Share Comments

Android架构师积累

Android架构师积累 ——By 高焕堂

“-Oriented”的涵意
◎ ”-Oriented”意味着一种信仰 。
◎ ”Object-oriented”相信任何软件都是
由对象所构成的,而且Nothing else 。

”-Driven”的涵意; 例如:Model-driven、Use Case-driven
– 其实”-driven”是”引导”,而不是大家常说的”驱动”。
– 就向北极星引导我们,指出方向而已。也像汽车司机(Driver)只是引导汽车方向,并没有去驱动汽车;而是引擎才是驱动汽车。

“-Centered”的涵意; 例如:Architecture-centered、 Architecture-centeric
–一切软件开发的活动都围绕着架构,就像盛诞节的糖果和礼物都挂在圣诞树上一样。

卡榫函数

• 所谓「卡榫(Hook)」,就是用来接合两个东西的接口。如果两个东西于不同时间出现,则一方会预留虚空,给予另一边于未来时刻能以实体来填补该空间,两者虚实相依,就密合起来了。设计优良的卡榫,可以让实体易于新陈代谢、抽换自如(Plug and Play, 俗称PnP)。

Read More

Share Comments

注解在Android中的应用

注解是Java语言的特性之一,它是在源代码中插入标签,这些标签在后面的编译或者运行过程中起到某种作用,每个注解都必须通过注解接口 @Interface 进行声明,接口的方法对应着注解的元素。

在上一篇文章JSR-330和assertion(断言)介绍中介绍了Java中的JSR-330 规范,这个规范就是使用注解的方式。

这篇文章主要介绍注解在Android中的应用。

Andorid中的应用

JSR-330规范只发布了规范 API 源码,主要是面向依赖注入使用者,而对注入器实现、配置并未作详细要求。
该规范主要配合依赖注入框架来使用。在Android中的依赖注入框架有 ButterKnife 和 Dagger2。下面简单分析 ButterKnife 的应用。

Read More

Share Comments

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