上个星期的时候,我想教我朋友做一个简单的app。想来想去教什么比較好。当时看见小米的计算器认为比較美丽,就想这个简单。然后就開始动手做了。我以为能够一个小时能够搞定。没想到花了快一天的时间。

哎。突然想起曾经公司的CTO的话,一切都是从简单開始的。

我自己的思路是:将计算器的item分为:integer,float,运算符,用list去存储。

然后我通过标记上一次输入的标记。推断它是否该插入list还是拿到last改动。然后依据先遍历高级运算,得到结果,将i-1设置为得到的结果。移除i+1,i。

再遍历低级运算,最后得到list(0)就是所须要的结果。当然,肯定须要非常多推断之类,由于demo的原因,我没有再去改善它。由于这个毕竟是我个人思路,假设有哪位朋友有更好的想法,能够给我留言。

1.输入的model

package com.example.calculator;

public class InputItem {

	private String input;
private int type; public InputItem() {
super();
}
public InputItem(String input, int type) {
super();
this.input = input;
this.type = type;
}
public String getInput() {
return input;
}
public void setInput(String input) {
this.input = input;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
} interface InputType {
public static final int INT_TYPE = 0; //int 类型
public static final int DOUBLE_TYPE=1; //double 类型
public static final int OPERATOR_TYPE = 2; //操作符类型
public static final int ERROR = 3; //操作符类型
} @Override
public String toString() {
return "InputItem [input=" + input + ", type=" + type + "]";
} }

2.逻辑运算

