新项目中,使用了Google I/O 2013发布的新工具,使用Gradle构建android项目,并且在新版的Intellig IDEA以及google的Android Studio对其支持。本文就介绍一下怎么使用gradle构建android项目,进行多个版本编译。
Gradle是什么?
Gradle是以Groovy为基础,面向java应用,基于DSL语法的自动化构建工具。是google引入,替换ant和maven的新工具,其依赖兼容maven和ivy。
使用gradle的目的:
更容易重用资源和代码;
可以更容易创建不同的版本的程序,多个类型的apk包;
更容易配置,扩展;
更好的IDE
继续阅读 »
Create and configure lightweight, reproducible, and portable development environments.
上面这段话来自 Vagrant 官网,我翻译一下:创建和配置轻量级的,可重复的,可移植的开发环境。
继续阅读 »
之前一篇博客介绍了华为发布的针对Icehouse版本的all in one安装镜像,因为OpenStack安装后还需要进行一系列的初始配置(大家的环境和需求各异,因此没有直接集成在自动化中)。对于小白用户来说,可能还不能满足需求,今天我就一步一步教大家入门。
准备和注册镜像、Keypair
拷贝所需的镜像到服务器的任意目录(比如/home/images),我这里有3个镜像
UVP:/home/images # ll
total 683292
-rw-r--r-- 1 root root 476704768 Mar 24 20:33 F17-x86_64-cfntools.qcow2
-rw-r--r-- 1 root root
继续阅读 »
在octavia中,实际的loadbalancer服务是由虚拟机提供,所以在虚拟机中需要运行服务与octavia通信,接收octavia发来的操作指令,配置网卡、路由以及haproxy和keepalived软件。
实际上,虚拟机里面会运行amphora-agent进程,对外提供REST API访问,如下所示:
继续阅读 »
Python作为一门极其易学的语言,在科学计算等领域存在较大的应用,同样,著名的OpenCV库也发布了支持Python的库,本节主不再介绍如何在Ubuntu上配置Python OpenCV,有需要的同学可以参考这里。
本节将利用Python OpenCV做一个简单的测试,即
打开一个图片并显示
创建一个空图并显示
将彩色图像转成灰度图像并显示
实现过程
引用
这里我们需要引用cv2和numpy,cv2不言而喻,而NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,这里在引用时把numpy重命名为np。
python
import cv2
import
继续阅读 »
MkDocs
MkDocs(官网、Github)是一款使用python开发的轻量级静态站点生成器,主要用于生成api文档,使用markdown撰写,使用yaml作为配置文件。
安装
首先需要安装python以及pip,然后使用pip即可安装MkDocs。
sudo apt-get install python
sudo apt-get install python-pip
sudo pip install mkdocs
安装完成之后,可以执行命令mkdocs --version查看所安装版本。
开始使用
执行以下命令新建一个工程。
mkdocs new demo
cd demo
生成的目录里结构如下:
p
继续阅读 »
Byteman简介
Byteman由JBoss出品,JBoss大家应该都熟悉,顶顶大名的应用服务器JBoss也出自其手。Byteman的代码插入能力相比BTrace而言更强,似乎可以在代码中任意的位置插入我们的跟踪代码(当然,你可能需要对Java代码生成、字节码技术有一定的了解),以及访问当前方法中变量的能力(包括方法参数、局部变量、甚至于调用其它函数的参数值、返回值等),而BTrace在这方面的能力要弱很多。
安装Byteman
首先去官网下载最新的压缩包,解压,配置环境变量,开始操练,老熟悉了。新建BYTEMAN_HOME值是E:\byteman-3.0.10,编辑Path环境变量,在末尾添加;%BYTEMAN_HOME%
继续阅读 »
项目地址:https://github.com/yanqing6628780/angular2_ubus_openwrt
该项目是在公司的pandorabox固件的ubus接口下,使用angular进行开发尝试。
所以,要运行该项目:
- 你需要一个路由器
- 该路由器需要刷入pandorabox或者openwrt固件
- 固件内需要有以下ubus命令:
- session
- uci
如果你路由器不是192.168.1.1的ip,你还需要修改proxy.conf.json文件。
该项目是从angular的hero项目clone下来后直接修改的。只app内的文件,其他配置基本没有修改。
用到的知识点如下:
-
继续阅读 »
openjdk目录结构
```
├─agent Serviceability Agent的客户端实现
├─make 用来build出HotSpot的各种配置文件
├─src HotSpot VM的源代码
│ ├─cpu CPU相关代码(汇编器、模板解释器、ad文件、部分runtime函数在这里实现)
│ ├─os 操作系相关代码
│ ├─os_cpu
继续阅读 »
在面向对象程序设计中,工厂通常是一个用来创建其他对象的对象。工厂是构造方法的抽象,用来实现不同的分配方案。
工厂对象通常包含一个或多个方法,用来创建这个工厂所能创建的各种类型的对象。这些方法可能接收参数,用来指定对象创建的方式,最后返回创建的对象。
有时,特定类型对象的控制过程比简单地创建一个对象更复杂。在这种情况下,工厂对象就派上用场了。工厂对象可能会动态地创建产品对象的类,或者从对象池中返回一个对象,或者对所创建的对象进行复杂的配置,或者应用其他的操作。
这些类型的对象很有用。几个不同的设计模式都应用了工厂的概念,并可以使用在很多语言中。例如,在《设计模式》一书中,像工厂方法模式、抽象工厂模式、生成器模式,甚至是单例模式都应用了
继续阅读 »