当前位置:  ▪Android按钮单击事件的四种常用写法总结 iis7站长之家
本页文章导读:
    ▪升级到Win 八 ,你必须知道的        升级到Win 8 ,你必须知道的 升级到Win 8之前必须关注的十个问题     很多Windows 8的粉丝有疑虑,安装或者升级到Windows 8之前需要注意哪些环节的问题。比如,最低配置是什么,哪些版本能.........
    ▪ 再缜密的设计,小弟我们也很难保证完全没有bug,之所以仍未发现,只是激活这个bug的条件还没到来        再缜密的设计,我们也很难保证完全没有bug,之所以仍未发现,只是激活这个bug的条件还没到来appro dm368ipnc软件中的bug【一】 当外部ARN_RST_IN【DM368IPNC-OV2715-Ver_2.06.01_release版本中的GIO35脚】持.........
    ▪ Java 署理模式详解       Java 代理模式详解代理模式是我们比较常用的设计模式之一。其中新思想是为了提供额外的处理或者不同的操作而在实际对象与调用者之间插入一个代理对象。这些额外的操作通常需要与实际.........

[1]升级到Win 八 ,你必须知道的
    来源: 互联网  发布时间: 2014-02-18
升级到Win 8 ,你必须知道的
升级到Win 8之前必须关注的十个问题
    很多Windows 8的粉丝有疑虑,安装或者升级到Windows 8之前需要注意哪些环节的问题。比如,最低配置是什么,哪些版本能够升级到Windows 8,升级到Windows 8有何优惠措施等。这篇文章收集了网友们重点关注的问题,并根据微软官方给出的答案加以解答。
 

 
 
    问题1:Windows 8系统对硬件的最低要求是什么?
    运行Windows 8最低配置是:
    CPU:1GHz或更高,32位或64位
    内存:1G(32位)或2G(64位)
    硬盘:16G(32位)或20GB(64位)可用空间
    显卡:DirectX 9图形支持WDDM 1.0或更高版本
    问题2:针对Windows 8有什么升级优惠?
    2012年6月2日至2013年1月31期间购买一台符合条件的Windows 7电脑,都可以享受特殊促销价格(因地区而异)购买Windows 8专业版下载。
    问题3:Windows 8最低屏幕分辨率是多少?
    要访问Windows应用商店下载和运行应用,需要至少1024 x 768的屏幕分辨率。运行针对Windows 8内置的应用也需要此屏幕分辨率。要贴靠应用,需要至少1366 x 768的屏幕分辨率。
    问题4:自己可以创建Windows 8的安装介质吗?
    你可以在USB或DVD介质上创建自己的安装介质。在安装过程中,Windows 8系统将会提供以下选项:"立即安装"、"通过创建介质进行安装"或者"稍后从桌面安装".如果选择"通过创建介质进行安装",系统将为你提供创建USB或DVD安装介质的选项。
    升级Windows通常有"Windows升级助手"帮忙升级。Windows 升级助手会验证你的电脑是否可以运行Windows 8并提供详细的兼容性报告。Windows升级助手包括一个内置下载管理器,该下载管理器允许你随时启动、停止和恢复下载过程。它还会进行检查以确保成功完成下载。下载完成后,你可以选择安装 Windows 8的方式和时间。你可以在当前电脑上继续安装,也可以创建安装介质以在另一台基于Windows的电脑上安装。
    问题5:升级到Windows 8之前应该做些什么?
    与任何软件升级一样,Microsoft建议你在升级电脑前备份个人文件。此外,在订购过程中,你能够使用Windows 升级助手来帮助确定是否有兼容性问题或是否需要采取一些措施。Windows 升级助手将在提交订单之前运行。安装之后可能需要更新驱动程序。
    请访问电脑制造商的网站,以了解有关如何将电脑升级到 Windows 8 的更多信息,包括已更新的软件和驱动程序。
    问题6:升级过程中Windows升级助手能否检查兼容性?
    可以。运行Windows升级助手时,将会扫描电脑的Windows 8兼容性情况。 从而检查电脑上已安装的应用程序和设备,并向用户报告相关信息或可能需要采取的措施。 这可能包括有关需要更新才能在Windows 8上正常运行的软件、需要更新驱动程序的设备或者升级后可能无法正常运行的软件和设备的信息。
    同时,用户可以咨询电脑制造商,以确定有关Windows 8的整体兼容性和支持情况。
    问题7:升级到Windows 8,可以从32位升级到64位版本吗?
    不可以通过"Windows升级助手"从Windows 32位版本操作系统升级到 64 位版本操作系统。
    问题8:什么时候可以订购和下载Windows 8?
    从2012年10月26日开始即可订购Windows 8. 当Windows 8可供订购时,你将收到一封包含促销代码的电子邮件,你必须在升级订购过程中兑换此促销代码才能享受促销价。此电子邮件还包括订购和下载说明以及指向订购网站的链接。
    问题9:Windows 8升级的预期下载大小是多少?是否必须使用宽带连接才能下载?
    预计下载大小为2GB.必须连接互联网才能进行升级。虽然宽带连接可以提供最佳下载体验,但并不要求必须采用宽带连接。预计下载时间将因互联网连接和其他因素(计算机、地区等)而异。平均来说,下载需要 30-90 分钟时间。不过,某些用户的下载时间可能会更长。
    问题10:Windows 7电脑都可以升级到Windows 8吗?
    要升级到Windows 8,电脑必须满足Windows 8 的最低系统要求并通过必要的兼容性检查。安装Windows 7简易版的电脑不符合Windows升级优惠条件。

    