package com.example.calculator;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import com.example.calculator.InputItem.InputType; import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.annotation.SuppressLint;
import android.app.Activity; import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.TextView; public class MainActivity extends Activity implements OnClickListener{ private TextView mShowResultTv; //显示结果
private TextView mShowInputTv; //显示输入的字符
private Button mCBtn;
private Button mDelBtn;
private Button mAddBtn;
private Button mSubBtn;
private Button mMultiplyBtn;
private Button mDividebtn;
private Button mZeroButton;
private Button mOnebtn;
private Button mTwoBtn;
private Button mThreeBtn;
private Button mFourBtn;
private Button mFiveBtn;
private Button mSixBtn;
private Button mSevenBtn;
private Button mEightBtn;
private Button mNineBtn;
private Button mPointtn;
private Button mEqualBtn;
private HashMap<View,String> map; //将View和String映射起来
private List<InputItem> mInputList; //定义记录每次输入的数
private int mLastInputstatus = INPUT_NUMBER; //记录上一次输入状态
public static final int INPUT_NUMBER = 1;
public static final int INPUT_POINT = 0;
public static final int INPUT_OPERATOR = -1;
public static final int END = -2;
public static final int ERROR= -3;
public static final int SHOW_RESULT_DATA = 1;
public static final String nan = "NaN";
public static final String infinite = "∞"; @SuppressLint("HandlerLeak")
private Handler mHandler = new Handler(){ public void handleMessage(Message msg) { if(msg.what == SHOW_RESULT_DATA){
mShowResultTv.setText(mShowInputTv.getText());
mShowInputTv.setText(mInputList.get(0).getInput());
clearScreen(mInputList.get(0));
}
}
}; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
}
/**
* 初始化view
*/
private void initView() {
mShowResultTv = (TextView) this.findViewById(R.id.show_result_tv);
mShowInputTv = (TextView)this.findViewById(R.id.show_input_tv);
mCBtn = (Button)this.findViewById(R.id.c_btn);
mDelBtn= (Button)this.findViewById(R.id.del_btn);
mAddBtn= (Button)this.findViewById(R.id.add_btn);
mMultiplyBtn= (Button)this.findViewById(R.id.multiply_btn);
mDividebtn= (Button)this.findViewById(R.id.divide_btn);
mZeroButton = (Button)this.findViewById(R.id.zero_btn);
mOnebtn= (Button)this.findViewById(R.id.one_btn);
mTwoBtn= (Button)this.findViewById(R.id.two_btn);
mThreeBtn= (Button)this.findViewById(R.id.three_btn);
mFourBtn= (Button)this.findViewById(R.id.four_btn);
mFiveBtn= (Button)this.findViewById(R.id.five_btn);
mSixBtn= (Button)this.findViewById(R.id.six_btn);
mSevenBtn= (Button)this.findViewById(R.id.seven_btn);
mEightBtn= (Button)this.findViewById(R.id.eight_btn);
mNineBtn= (Button)this.findViewById(R.id.nine_btn);
mPointtn= (Button)this.findViewById(R.id.point_btn);
mEqualBtn= (Button)this.findViewById(R.id.equal_btn);
mSubBtn = (Button)this.findViewById(R.id.sub_btn);
setOnClickListener();//调用监听事件 }
/**
* 初始化数据
*/
private void initData() {
if(map == null)
map = new HashMap<View, String>();
map.put(mAddBtn,getResources().getString(R.string.add));
map.put(mMultiplyBtn,getResources().getString(R.string.multply));
map.put(mDividebtn,getResources().getString(R.string.divide));
map.put(mSubBtn, getResources().getString(R.string.sub));
map.put(mZeroButton ,getResources().getString(R.string.zero));
map.put(mOnebtn,getResources().getString(R.string.one));
map.put(mTwoBtn,getResources().getString(R.string.two));
map.put(mThreeBtn,getResources().getString(R.string.three));
map.put(mFourBtn,getResources().getString(R.string.four));
map.put(mFiveBtn,getResources().getString(R.string.five));
map.put(mSixBtn,getResources().getString(R.string.six));
map.put(mSevenBtn,getResources().getString(R.string.seven));
map.put(mEightBtn,getResources().getString(R.string.eight));
map.put(mNineBtn,getResources().getString(R.string.nine));
map.put(mPointtn,getResources().getString(R.string.point));
map.put(mEqualBtn,getResources().getString(R.string.equal));
mInputList = new ArrayList<InputItem>();
mShowResultTv.setText("");
clearAllScreen();
} /**
* 设置监听事件
*/
private void setOnClickListener() {
mCBtn.setOnClickListener(this);
mDelBtn.setOnClickListener(this);
mAddBtn.setOnClickListener(this);
mMultiplyBtn.setOnClickListener(this);
mDividebtn.setOnClickListener(this);
mSubBtn.setOnClickListener(this);
mZeroButton.setOnClickListener(this);
mOnebtn.setOnClickListener(this);
mTwoBtn.setOnClickListener(this);
mThreeBtn.setOnClickListener(this);
mFourBtn.setOnClickListener(this);
mFiveBtn.setOnClickListener(this);
mSixBtn.setOnClickListener(this);
mSevenBtn.setOnClickListener(this);
mEightBtn.setOnClickListener(this);
mNineBtn.setOnClickListener(this);
mPointtn.setOnClickListener(this);
mEqualBtn.setOnClickListener(this);
} /**
* 点击事件
*/
@Override
public void onClick(View arg0) {
switch (arg0.getId()) {
case R.id.c_btn:
clearAllScreen();
break;
case R.id.del_btn:
back();
break;
case R.id.point_btn:
inputPoint(arg0);
break;
case R.id.equal_btn:
operator();
break;
case R.id.add_btn:
case R.id.sub_btn:
case R.id.multiply_btn:
case R.id.divide_btn:
inputOperator(arg0);
break;
default:
inputNumber(arg0);
break;
}
}
/**
* 点击=之后開始运算
*/
private void operator() {
if(mLastInputstatus == END ||mLastInputstatus == ERROR || mLastInputstatus == INPUT_OPERATOR|| mInputList.size()==1){
return;
}
mShowResultTv.setText("");
startAnim();
findHighOperator(0);
if(mLastInputstatus != ERROR){
findLowOperator(0);
}
mHandler.sendMessageDelayed(mHandler.obtainMessage(SHOW_RESULT_DATA), 300);
} private void startAnim(){
mShowInputTv.setText(mShowInputTv.getText()+getResources().getString(R.string.equal));
Animation anim = AnimationUtils.loadAnimation(this, R.anim.screen_anim);
mShowInputTv.startAnimation(anim);
}
/**
* 输入点
* @param view
*/
private void inputPoint(View view) {
if(mLastInputstatus == INPUT_POINT){
return;
}
if(mLastInputstatus == END || mLastInputstatus == ERROR){
clearInputScreen();
}
String key = map.get(view);
String input = mShowInputTv.getText().toString();
if(mLastInputstatus == INPUT_OPERATOR){
input = input+"0";
}
mShowInputTv.setText(input+key);
addInputList(INPUT_POINT, key);
}
/**
* 输入数字
* @param view
*/
private void inputNumber(View view){
if(mLastInputstatus == END || mLastInputstatus == ERROR){
clearInputScreen();
}
String key = map.get(view);
if("0".equals(mShowInputTv.getText().toString())){
mShowInputTv.setText(key);
}else{
mShowInputTv.setText(mShowInputTv.getText() + key);
}
addInputList(INPUT_NUMBER, key);
}
/**
* 输入运算符
* @param view
*/
private void inputOperator(View view) {
if(mLastInputstatus == INPUT_OPERATOR || mLastInputstatus == ERROR){
return;
}
if(mLastInputstatus == END){
mLastInputstatus = INPUT_NUMBER;
} String key = map.get(view);
if("0".equals(mShowInputTv.getText().toString())){
mShowInputTv.setText("0"+key);
mInputList.set(0,new InputItem("0",InputItem.InputType.INT_TYPE));
}else{
mShowInputTv.setText(mShowInputTv.getText() + key);
}
addInputList(INPUT_OPERATOR, key);
}
/**
* 回退操作
*/
private void back() {
if(mLastInputstatus == ERROR){
clearInputScreen();
}
String str = mShowInputTv.getText().toString();
if(str.length() != 1){
mShowInputTv.setText(str.substring(0, str.length()-1));
backList();
}else{
mShowInputTv.setText(getResources().getString(R.string.zero));
clearScreen(new InputItem("",InputItem.InputType.INT_TYPE));
}
}
/**
* 回退InputList操作
*/
private void backList() {
InputItem item = mInputList.get(mInputList.size() - 1);
if (item.getType() == InputItem.InputType.INT_TYPE) {
//获取到最后一个item,并去掉最后一个字符
String input = item.getInput().substring(0,
item.getInput().length() - 1);
//假设截完了,则移除这个item,并将当前状态改为运算操作符
if ("".equals(input)) {
mInputList.remove(item);
mLastInputstatus = INPUT_OPERATOR;
} else {
//否则设置item为截取完的字符串。并将当前状态改为number
item.setInput(input);
mLastInputstatus = INPUT_NUMBER;
}
//假设item是运算操作符 则移除。
} else if (item.getType() == InputItem.InputType.OPERATOR_TYPE) {
mInputList.remove(item);
if (mInputList.get(mInputList.size() - 1).getType() == InputItem.InputType.INT_TYPE) {
mLastInputstatus = INPUT_NUMBER;
} else {
mLastInputstatus = INPUT_POINT;
}
//假设当前item是小数
} else {
String input = item.getInput().substring(0,
item.getInput().length() - 1);
if ("".equals(input)) {
mInputList.remove(item);
mLastInputstatus = INPUT_OPERATOR;
} else {
if (input.contains(".")) {
item.setInput(input);
mLastInputstatus = INPUT_POINT;
} else {
item.setInput(input);
mLastInputstatus = INPUT_NUMBER;
}
}
}
}
//清理屏
private void clearAllScreen() { clearResultScreen();
clearInputScreen(); }
private void clearResultScreen(){
mShowResultTv.setText("");
} private void clearInputScreen() {
mShowInputTv.setText(getResources().getString(R.string.zero));
mLastInputstatus = INPUT_NUMBER;
mInputList.clear();
mInputList.add(new InputItem("", InputItem.InputType.INT_TYPE));
}
//计算完毕
private void clearScreen(InputItem item) {
if(mLastInputstatus != ERROR){
mLastInputstatus = END;
}
mInputList.clear();
mInputList.add(item);
} //实现高级运算
public int findHighOperator(int index) {
if (mInputList.size() > 1 && index >= 0 && index < mInputList.size())
for (int i = index; i < mInputList.size(); i++) {
InputItem item = mInputList.get(i);
if (getResources().getString(R.string.divide).equals(item.getInput())
|| getResources().getString(R.string.multply).equals(item.getInput())) {
int a,b; double c,d;
if(mInputList.get(i - 1).getType() == InputItem.InputType.INT_TYPE){
a = Integer.parseInt(mInputList.get(i - 1).getInput());
if(mInputList.get(i + 1).getType() == InputItem.InputType.INT_TYPE){
b = Integer.parseInt(mInputList.get(i + 1).getInput());
if(getResources().getString(R.string.multply).equals(item.getInput())){
mInputList.set(i - 1,new InputItem( String.valueOf(a * b),InputItem.InputType.INT_TYPE));
}else{
if(b == 0){
mLastInputstatus = ERROR;
if(a==0){
clearScreen(new InputItem(nan,InputType.ERROR));
}else{
clearScreen(new InputItem(infinite,InputType.ERROR));
}
return -1;
}else if(a % b != 0){
mInputList.set(i - 1,new InputItem(String.valueOf((double)a / b),InputItem.InputType.DOUBLE_TYPE));
}else{
mInputList.set(i - 1,new InputItem(String.valueOf((Integer)a / b),InputItem.InputType.INT_TYPE));
}
}
}else{
d = Double.parseDouble(mInputList.get(i + 1).getInput());
if(getResources().getString(R.string.multply).equals(item.getInput())){
mInputList.set(i - 1,new InputItem( String.valueOf(a * d),InputItem.InputType.DOUBLE_TYPE));
}else{
if(d == 0){
mLastInputstatus = ERROR;
if(a==0){
clearScreen(new InputItem(nan,InputType.ERROR));
}else{
clearScreen(new InputItem(infinite,InputType.ERROR));
}
return -1;
}
mInputList.set(i - 1,new InputItem(String.valueOf(a / d),InputItem.InputType.DOUBLE_TYPE));
}
}
}else{
c = Double.parseDouble(mInputList.get(i-1).getInput());
if(mInputList.get(i + 1).getType() == InputItem.InputType.INT_TYPE){
b = Integer.parseInt(mInputList.get(i + 1).getInput());
if(getResources().getString(R.string.multply).equals(item.getInput())){
mInputList.set(i - 1,new InputItem( String.valueOf(c* b),InputItem.InputType.DOUBLE_TYPE));
}else{
if(b== 0){
mLastInputstatus = ERROR;
if(c==0){
clearScreen(new InputItem(nan,InputType.ERROR));
}else{
clearScreen(new InputItem(infinite,InputType.ERROR));
}
return -1;
}
mInputList.set(i - 1,new InputItem(String.valueOf(c / b),InputItem.InputType.DOUBLE_TYPE));
}
}else{
d = Double.parseDouble(mInputList.get(i + 1).getInput());
if(getResources().getString(R.string.multply).equals(item.getInput())){
mInputList.set(i - 1,new InputItem( String.valueOf(mul(c,d)),InputItem.InputType.DOUBLE_TYPE));
}else{
if(d == 0){
mLastInputstatus = ERROR;
if(c==0){
clearScreen(new InputItem(nan,InputType.ERROR));
}else{
clearScreen(new InputItem(infinite,InputType.ERROR));
}
return -1;
}
mInputList.set(i - 1,new InputItem(String.valueOf(div(c, d)),InputItem.InputType.DOUBLE_TYPE));
}
}
}
mInputList.remove(i + 1);
mInputList.remove(i);
return findHighOperator(i);
}
}
return -1; } public int findLowOperator(int index) {
if (mInputList.size()>1 && index >= 0 && index < mInputList.size())
for (int i = index; i < mInputList.size(); i++) {
InputItem item = mInputList.get(i);
if (getResources().getString(R.string.sub).equals(item.getInput())
|| getResources().getString(R.string.add).equals(item.getInput())) {
int a,b; double c,d;
if(mInputList.get(i - 1).getType() == InputItem.InputType.INT_TYPE){
a = Integer.parseInt(mInputList.get(i - 1).getInput());
if(mInputList.get(i + 1).getType() == InputItem.InputType.INT_TYPE){
b = Integer.parseInt(mInputList.get(i + 1).getInput());
if(getResources().getString(R.string.add).equals(item.getInput())){
mInputList.set(i - 1,new InputItem( String.valueOf(a + b),InputItem.InputType.INT_TYPE));
}else{
mInputList.set(i - 1,new InputItem(String.valueOf(a - b),InputItem.InputType.INT_TYPE));
}
}else{
d = Double.parseDouble(mInputList.get(i + 1).getInput());
if(getResources().getString(R.string.add).equals(item.getInput())){
mInputList.set(i - 1,new InputItem( String.valueOf(a + d),InputItem.InputType.DOUBLE_TYPE));
}else{
mInputList.set(i - 1,new InputItem(String.valueOf(a - d),InputItem.InputType.DOUBLE_TYPE));
}
}
}else{
c = Double.parseDouble(mInputList.get(i-1).getInput());
if(mInputList.get(i + 1).getType() == InputItem.InputType.INT_TYPE){
b = Integer.parseInt(mInputList.get(i + 1).getInput());
if(getResources().getString(R.string.add).equals(item.getInput())){
mInputList.set(i - 1,new InputItem( String.valueOf(c + b),InputItem.InputType.DOUBLE_TYPE));
}else{
mInputList.set(i - 1,new InputItem(String.valueOf(c - b),InputItem.InputType.DOUBLE_TYPE));
}
}else{
d = Double.parseDouble(mInputList.get(i + 1).getInput());
if(getResources().getString(R.string.add).equals(item.getInput())){
mInputList.set(i - 1,new InputItem( String.valueOf(add(c, d)),InputItem.InputType.DOUBLE_TYPE));
}else{
mInputList.set(i - 1,new InputItem(String.valueOf(sub(c,d)),InputItem.InputType.DOUBLE_TYPE));
}
}
}
mInputList.remove(i + 1);
mInputList.remove(i);
return findLowOperator(i);
}
}
return -1; }
//currentStatus 当前状态 9 "9" "+"
void addInputList(int currentStatus,String inputChar){
switch (currentStatus) {
case INPUT_NUMBER:
if(mLastInputstatus == INPUT_NUMBER){
InputItem item = (InputItem)mInputList.get(mInputList.size()-1);
item.setInput(item.getInput()+inputChar);
item.setType(InputItem.InputType.INT_TYPE);
mLastInputstatus = INPUT_NUMBER;
}else if(mLastInputstatus == INPUT_OPERATOR){
InputItem item = new InputItem(inputChar, InputItem.InputType.INT_TYPE);
mInputList.add(item);
mLastInputstatus = INPUT_NUMBER;
}else if(mLastInputstatus == INPUT_POINT){
InputItem item = (InputItem)mInputList.get(mInputList.size()-1);
item.setInput(item.getInput()+inputChar);
item.setType(InputItem.InputType.DOUBLE_TYPE);
mLastInputstatus = INPUT_POINT;
}
break;
case INPUT_OPERATOR:
InputItem item = new InputItem(inputChar, InputItem.InputType.OPERATOR_TYPE);
mInputList.add(item);
mLastInputstatus = INPUT_OPERATOR;
break;
case INPUT_POINT://point
if(mLastInputstatus == INPUT_OPERATOR){
InputItem item1 = new InputItem("0"+inputChar,InputItem.InputType.DOUBLE_TYPE);
mInputList.add(item1);
mLastInputstatus = INPUT_POINT;
}else{
InputItem item1 = (InputItem)mInputList.get(mInputList.size()-1);
item1.setInput(item1.getInput()+inputChar);
item1.setType(InputItem.InputType.DOUBLE_TYPE);
mLastInputstatus = INPUT_POINT;
}
break;
}
} public static Double div(Double v1,Double v2){
BigDecimal b1 = new BigDecimal(v1.toString());
BigDecimal b2 = new BigDecimal(v2.toString());
return b1.divide(b2,10,BigDecimal.ROUND_HALF_UP).doubleValue();
} public static Double sub(Double v1,Double v2){
BigDecimal b1 = new BigDecimal(v1.toString());
BigDecimal b2 = new BigDecimal(v2.toString());
return b1.subtract(b2).doubleValue();
} public static Double add(Double v1,Double v2){
BigDecimal b1 = new BigDecimal(v1.toString());
BigDecimal b2 = new BigDecimal(v2.toString());
return b1.add(b2).doubleValue();
} public static Double mul(Double v1,Double v2){
BigDecimal b1 = new BigDecimal(v1.toString());
BigDecimal b2 = new BigDecimal(v2.toString());
return b1.multiply(b2).doubleValue();
}
}

