当前位置:  编程技术>移动开发
本页文章导读:
    ▪java开发软件的装配和执行环境的设置        java开发软件的安装和执行环境的设置假设java安装在C:\Program Files\Java\目录下,目录结构如下: C:\Program Files\Java\Java\jdk1.6.0_10 C:\Program Files\Java\Java\jre6 安装之后不能直接使用,必须设置下面环境.........
    ▪ 自旋锁(spinlock) 解释得经典,透辟        自旋锁(spinlock) 解释得经典,透彻 获得自旋锁和释放自旋锁有好几个版本,因此让读者知道在什么样的情况下使用什么版本的获得和释放锁的宏是非常必要的。   如果被保护的共享资.........
    ▪ 多张图片调整成连续动画       多张图片整合成连续动画把多张图片整合成连续动画,这恐怕是很多苹果开发者需要的功能。下面是单次播放和循环播放的代码。 animationImageView.animationImages = imageFrames;// imageFrames 是一个图片.........

[1]java开发软件的装配和执行环境的设置
    来源: 互联网  发布时间: 2014-02-18
java开发软件的安装和执行环境的设置
假设java安装在C:\Program Files\Java\目录下,目录结构如下:
C:\Program Files\Java\Java\jdk1.6.0_10
C:\Program Files\Java\Java\jre6
安装之后不能直接使用,必须设置下面环境变量。其中JAVA_HOME是可选的,其他两个环境变量是必须设置的。

1.环境变量JAVA_HOME:-----可以不用设置这个环境变量。 设置的目的是为能够使用相对路径的方法来设置后面的  
                                                                               环境变量。
C:\Program Files\Java

2.环境变量classpath:
C:\Program Files\Java\jdk1.6.0_10\bin;C:\Program Files\Java\jdk1.6.0_10\lib\tools.jar;C:\Program Files\Java\jdk1.6.0_10\lib\dt.jar;

3.环境变量path:
添加C:\Program Files\Java\jdk1.6.0_10\bin;C:\Program Files\Java\jre6\bin



设置好之后,要通过简单的程序验证之前的设置是否正确。

测试程序如下。因为class之前使用了public,存储程序的文件名必须设置为Hello.java。 程序的功能是显示出hello world!

public class Hello
{ public static void main(String args[])
{System.out.println("Hello world!");
}
}

保存之后。打开CMD,利用cd命令进入文件Hello.java所在的目录。

编译程序,允许命令javac Hello.java

在执行java Hello命令。 程序输出hello world!

上述测试成功完成后,则可说明java开发环境设置成功。



    
[2] 自旋锁(spinlock) 解释得经典,透辟
    来源: 互联网  发布时间: 2014-02-18