[2] 再缜密的设计,小弟我们也很难保证完全没有bug,之所以仍未发现,只是激活这个bug的条件还没到来
    来源: 互联网  发布时间: 2014-02-18
再缜密的设计,我们也很难保证完全没有bug,之所以仍未发现,只是激活这个bug的条件还没到来

appro dm368ipnc软件中的bug【一】

当外部ARN_RST_IN【DM368IPNC-OV2715-Ver_2.06.01_release版本中的GIO35脚】持续为低并且开启移动侦测报警、音频以及音频输出报警,若检测到频繁的移动侦测或者其他报警时,音频报警输出程序会再次关闭已经关闭的pcm音频设备,在snd_pcm_drain()函数的内部有一个assert,assert会检测到这个错误,然后导致上层的av_server直接退出。

之所以说是bug,是因为,外部的ALARM_RESET信号,我们不能保证它只是短暂的低电平,若持续十秒八秒,这个bug就会被激活。

看来,再缜密的设计,我们也很难保证完全没有bug,之所以仍未发现,只是激活这个bug的条件还没到来。


    
[3] Java 署理模式详解
    来源: 互联网  发布时间: 2014-02-18
Java 代理模式详解

代理模式是我们比较常用的设计模式之一。其中新思想是为了提供额外的处理或者不同的操作而在实际对象与调用者之间插入一个代理对象。这些额外的操作通常需要与实际对象进行通信,代理模式一般涉及到的角色有: 

抽象角色:声明真实对象和代理对象的共同接口; 

代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对象。同时,代理对象可以在执行真实对象操作时,附加其他的操作,相当于对真实对象进行封装。 

真实角色:代理角色所代表的真实对象,是我们最终要引用的对象。

 

以下以发送消息为例来说明一个简单的代理模式的基本实现:

首先明确目的:有一条消息,需要把这个消息发送出去,根据这个目的定义对应接口MessageHandler。需要的附加操作:假设需要验证消息的长度不能超过指定长度并且不能为空,并且我们需要统计相关信息发送到次数,超过指定的次数我们需要输出警报。我们通过代理模式来实现这个附加的操作。下面为对应的类关系图及示例代码。

 

//接口定义
public interface MessageHandler {
 public void sendMessage(String msg);
}

// 通过Email方式发送消息的实现类
public class EmailMessage implements MessageHandler {
 @Override
 public void sendMessage(String msg) {
  // TODO Auto-generated method stub
  System.out.println(msg + " send!!");
 }
}

// 消息处理的代理类
public class MessageProxy implements MessageHandler {
 private static int count;
 private MessageHandler emailMsg;

 @Override
 public void sendMessage(String msg) {
  // TODO Auto-generated method stub
  if (checkMessage(msg)) {
   if (emailMsg == null)
    emailMsg = new EmailMessage();
   count++;
   emailMsg.sendMessage(msg);
   System.out.println("Message sent:" + count);
  }
 }

 private boolean checkMessage(String msg) {
  return msg != null && msg.length() > 10;
 }
}

// 调用类
public class MainClass {
 private static void runProxy(MessageHandler handler) {
  handler.sendMessage("message for test");
 }

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  runProxy(new EmailMessage());
  System.out.println("++++++++++++++++Pjroxy++++++++++++++++++");
  runProxy(new MessageProxy());
 }
}


输出
message for test send!!
++++++++++++++++Pjroxy++++++++++++++++++
message for test send!!
Message sent:1



在例子中我们可以方便的在消息发送过程中添加各种需要的附加处理方式,也能方便的替换消息的处理方式,如将通过Email发送消息替换为通过短信发送消息,而调用方不会有丝毫察觉!在任何你想要将一些额外操作分离到具体对象之外,特别是希望能够很容易做出修改,或者想在具体对象的方法执行前插入一些额外操作的时候,代理就显得十分有用!

 

动态代理