我已上传:http://download.csdn.net/detail/huangyanbin123/7842923

仿小米简约Calculator的更多相关文章

  1. ScrollView反弹效果 仿小米私密短信效果

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/28441197 如今非常多APP都给ScrollView加入了反弹效果.QQ.小米 ...

  2. 60.自己定义View练习(五)高仿小米时钟 - 使用Camera和Matrix实现3D效果

    *本篇文章已授权微信公众号 guolin_blog (郭霖)独家公布 本文出自:猴菇先生的博客 http://blog.csdn.net/qq_31715429/article/details/546 ...

  3. 仿小米便签图文混排 EditText解决尾部插入文字bug

    一直想实现像小米便签那样的图文混排效果,收集网上的办法无非三种: 1.自定义布局,每张图片是一个ImageView,插入图片后插入EditText,缺点是实现复杂,不能像小米便签那样同时选中图片和文字 ...

  4. 仿小米logo案例

    效果:做一个具有logo能过渡切换效果,类似于小米网站的logo 思路:将两个用于切换的logo以文字形式嵌入活动块banner的左右半,活动块banner的上级是主展示块box,初态只展示右半log ...

  5. 仿小米网jQuery全屏滚动插件fullPage.js

    演 示 下 载   简介 如今我们经常能见到全屏网站,尤其是国外网站.这些网站用几幅很大的图片或色块做背景,再添加一些简单的内容,显得格外的高端大气上档次.比如 iPhone 5C 的介绍页面,QQ浏 ...

  6. android 仿小米icon处理,加阴影和边框

    本人自己在做一个launcher,所以须要处理icon,加阴影和边框等.这仅仅是一种处理方法,其它的处理方法类似. 源码: https://github.com/com314159/LauncherI ...

  7. html-模仿小米首页定位案例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Android -- 仿小米锁屏画报

    1,首先看一下我们今天实现的效果,效果图如下: 2,首先说一下大体的实现思路,首先这个视图一共分为三层,最外层是一个RecyclerView,第二层是一个被虚化的ImageView,第三层是一个正常的 ...

  9. Discuz3.3精仿小米风格整站模板制作——1、新建模板方案

    术语说明: 模板——模板是一堆按照规定命名方式的html文件,用于指定整个论坛不同页面的外观. 标签——标签和模板共同作用以实现论坛换肤功能,其中标签主要控制页面显示什么数据,显示多少条等. 风格—— ...

