当前位置:  编程技术>移动开发
本页文章导读:
    ▪3基站定位演示网址        三基站定位演示网址http://www.minigps.net/map3.html ......
    ▪ dalvik 基于寄存器        dalvik 基于寄存器?  dalvik 基于寄存器?   从函数调用的角度看   恕我见识浅薄,我接触到的几种实际系统的函数调用都是用栈的方式来实现的。     有以下几点     1 CPU指令集本身提供.........
    ▪ 排序算法-睡眠排序       排序算法--睡眠排序      我们学数据结构的时候会学到多种排序算法,基本上都是基于比较的排序,下面的这个排序算法并不是基于比较,确切的说它是基于cpu调度算法实现的,这个算法的.........

[1]3基站定位演示网址
    来源: 互联网  发布时间: 2014-02-18
三基站定位演示网址

http://www.minigps.net/map3.html



    
[2] dalvik 基于寄存器
    来源: 互联网  发布时间: 2014-02-18
dalvik 基于寄存器?

 

dalvik 基于寄存器?


  从函数调用的角度看

  恕我见识浅薄,我接触到的几种实际系统的函数调用都是用栈的方式来实现的。
 
  有以下几点
 
  1 CPU指令集本身提供了压栈,出栈指令。
 
  2 编译器在编译的时候组织这些栈操作指令,结合跳转指令来实现函数的调用。
 
  3 每个线程都有自己独立的栈,甚至不同的模式下也有不同的栈。
 
 
  dalvik 本身就是模拟一个实际的系统,也有函数调用,
 
  因此每个java线程也有一个java Frame的空间,
 
 
 
  dalvik中的所谓的java线程 就是一个普通的os线程扮演着一个java interpreter的角色。
 
  作为一个普通的os线程,本身拥有os给予的栈。
 
  作为一个java interpreter,拥有一个独立的java 栈。在其中进行解释执行的dalvik 字节码 操作的是java 栈。
 
  注意 此栈非彼栈。
 
   
 
  有趣的是dalvik 字节码指令集中没有提供栈操作指令,反而提供了更高级别的指令 invoke,return等。
 
  从dex code的层次来,的确清爽了很多,代码也就更节省。
 
  真正的栈操作都集成到invoke,return 等指令中。
  
  从函数调用的角度来看,dalvik 与真实系统类似,还是都是基于栈的。 
 
 
 
  另外整个dalvik指令的操作数只有"寄存器"和立即数,所以说其的指令集基于寄存器,这个描述没有问题。
 
  一旦脱离了这个语境,就不合适了。
 
 
  至于dalvik寄存器是映射到物理寄存器还是内存那就是另外一回事了。
 


    
[3] 排序算法-睡眠排序
    来源: 互联网  发布时间: 2014-02-18
排序算法--睡眠排序

      我们学数据结构的时候会学到多种排序算法,基本上都是基于比较的排序,下面的这个排序算法并不是基于比较,确切的说它是基于cpu调度算法实现的,这个算法的作者称之为--睡眠排序。

     它的基本思想是,对一组数据进行排序,不能存在负数值,这个数是多大,那么就在线程里睡眠它的10倍再加10,不是睡眠和它的数值一样大的原因是,当数值太小时,误差太大,睡眠的时间不比输出的时间少,那么就会存在不正确的输出结果。

     下面给出JAVA版本的代码,其中包含注释:

public class SleepSort {  
    public static void main(String[] args) {  
        int[] ints = {1,4,7,3,8,9,0,2,6,5,3,6,9};  
        //有多少个元素定义多少个线程
        SortThread[] sortThreads = new SortThread[ints.length]; 
        //对给一个线程对象初始化
        for (int i = 0; i < sortThreads.length; i++) {  
            sortThreads[i] = new SortThread(ints[i]);  
        }  
        //运行每一个线程
        for (int i = 0; i < sortThreads.length; i++) {  
            sortThreads[i].start();  
        }  
    }  
}  
class SortThread extends Thread{  
    int ms = 0;  
    public SortThread(int ms){  
        this.ms = ms;  
    }  
    public void run(){  
        try {  
            sleep(ms*10+10);  
        } catch (InterruptedException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
        System.out.println(ms);  
    }  
}  



    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
网络技术 iis7站长之家
▪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