java中动态代理机制的引入使得代理模式的思想更加完善与进步,它允许动态的创建代理并支持对动态的对所代理的方法进行调用。Java动态代理类位于Java.lang.reflect包下,一般主要涉及到以下两个类: 

(1). Interface InvocationHandler:该接口中仅定义了一个方法Object:invoke(Object obj,Method method, Object[] args)。在实际使用时,第一个参数obj一般是指代理类,method是被代理的方法,如上例中的request(),args为该方法的参数数组。这个抽象方法在代理类中动态实现。 

(2).Proxy:该类即为动态代理类,作用类似于上例中的ProxySubject,其中主要包含以下内容: 

Protected Proxy(InvocationHandler h):构造函数,估计用于给内部的h赋值。 

Static Class getProxyClass (ClassLoader loader, Class[] interfaces):获得一个代理类,其中loader是类装载器,interfaces是真实类所拥有的全部接口的数组。 

Static Object newProxyInstance(ClassLoader loader, Class[] interfaces, InvocationHandler h):返回代理类的一个实例,返回后的代理类可以当作被代理类使用(可使用被代理类的在Subject接口中声明过的方法)。 

 

所谓Dynamic Proxy是这样一种class:它是在运行时生成的class,在生成它时你必须提供一组interface给它,然后该class就宣称它实现了这些interface。你当然可以把该class的实例当作这些interface中的任何一个来用。当然啦,这个Dynamic Proxy其实就是一个Proxy,它不会替你作实质性的工作,在生成它的实例时你必须提供一个handler,由它接管实际的工作。下面我们通过动态代理来重新实现上面发送信息的例子!


 

在上面的例子基础上,我们先添加一个通过短信来发送消息的处理类:

public class SmsMessage implements MessageHandler {
@Override
public void sendMessage(String msg) {
// TODO Auto-generated method stub
System.out.println("SMS Message :" + msg+" sent !");
}
}
//动态代理类
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
public class DynamicMessageProxy implements InvocationHandler {
private static int count;
private MessageHandler msgHandler;
public DynamicMessageProxy(MessageHandler handler) {
msgHandler = handler;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
// TODO Auto-generated method stub
System.out.println("++++++++=============+++++++++");
System.out.println("proxy:" + proxy.getClass());
System.out.println("method:" + method);
System.out.println("++++++++=============+++++++++");
if (args != null && args.length == 1 && checkMessage((String) args[0])) {
count++;
System.out.println("Message sent:" + count);
return method.invoke(msgHandler, args);
}
return null;
}
private boolean checkMessage(String msg) {
return msg != null && msg.length() > 10;
}
}
//下面是调用
import java.lang.reflect.Proxy;
public class MainClass {
private static void runProxy(MessageHandler handler) {
handler.sendMessage("message for test");
}
/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
// runProxy(new EmailMessage());
// System.out.println("++++++++++++++++Proxy++++++++++++++++++");
// runProxy(new MessageProxy());
MessageHandler handler = new EmailMessage();
runProxy(handler);
MessageHandler proxy = (MessageHandler) Proxy.newProxyInstance(
MessageHandler.class.getClassLoader(),
new Class[] { MessageHandler.class }, new DynamicMessageProxy(
handler));
runProxy(proxy);
System.out.println("++++++++++++++++++++++++++++++++++");
// 短信方式
handler = new SmsMessage();
runProxy(handler);
proxy = (MessageHandler) Proxy.newProxyInstance(MessageHandler.class
.getClassLoader(), new Class[] { MessageHandler.class },
new DynamicMessageProxy(handler));
runProxy(proxy);
}
}
下面为以上方法的输出:
message for test send!!
++++++++=============+++++++++
proxy:class $Proxy0
method:public abstract void MessageHandler.sendMessage(java.lang.String)
++++++++=============+++++++++
Message sent:1
message for test send!!
++++++++++++++++++++++++++++++++++
SMS Message :message for test sent !
++++++++=============+++++++++
proxy:class $Proxy0
method:public abstract void MessageHandler.sendMessage(java.lang.String)
++++++++=============+++++++++
Message sent:2
SMS Message :message for test sent !



以上例子中,通过调用Proxy.newProxyInstance方法创建动态代理对象,该方法需要传入一个类加载器、一组希望代理实现的接口列表、InvocationHandler 接口的一个具体实现。动态代理可以将所有调用重定向到调用处理器,通常我们会向该处理器传递一个时间对象的引用。invoke()方法中传递进来了代理对象,当你需要区分请求来源时这是非常有用的,例如你可以通过判断传入的方法名屏蔽掉某些方法的执行!动态代理机制并不是会很频繁使用的方法,它通常用来解决一些特定情况下的问题,因此不要盲目的为了使用而使用,要根据自己的实际需求来决定!



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