位置: 编程技术 - 正文

Android虚拟机学习总结Dalvik虚拟机进程和线程的创建过程分析(android系统虚拟机)

编辑:rootadmin

推荐整理分享Android虚拟机学习总结Dalvik虚拟机进程和线程的创建过程分析(android系统虚拟机),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:安卓虚拟机运行机制,安卓虚拟机运行机制,安卓虚拟机使用教程,安卓虚拟机运行机制,android虚拟机怎么运行,android虚拟机原理,安卓虚拟机虚拟机,android虚拟机原理,内容如对您有帮助,希望把文章链接给更多的朋友!

Dalvik虚拟机在调用一个成员函数的时候,如果发现该成员函数是一个JNI方法,那么就会直接跳到它的地址去执行。也就是说,JNI方法是直接在本地操作系统上执行的,而不是由Dalvik虚拟机解释器执行。由此也可看出,JNI方法是Android应用程序与本地操作系统直接进行通信的一个手段。

Dalvik虚拟机除了可以执行Java代码之外,还可以执行Native代码,也就是C/C&#;&#;函数。这些C/C&#;&#;函数在执行的过程中,又可以通过本地操作系统提供的系统调用来创建本地操作系统进程或者线程,也就是Linux进程和线程。如果在Native代码中创建出来的进程又加载有Dalvik虚拟机,那么它实际上又可以看作是一个Dalvik虚拟机进程。另一方面,如果在Native代码中创建出来的线程能够执行Java代码,那么它实际上又可以看作是一个Dalvik虚拟机线程。

一、Dalvik虚拟机进程的创建过程

Dalvik虚拟机进程实际上就是通常我们所说的Android应用程序进程。Android应用程序进程是由ActivityManagerService服务通过android.os.Process类的静态成员函数start来请求Zygote进程创建的,而Zyogte进程最终又是通过dalvik.system.Zygote类的静态成员函数forkAndSpecialize来创建该Android应用程序进程的。

Android虚拟机学习总结Dalvik虚拟机进程和线程的创建过程分析(android系统虚拟机)

二. Dalvik虚拟机线程的创建过程

在Java代码中,我们可以通过java.lang.Thread类的成员函数start来创建一个Dalvik虚拟机线程,

1. Dalvik虚拟机进程就是本地操作系统进程,也就是Linux进程,区别在于前者运行有一个Dalvik虚拟机实例。

2. Dalvik虚拟机线程就是本地操作系统进程,也就是Linux线程,区别在于前者在创建的时候会自动附加到Dalvik虚拟机中去,而后者在需要执行Java代码的时候才会附加到Dalvik虚拟机中去。

Dalvik虚拟机使用本地操作系统的进程来作为自己的进程。

摘至:

Android之Window window表示的是一个抽象窗口类,该类只是一个抽象窗口类,其具体的唯一实现类是PhoneWindow类。Window对象的获取通过在Activity中调用getWindow()方法获取

AndroidAnnotations框架Eclipse下的配置 AndroidAnnotations是一个开源框架,利用注解方式来简化代码结构,提高开发效率。因为最近有个项目使用了该框架,就记录一下Eclipse下的配置流程。下载

android 自定义view之(一) Creating a View Class CreatingaViewClassAwell-designedcustomviewismuchlikeanyotherwell-designedclass.Itencapsulatesaspecificsetoffunctionalitywithaneasytouseinterface,itusesCPUandmemoryefficiently,andsoforth.Inadditiontobe

标签: android系统虚拟机

本文链接地址:https://www.jiuchutong.com/biancheng/383224.html 转载请保留说明!

上一篇:Android开发中工具类的介绍(android开发工程师岗位说明)

下一篇:AndroidAnnotations框架Eclipse下的配置

  • 向境外企业支付利息代扣代缴
  • 预收账款可以挂多久
  • 小规模计提增值税
  • 去税务局作废申报需要带哪些证件
  • 幼儿园收费怎么说
  • 财务会计制度备案操作流程
  • 处置使用过的车辆
  • 净利润为什么要减折旧
  • 库存现金和银行存款的区别
  • 罚款收据与通用的区别
  • 结转本期各项收入
  • 公司挂靠有资质的企业公司会计处理
  • 利息收入属于现金流入吗
  • 发票作废 费用
  • 税务局返还的代征代扣要交增值税吗
  • 跨年度发票退回如何记账
  • 长期挂账的其他应收款如何处理
  • 没有成本票怎么做成本
  • 暂估成本和实际成本的分录
  • 试营业期间的费用算不算开办费?
  • 发票联丢失怎么做账
  • 遗属补助是死亡当月发放还是次月发放
  • 如何在Excel中进行数据筛选
  • 怎么做好零售
  • 什么时编制
  • 八仙花的养殖方法冬季怎么养
  • 落基山国家公园攻略
  • 前端工程搭建
  • python的opencv
  • yolov5加入注意力机制后网络后进行剪枝
  • vue2和vue3的区别大么
  • 收到对方退回的现金
  • 现金流量的折现值
  • 小规模纳税人开农产品免税发票
  • 建筑行业预缴个税怎么算
  • 征收率有几种
  • 苹果响应机制
  • python elasticsearch timeout
  • phpcms v9网页禁止复制
  • mysql唯一键和唯一索引
  • 不动产集体产权证什么意思
  • 电子发票自己打印黑白有效吗
  • access怎么提取数据
  • 如何区分借贷方和负债方
  • 机械租赁公司挂牌流程
  • 公司账户收入多少要扣税
  • 企业股东撤资如何清算
  • 购买电脑配件组件怎么选
  • 明细分类账的格式与登记方法
  • 小企业会计准则会计科目表
  • 应收账款余额等于什么?
  • 约当产量法下的加权平均法怎么算
  • mysql found_row()使用详解
  • mysql in如何优化
  • mysql where clause
  • sql server 复制数据库具体操作图解
  • 存储过程mysql
  • mysql密码忘记怎么办
  • xp系统任务栏太小怎么办
  • windows xp计算器
  • ubuntu 21.04 安装
  • wmpdmc.exe是什么意思
  • centos7脚本
  • linux修改分组
  • iptables dnat snat
  • win8.1自动更新
  • node.js的流的作用
  • android不同module怎么相互调用
  • function函数的定义
  • 用js获取地址栏url参数的方法
  • shell脚本总结
  • unity cpu优化
  • node.js怎么用
  • python中scipy用法
  • 济南税务开票软件是什么
  • 不用税控盘可以清卡吗
  • 开票信息不一致怎么回事
  • 增值税税控开票软件
  • 纳税人识别号和公司税号一样吗
  • 发票号码应与哪个号码一致
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设