位置: 编程技术 - 正文

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下的配置

  • 普通发票税率1%要交税吗
  • 转账支付水电费属于什么会计科目
  • 私车公用去税务局开什么发票
  • 企业发生的哪些成本可以在企业所得税税前扣除
  • 开专用发票可以直接写加工费这个明细吗
  • 房地产企业季度所得税申报
  • 公司现金支票取钱需要带什么资料
  • 其他业务成本影响营业成本吗
  • 发票鉴定管理办法
  • 发票领购带什么
  • 确认收入时需要结转成本吗
  • 税局代开专票如何做账务处理?
  • 打折销售商品会计分录
  • 住宿费专票可以报销吗
  • 普票3点怎么算
  • 混合销售和兼营的区别
  • 物业公司安装监控
  • 直接快递到国外的货物如何收汇?
  • 个体户没有对公账户可以转个人账户吗
  • 2019附加税优惠政策
  • 红利抵免的用法是什么
  • 分摊商品进销差额怎么算
  • 应付职工薪酬年末需要结转吗
  • win11windows安全中心打不开
  • 附加税要先计提再支付吗
  • 计提本月短期借款利息1000元
  • 瓶盖再来一瓶
  • 代办营业执照费用税务编码是多少
  • 公司二手车转个人
  • 艾灸的好处与功效女人
  • php+mysql+apache
  • 财务人员如何审核招待费报销单
  • 分包工程的税金怎样处理
  • yolov5讲解
  • 阳光照耀下的人
  • 塔拉基之死
  • multipartfile 多文件上传
  • 编制记账凭证出现错误
  • 待抵扣进项税额和进项税额的区别
  • php的mysql_query
  • php分割数组
  • react usereducer
  • 预收账款是否需入账
  • 企业会计准则对收入的定义
  • phpcms生成html
  • day14-HTTP01
  • phpcms不支持缩略图和水印怎么办
  • 商业折扣影响主营业务成本吗
  • 平均股东权益在哪里看
  • 一般纳税人也会被税吗
  • 限售股算不算账户资产
  • 地补缴费额是什么
  • 本月损益类未结转为零的一级科目怎么操作
  • 应收外币科目在哪里设置
  • 办理社会保险需要什么材料
  • 冲减坏账准备的金额怎么计算
  • 公司房屋租赁协议
  • 餐饮行业招聘方案
  • 残保金在网上怎么申报
  • 流动资产合计怎么算
  • 各种会计凭证的填制
  • 数据库中自动增长
  • centos安装编译环境
  • linux获取操作命令的使用方法或参数选项内容
  • linux的awk命令大全
  • windowsxp怎么查看用户名密码
  • win10桌面上怎么分成几个区域
  • win10安装驱动器
  • cocoscreator lua
  • angular之ng-template模板加载
  • nodejs实例教程
  • jqurey+Jscex打造游戏力度条
  • unity3d 物理引擎
  • node.js的安装步骤
  • Android之BroadcastReceiver
  • Protocol Buffers(Protobuf)开发者指南---概览
  • jquery.form.min.js
  • 江苏发票真伪查询系统官网
  • 电脑有网为什么不能用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设