随机推荐

  1. mysql 查询格式化时间

    select DATE_FORMAT(addtime,'$m %d %Y') from tablename 输出:01 28 2019 数据库时间格式:2019-01-28 15:01:20

  2. 修改maven打包名字

    仅需在pom.xml添加下列配置 build> <finalName>userapi</finalName> </build>

  3. (2016北京集训十二)【xsy1542】疯狂求导

    题解: 这题看起来很难...但是实际上并没有想象中的那么难 第一眼看上去不会求导公式怎么办?不要紧,题目背景非常良心的给出了题目中的导数计算公式 求完导合并同类项很恶心怎么办?不要紧,样例解释说明了不 ...

  4. bzoj4551 [HEOI2016]树

    题目描述 在2016年,佳媛姐姐刚刚学习了树,非常开心.现在他想解决这样一个问题:给定一颗有根树(根为1),有以下 两种操作:1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记,其他结点均 ...

  5. Python学习第一天-编写登陆接口

    编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 帐号文件user.txt内容如下: qaz 123qwe 12345qweqwr 12321424...... 锁文件user_l ...

  6. maven跳过单元测试-maven.test.skip和skipTests的区别以及部分常用命令

    -DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下. -Dmaven.test.skip=true,不执行测试用例,也不编译测试 ...

  7. 锐捷SNMp注意:

    http://www.ruijie.com.cn/fw/wt/18855 1)设备名称.运行时间.sysOID.设备描述.联系人.设备位置:分别来自RFC-1213-MIB的system组中的sysN ...

  8. hadoop-03-安装java

    hadoop-03-安装java 1,su root 2, rpm -qa|grep jdk #查看已经安装的jdk 3,rpm -e --nodeps `rpm -qa|grep jdk ` #删除 ...

  9. 【Android进阶篇】Fragment的两种载入方式

    一.概述 Fragment(碎片,片段)是在Android 3.0后才引入的,基本的目的是为了实如今大屏幕设备上的更加动态更加灵活的UI设计. 这是由于平板电脑的屏幕比手机大得多,所以屏幕上能够放很多 ...

  10. oracle 11g RAC手动卸载grid,no deinstall

    1.通过root用户进入到grid的ORACLE_HOME [root@db01]# source /home/grid/.bash_profile [root@db01]# cd $ORACLE_H ...