当前位置:  编程技术>移动开发
本页文章导读:
    ▪【工具种】Java常用数据类型的转换        【工具类】Java常用数据类型的转换/** * @declaration 常用数据类型转换 * @date 2012-10-30 下午2:44:25 * */ public class DataTypeChangeHelper { /** * 将一个单字节的byte转换成32位的int * * @param b * .........
    ▪ [AndEngine学习课程] 第1节 搭建开发环境        [AndEngine学习教程] 第1节 搭建开发环境1.下载AndEngine源代码:       网址:https://github.com/nicolasgramlich/AndEngine       解压后放在磁盘上.         2.导入代码:      在eclipse下file->new->pr.........
    ▪ 【工具种】AES加密和解密       【工具类】AES加密和解密package innoview.itouchviewcivil.util; import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; /** * AE.........

[1]【工具种】Java常用数据类型的转换
    来源: 互联网  发布时间: 2014-02-18
【工具类】Java常用数据类型的转换
/**
 * @declaration 常用数据类型转换 
 * @date 2012-10-30 下午2:44:25 
 *
 */
public class DataTypeChangeHelper {
	/**
	 * 将一个单字节的byte转换成32位的int
	 * 
	 * @param b
	 *            byte
	 * @return convert result
	 */
	public static int unsignedByteToInt(byte b) {
		return b & 0xFF;
	}

	/**
	 * 将一个单字节的Byte转换成十六进制的数
	 * 
	 * @param b
	 *            byte
	 * @return convert result
	 */
	public static String byteToHex(byte b) {
		int i = b & 0xFF;
		return Integer.toHexString(i);
	}

	/**
	 * 将一个4byte的数组转换成32位的int
	 * 
	 * @param buf
	 *            bytes buffer
	 * @param byte[]中开始转换的位置
	 * @return convert result
	 */
	public static long unsigned4BytesToInt(byte[] buf, int pos) {
		int firstByte = 0;
		int secondByte = 0;
		int thirdByte = 0;
		int fourthByte = 0;
		int index = pos;
		firstByte = (0x000000FF & (buf[index]));
		secondByte = (0x000000FF & (buf[index + 1]));
		thirdByte = (0x000000FF & (buf[index + 2]));
		fourthByte = (0x000000FF & (buf[index + 3]));
		index = index + 4;
		return (firstByte << 24 | secondByte << 16 | thirdByte << 8 | fourthByte) & 0xFFFFFFFFL;
	}
	
	/**
	 * 将一个byte的数组转换成short数组
	 * @param buf 数据
	 * @param size 数据大小
	 * @return
	 */
	public short[] byteAryToShortAry(byte [] buf, int size){
		int arySize = size / 2;
		short [] result = new short[arySize];
		
		int firstByte = 0;
		int secondByte = 0;
		for (int i = 0; i < arySize; i+=2){
			firstByte = (0x000000FF & (buf[i]));
			secondByte = (0x000000FF & (buf[i + 1]));
			result[i] = (short)((firstByte << 8 | secondByte) & 0xffff);
		}
		return result;
	}
	
	/**
	 * 将一个short的数组转换成byte数组
	 * @param buf
	 * @param size
	 * @return
	 */
	public byte[] shortAryToByteAry(short [] buf, int size){
		int arySize = size * 2;
		byte [] result = new byte[arySize];
		
		for (int i = 0; i < arySize; i+=2){
			result[i] = (byte)(0xFF & (buf[i/2]>>8));
			result[i+1] = (byte)(0xFF & (buf[i/2]));
			
		}
		return result;
	}

	/**
	 * 将16位的short转换成byte数组
	 * 
	 * @param s
	 *            short
	 * @return byte[] 长度为2
	 * */
	public static byte[] shortToByteArray(short s) {
		byte[] targets = new byte[2];
		for (int i = 0; i < 2; i++) {
			int offset = (targets.length - 1 - i) * 8;
			targets[i] = (byte) ((s >>> offset) & 0xff);
		}
		return targets;
	}

	/**
	 * 将32位整数转换成长度为4的byte数组
	 * 
	 * @param s
	 *            int
	 * @return byte[]
	 * */
	public static byte[] intToByteArray(int s) {
		byte[] targets = new byte[2];
		for (int i = 0; i < 4; i++) {
			int offset = (targets.length - 1 - i) * 8;
			targets[i] = (byte) ((s >>> offset) & 0xff);
		}
		return targets;
	}

	/**
	 * long to byte[]
	 * 
	 * @param s
	 *            long
	 * @return byte[]
	 * */
	public static byte[] longToByteArray(long s) {
		byte[] targets = new byte[2];
		for (int i = 0; i < 8; i++) {
			int offset = (targets.length - 1 - i) * 8;
			targets[i] = (byte) ((s >>> offset) & 0xff);
		}
		return targets;
	}

	/**32位int转byte[]*/
	public static byte[] int2byte(int res) {
		byte[] targets = new byte[4];
		targets[0] = (byte) (res & 0xff);// 最低位
		targets[1] = (byte) ((res >> 8) & 0xff);// 次低位
		targets[2] = (byte) ((res >> 16) & 0xff);// 次高位
		targets[3] = (byte) (res >>> 24);// 最高位,无符号右移。
		return targets;
	}

	/**
	 * 将长度为2的byte数组转换为16位int
	 * 
	 * @param res
	 *            byte[]
	 * @return int
	 * */
	public static int byte2int(byte[] res) {
		// res = InversionByte(res);
		// 一个byte数据左移24位变成0x??000000,再右移8位变成0x00??0000
		int targets = (res[0] & 0xff) | ((res[1] << 8) & 0xff00); // | 表示安位或
		return targets;
	}
}


 


    
[2] [AndEngine学习课程] 第1节 搭建开发环境
    来源: 互联网  发布时间: 2014-02-18
[AndEngine学习教程] 第1节 搭建开发环境

1.下载AndEngine源代码:

      网址:https://github.com/nicolasgramlich/AndEngine

      解压后放在磁盘上.

     

 

2.导入代码:

     在eclipse下file->new->project...->Android Project from existing code

 

在这里首先要确认你的android SDK版本要在4.03之上,低的话一定要升级才可以顺利的导入工程

我的版本如下:

 

 接着点击next,找到源码目录选中:

     

   点击finish就可以把整个工程的源代码顺利的导入了

  

 

 至此,已经成功的把Andengine工程导入到eclipse了,下一节.将讲解怎么使用AndEngine导出的jar文件来建立工程.

我的Andengine源代码:http://download.csdn.net/detail/cen616899547/4701143

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


    
[3] 【工具种】AES加密和解密
    来源: 互联网  发布时间: 2014-02-18
【工具类】AES加密和解密
package innoview.itouchviewcivil.util;

import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;

/**
 * AES加密器
 * 
 * @author Eric_Ni
 * 
 */
public class AESEncryptor {
	/**
	 * AES加密
	 */
	public static String encrypt(String seed, String cleartext)
			throws Exception {
		byte[] rawKey = getRawKey(seed.getBytes());
		byte[] result = encrypt(rawKey, cleartext.getBytes());
		return toHex(result);
	}

	/**
	 * AES解密
	 */
	public static String decrypt(String seed, String encrypted)
			throws Exception {
		if (seed == null || "".equals(seed) || encrypted == null || "".equals(encrypted)){
			return null;
		}
		byte[] rawKey = getRawKey(seed.getBytes());
		byte[] enc = toByte(encrypted);
		byte[] result = decrypt(rawKey, enc);
		return new String(result);
	}

	private static byte[] getRawKey(byte[] seed) throws Exception {
		KeyGenerator kgen = KeyGenerator.getInstance("AES");
		SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
		sr.setSeed(seed);
		kgen.init(128, sr); // 192 and 256 bits may not be available
		SecretKey skey = kgen.generateKey();
		byte[] raw = skey.getEncoded();
		return raw;
	}

	private static byte[] encrypt(byte[] raw, byte[] clear) throws Exception {
		if (raw == null || clear == null){
			return null;
		}
		SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
		Cipher cipher = Cipher.getInstance("AES");
		cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
		byte[] encrypted = cipher.doFinal(clear);
		return encrypted;
	}

	private static byte[] decrypt(byte[] raw, byte[] encrypted)
			throws Exception {
		SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
		Cipher cipher = Cipher.getInstance("AES");
		cipher.init(Cipher.DECRYPT_MODE, skeySpec);
		byte[] decrypted = cipher.doFinal(encrypted);
		return decrypted;
	}

	public static String toHex(String txt) {
		return toHex(txt.getBytes());
	}

	public static String fromHex(String hex) {
		return new String(toByte(hex));
	}

	public static byte[] toByte(String hexString) {
		if (hexString == null || "".equals(hexString)){
			return null;
		}
		int len = hexString.length() / 2;
		byte[] result = new byte[len];
		for (int i = 0; i < len; i++) {
			result[i] = Integer.valueOf(hexString.substring(2 * i, 2 * i + 2), 16).byteValue();
		}
		return result;
	}

	public static String toHex(byte[] buf) {
		if (buf == null)
			return "";
		StringBuffer result = new StringBuffer(2 * buf.length);
		for (int i = 0; i < buf.length; i++) {
			appendHex(result, buf[i]);
		}
		return result.toString();
	}

	private final static String HEX = "0123456789ABCDEF";

	private static void appendHex(StringBuffer sb, byte b) {
		sb.append(HEX.charAt((b >> 4) & 0x0f)).append(HEX.charAt(b & 0x0f));
	}
}


 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3