自旋锁(spinlock) 解释得经典,透彻
获得自旋锁和释放自旋锁有好几个版本,因此让读者知道在什么样的情况下使用什么版本的获得和释放锁的宏是非常必要的。

  如果被保护的共享资源只在进程上下文访问和软中断上下文访问,那么当在进程上下文访问共享资源时,可能被软中断打断,从而可能进入软中断上下文来对被保护的共享资源访问,因此对于这种情况,对共享资源的访问必须使用spin_lock_bh和spin_unlock_bh来保护。
  当然使用spin_lock_irq和spin_unlock_irq以及spin_lock_irqsave和spin_unlock_irqrestore也可以,它们失效了本地硬中断,失效硬中断隐式地也失效了软中断。但是使用spin_lock_bh和spin_unlock_bh是最恰当的,它比其他两个快。
  如果被保护的共享资源只在进程上下文和tasklet或timer上下文访问,那么应该使用与上面情况相同的获得和释放锁的宏,因为tasklet和timer是用软中断实现的。
  如果被保护的共享资源只在一个tasklet或timer上下文访问,那么不需要任何自旋锁保护,因为同一个tasklet或timer只能在一个CPU上运行,即使是在SMP环境下也是如此。实际上tasklet在调用tasklet_schedule标记其需要被调度时已经把该tasklet绑定到当前CPU,因此同一个tasklet决不可能同时在其他CPU上运行。
  timer也是在其被使用add_timer添加到timer队列中时已经被帮定到当前CPU,所以同一个timer绝不可能运行在其他CPU上。当然同一个tasklet有两个实例同时运行在同一个CPU就更不可能了。
  如果被保护的共享资源只在两个或多个tasklet或timer上下文访问,那么对共享资源的访问仅需要用spin_lock和spin_unlock来保护,不必使用_bh版本,因为当tasklet或timer运行时,不可能有其他tasklet或timer在当前CPU上运行。
 如果被保护的共享资源只在一个软中断(tasklet和timer除外)上下文访问,那么这个共享资源需要用spin_lock和spin_unlock来保护,因为同样的软中断可以同时在不同的CPU上运行。
  如果被保护的共享资源在两个或多个软中断上下文访问,那么这个共享资源当然更需要用spin_lock和spin_unlock来保护,不同的软中断能够同时在不同的CPU上运行。
  如果被保护的共享资源在软中断(包括tasklet和timer)或进程上下文和硬中断上下文访问,那么在软中断或进程上下文访问期间,可能被硬中断打断,从而进入硬中断上下文对共享资源进行访问,因此,在进程或软中断上下文需要使用spin_lock_irq和spin_unlock_irq来保护对共享资源的访问。
  而在中断处理句柄中使用什么版本,需依情况而定,如果只有一个中断处理句柄访问该共享资源,那么在中断处理句柄中仅需要spin_lock和spin_unlock来保护对共享资源的访问就可以了。
  因为在执行中断处理句柄期间,不可能被同一CPU上的软中断或进程打断。但是如果有不同的中断处理句柄访问该共享资源,那么需要在中断处理句柄中使用spin_lock_irq和spin_unlock_irq来保护对共享资源的访问。
  在使用spin_lock_irq和spin_unlock_irq的情况下,完全可以用spin_lock_irqsave和spin_unlock_irqrestore取代,那具体应该使用哪一个也需要依情况而定,如果可以确信在对共享资源访问前中断是使能的,那么使用spin_lock_irq更好一些。
  因为它比spin_lock_irqsave要快一些,但是如果你不能确定是否中断使能,那么使用spin_lock_irqsave和spin_unlock_irqrestore更好,因为它将恢复访问共享资源前的中断标志而不是直接使能中断。
  当然,有些情况下需要在访问共享资源时必须中断失效,而访问完后必须中断使能,这样的情形使用spin_lock_irq和spin_unlock_irq最好。

  spin_lock用于阻止在不同CPU上的执行单元对共享资源的同时访问以及不同进程上下文互相抢占导致的对共享资源的非同步访问,而中断失效和软中断失效却是为了阻止在同一CPU上软中断或中断对共享资源的非同步访问。


    
[3] 多张图片调整成连续动画
    来源: 互联网  发布时间: 2014-02-18
多张图片整合成连续动画

把多张图片整合成连续动画,这恐怕是很多苹果开发者需要的功能。下面是单次播放和循环播放的代码。

animationImageView.animationImages = imageFrames;// imageFrames 是一个图片数组   animationImageView是一个imageview
[UIView setAnimationDelegate:self];
animationImageView.animationDuration = 0.75f;
animationImageView.animationRepeatCount = 3;
[animationImageView startAnimating];
shouldPlay = NO;
NSInteger timeout = 3;
[NSTimer scheduledTimerWithTimeInterval:timeout target:self selector:@selector(stopAnimation) userInfo:nil repeats:NO];

/*=======================================================================*/

循环播放的代码

UIImageView* animView= [[UIImageView alloc] initWithFrame:self.view.frame];
     animView.animationImages = [NSArray arrayWithObjects:    
                                 [UIImage imageNamed:@"01.gif"],
                                 [UIImage imageNamed:@"02.gif"],
                                 [UIImage imageNamed:@"03.gif"],nil];
    
     // all frames will execute in 1.75 seconds
     animView.animationDuration = 1.75;
     // repeat the annimation forever
     animView.animationRepeatCount = 0;
     // start animating
     [animView startAnimating];
     // add the animation view to the main window
     [self.view addSubview:animView];



    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android实现将已发送的短信写入短信数据库的... iis7站长之家
▪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