当前位置:  编程技术>移动开发
本页文章导读:
    ▪R2,新春佳节第一弹,还是s60 googlereader客户端        R2,新年第一弹,还是s60 googlereader客户端 之前发布了MyReader,纯粹练手,现在加强版的R2来了,依然是s60的客户端。项目发布地址:http://code.google.com/p/r2-release/源码地址:https://github.com/jamies.........
    ▪ 魅族M9自定义回电/短信铃声        魅族M9自定义来电/短信铃声 第一,将我们需要的铃声从互联网下载下来(外面在这里假定下载好的铃声是“ChinaMeizu.Com_Ring.mp3”) 第二,将M9与电脑连接,然后在M9的文件夹里面找到名为“Ringto.........
    ▪ java高速生成大文件的MD5算法       java快速生成大文件的MD5算法 import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.nio.MappedByteBuffer;import java.nio.channels.FileChannel;import java.security.MessageDigest;import java.security.NoSuc.........

[1]R2,新春佳节第一弹,还是s60 googlereader客户端
    来源: 互联网  发布时间: 2014-02-18
R2,新年第一弹,还是s60 googlereader客户端
之前发布了MyReader,纯粹练手,现在加强版的R2来了,依然是s60的客户端。

项目发布地址:http://code.google.com/p/r2-release/

源码地址:https://github.com/jamiesun/R2


R2这个名字源自星战前传中那个超可爱的机器人,一个能力超强的家伙,是个好伙伴。

如果用s60 v3 fp1以上机型的(如N95,E71,E7X等)可以试试。

最好是带wifi功能,因为googlereader里的文章经常含有大量图片,且feed信息量很大,用gprs怕很耗流量,而且慢,3G倒是可以的。

在 s60 v3 fp1上做qt应用开发还不是那么溜,CPU,内存资源有限,以及大文件读写,sqllite数据库的使用都比较纠结.持久缓存的功能也暂时没有实现,不过我的经验也有限,我觉得可以解决的很好的.需要进一步学习。

客户端的持久存储比较重要,尽量避免反复请求相同资源,这也是我后续版本最要解决的,目前是暂时实现简单的会话级别的缓存.应用中用到了webkit来做页面显示,不过限制了缓存能力,因为不限制的话,它就吃完内存然后崩溃掉。

这只是一个beta版本,做这个东西也是主要从自己个人需求出发的,为了自己用的爽,我会不断改进的,

更多截图在这里 http://www.flickr.com/photos/8328812/tags/mobile/

或者这里 http://www.douban.com/photos/album/20747158/




    
[2] 魅族M9自定义回电/短信铃声
    来源: 互联网  发布时间: 2014-02-18
魅族M9自定义来电/短信铃声

第一,将我们需要的铃声从互联网下载下来(外面在这里假定下载好的铃声是“ChinaMeizu.Com_Ring.mp3”)

第二,将M9与电脑连接,然后在M9的文件夹里面找到名为“Ringtones”的文件夹,并打开它。

第三,将铃声复制进这个文件夹

然后安全断开M9与电脑的连接,打开M9的主菜单

进入设置

然后选择手机铃声

滑动到最下面,就会看到我们刚才复制到M9里面的铃声了。

再点击一下铃声名字,前面出现绿色勾,就可以了。

自定义短信铃声也可以按照这个方法操作的,魅友们都明白了吗?


    
[3] java高速生成大文件的MD5算法
    来源: 互联网  发布时间: 2014-02-18
java快速生成大文件的MD5算法
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Util {
/**
* 默认的密码字符串组合,apache校验下载的文件的正确性用的就是默认的这个组合
*/
protected static char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9','a', 'b', 'c', 'd', 'e', 'f' };
protected static MessageDigest messagedigest = null;
static{
   try{
    messagedigest = MessageDigest.getInstance("MD5");
   }catch(NoSuchAlgorithmException nsaex){
    System.err.println(MD5Util.class.getName()+"初始化失败,MessageDigest不支持MD5Util。");
    nsaex.printStackTrace();
   }
}

public static void main(String[] args) throws IOException {
   long begin = System.currentTimeMillis();

   File big = new File("E:/游戏/冲绳那霸.rar");

   String md5=getFileMD5String(big);

   long end = System.currentTimeMillis();
   System.out.println("md5:"+md5+" time:"+((end-begin)/1000)+"s");
}

/**
* 适用于上G大的文件
* @param file
* @return
* @throws IOException
*/
public static String getFileMD5String(File file) throws IOException {
   FileInputStream in = new FileInputStream(file);
   FileChannel ch = in.getChannel();
   MappedByteBuffer byteBuffer = ch.map(FileChannel.MapMode.READ_ONLY, 0, file.length());
   messagedigest.update(byteBuffer);
   return bufferToHex(messagedigest.digest());
}

public static String getMD5String(String s) {
   return getMD5String(s.getBytes());
}

public static String getMD5String(byte[] bytes) {
   messagedigest.update(bytes);
   return bufferToHex(messagedigest.digest());
}

private static String bufferToHex(byte bytes[]) {
   return bufferToHex(bytes, 0, bytes.length);
}

private static String bufferToHex(byte bytes[], int m, int n) {
   StringBuffer stringbuffer = new StringBuffer(2 * n);
   int k = m + n;
   for (int l = m; l < k; l++) {
    appendHexPair(bytes[l], stringbuffer);
   }
   return stringbuffer.toString();
}


private static void appendHexPair(byte bt, StringBuffer stringbuffer) {
   char c0 = hexDigits[(bt & 0xf0) >> 4];
   char c1 = hexDigits[bt & 0xf];
   stringbuffer.append(c0);
   stringbuffer.append(c1);
}

public static boolean checkPassword(String password, String md5PwdStr) {
   String s = getMD5String(password);
   return s.equals(md5PwdStr);
}
}

    
最新技术文章:
▪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