MONO 说谈
是部分依赖的
驱动
编译后的IL经过CLR并不能直接成为机器码,而是要借助Dalvik才能成为机器码吗?
而是关于Android的驱动部分主要是传感器的部分
你看ANDROID SDK FRAMEWORK的结构图就知道的了
同好奇
那个图说明说明
那个图说明什么?
不过如果Xamarin支持NDK,也许是不依赖Dalvik的
理论上CLR的定义和Dalvik应该是一样的
按照官方的截图 IL+JIT貌似已经完成了到本地机器码的任务
这个图就非常清晰地说明了相关的问题
图不一定非常精确的
还是要看文档说明
在iOS平台,Xamarin 使用AOT编译,在Android平台,则使用JIT编译,将C#程序代码直接编译为ARM CPU的机器码,以得到最佳效能。
官方的原文
王爷的图 原图看过不少遍
加的那几个东西 有些深奥 表示看不懂
这个是因为你可能不熟悉LINUX结构导致的
这个确实不熟悉
按描述应该就是直接绕开JIT了
从图中非常清楚地表达了一个信息,就是驱动是属于LINUX内核的部分
这个不是SDK能处理的
举一个非常简单的例子可以说明
你下载百度地图的JAR包
里面就包括了一个SO的程序包
so包其实就是Linux内核的部分了
也就是图中红色的部分
SDK是通过JNI方式来调用的
同样的道理MONO,DELPHI XE5都是采用类似的方式
也就是说只要我不直接操作Linux内核 而是上层调用 就不会有这个问题?
需不需要依赖Dalvik?
我就写个hello Word
我猜测不需要哦
是否需要视乎你的应用是否涉及传感器的部分
我使用了传感器 但是我是通过SDK调用的
而且加入真是这样 所有硬件都应该有这个问题 不仅仅是传感器
SDK就是JNI调用SO
所提及的传感器就是指硬件
我理一理 有些乱
因为MONO是完全按SDK的方式封装的
所以也是基于这样的模式处理相关接口
这样处理的方式可以保证相关版本可以在兼容性上保持一致
我理解是编译的时候借用了JIT,但编译后的结果就未必了
因为原则上MONO可以完全另外搞一套接口技术,但是这样会容易导致当Android SDK版本升级的时候,就容易导致兼容性的问题出现了
毕竟MONO并不被手机制造商所采用
但有些文章说的是IL再通过JIT翻译成本地汇编的
那些都不是恰当(非主流)的做法
java--->Dalvik--->JNI--->硬件
C#---->CLR---->空缺--->硬件
是由于这个空缺引起的吗?
因为ARM编译器其实可以有很多实现的方式
C#->IL->JIT
应该没有CLR
是在JIT里面跑的
c#其实还有部分接口是采用JNI方式的
好像XAMARIN有相关文档提及这方面的内容
好的 谢啦
不过看过好几篇文章 都说JIT+IL直接就是机器码
如果不涉及驱动的,这个确实是这样的情况
JIT不就是Dalvik么
JIT和DALVIK没有什么关系
应该说Dalvik的核心就是JIT
嗯 但是按照王爷说的 是缺少JNI部分
因为MONO需要自己的运行时
那部分不知道和NDK又是啥关系了
只是在涉及驱动的时候会依赖DALVIK
那应该是依赖JNI啊
xamarin为什么不把这块给做了啊?
如果只是兼容性问题 现在还不是要跟着android一起升级
这个是DELPHI XE5实现的方式
MONO的也是类似的方式
因为这里应该还有几个问题我想应该清楚的
一个就是APK启动的时候,必须依赖于JAVA的环境
还有一个就是硬件驱动的接口层面
否则如果是纯LINUX的原生(ELF文件)的话,这样未必可以在Android环境下可以自动安装。。。
也就是于操作系统的接口需要解决
很多人并不了解这些环节
Xamarin Androi,是不是鸡肋啊?我指的是效率不行。
是不是鸡肋,这个要具体分析才行
你相信Xamarin能够在Android占有一席之地?
而且比重很大?
这个看Xamarin的性能上可以走多远
Xamarin没有摆脱Java,我觉得这个是它的软肋。
如果不摆脱,我觉得Xamarin发展不会很顺畅
【1】北京-志松
2014/4/13 19:51:48
我觉得IL应该直接面对硬件,而不是Java。
IL无法直接面对硬件
因为硬件千差万别
IL面对的只是虚拟机环境
【1】北京-志松
2014/4/13 19:52:42
Java是怎么做到的呢?
IL的初始IDEA也是从Java来的啊
【6】广州-巴依王爷
2014/4/13 19:53:06
JAVA的虚拟机技术已经很成熟了
IL无法直接面对硬件
我觉得IL也有可能直接面对硬件,就像Java可以一样。
其实JAVA也不是直接面对硬件,它也是面对虚拟机环境
只是太难,没有大牛提纲。微软对Xamarin的态度也不是很明朗,说白了,暂时他们也不想投大钱。
IL也应该是直接面对的所谓的《虚拟机环境》
应该是google制定一套硬件接口 硬件厂商必须遵守这个接口开发硬件
我也很介入Xamarin,但是一想到IL是依托Java,我还不如直接用Java得了
这个也是一个不错的选择
看你看重什么 优缺点都有啦
如果没有大牛提纲,Xamarin也许真的就是微软的试验品。
代码的复用性 java就比不了
MONO 说谈的更多相关文章
- CentOS上 Mono 3.2.8运行ASP.NET MVC4经验
周一到周三,折腾了两天半的时间,经历几次周折,在小蝶惊鸿的鼎力帮助下,终于在Mono 3.2.8上运行成功MVC4.在此总结经验如下: 系统平台的版本: CentOS 6.5 Mono 3.2.8 J ...
- 魅力 .NET:从 Mono、.NET Core 说起
前段时间,被问了这样一个问题:.NET 应用程序是怎么运行的? 当时大概愣了好久,好像也没说出个所以然,得到的回复是:这是 .NET 程序员最基本的...呵呵! 微软开源,其实不只是对 .NET 本身 ...
- 使用Mono Runtime Bundle制作安装包让C#桌面应用程序脱离net framework
在Xamain 未被收购之前,这货monodroid.exe 就是一个打包的绑定...无奈 配置环境复杂,未能实现 ...有mono运行时就行了..不折腾了 玛德 让C#程序独立运行(脱离 .NET ...
- 【Xamarin挖墙脚系列:Mono项目的图标为啥叫Mono】
因为发起人大Boss :Miguel de lcaza 是西班牙人,喜欢猴子.................就跟Hadoop的创始人的闺女喜欢大象一样...................... 历 ...
- .NET:从 Mono、.NET Core 说起
魅力 .NET:从 Mono..NET Core 说起 前段时间,被问了这样一个问题:.NET 应用程序是怎么运行的? 当时大概愣了好久,好像也没说出个所以然,得到的回复是:这是 .NET 程序员最基 ...
- 扒一扒.net、.net framework、mono和Unity
zhaichao 标签: .net.net frameworkc#monounity 2017-04-23 14:39 425人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许 ...
- 开源GIS浅谈 【转】
http://blog.csdn.net/happyduoduo1/article/details/51773850 谈到GIS软件,首先让我们想到的是GIS界的龙头大哥ESRI公司旗下的ArcGIS ...
- 浅谈移动应用的跨平台开发工具(Xamarin和React Native)
谈移动应用的跨平台开发不能不提HTML5,PhoneGap和Sencha等平台一直致力于使用HTML5技术来开发跨平台的移动应用,现在看来这个方向基本算是失败的,基于HTML5的移动应用在用户体验上与 ...
- 魅力 .NET:从 Mono、.NET Core[转]
前段时间,被问了这样一个问题:.NET 应用程序是怎么运行的? 当时大概愣了好久,好像也没说出个所以然,得到的回复是:这是 .NET 程序员最基本的...呵呵! 微软开源,其实不只是对 .NET 本身 ...
随机推荐
- Linux中启动和停止jar包的运行
脚本一: startTest.sh内容如下: #!/bin/sh java -jar Test.jar & #注意:必须有&让其后台执行,否则没有pid生成 echo $! ...
- 搭建Nginx+JAVA环境
搭建Nginx+JAVA环境 Apache对Java的支持很灵活,他们的结合度也很高,例如Apache+Tomcat和Apache+resin等都可以实现对Java应用的支持.Apache一般采用一个 ...
- Struts2配置文件模板
<?xml version = "1.0" encoding = "UTF-8"?><!--下面是Struts2配置文件的DTD信息 --&g ...
- DrawText
该函数在指定的矩形里写入格式化的正文,根据指定的方法对正文格式化(扩展的制表符,字符对齐.折行等). int DrawText(HDC hDC, // 设备描述表句柄 LPCTSTR lpStri ...
- ssh连接慢的问题的解决?
<1>群中同学遇到的问题,我之前在uuwatch也遇到了同样的问题? 问个问题师兄们 突然之间 公司服务器连接很慢 连一个shell需要10几秒钟 服务器就在公司全是内网服务器, 我也不知 ...
- webservice 协议
Web Service使用的是 SOAP (Simple Object Access Protocol)协议soap协议只是用来封装消息用的.封装后的消息你可以通过各种已有的协 ...
- MVC3和MVC4相关问题
从TFS获取的MVC项目生成一直提示这个错误,我的VS中MVC3和MVC4都有,TFS项目中的MVC版本应该是MVC3的,现在我要用这个项目,但是一直是这个错误,请高手指点,积分不多了,见谅 程序集“ ...
- hadoop(一):深度剖析hdfs原理
在配置hbase集群将 hdfs 挂接到其它镜像盘时,有不少困惑的地方,结合以前的资料再次学习; 大数据底层技术的三大基石起源于Google在2006年之前的三篇论文GFS.Map-Reduce. ...
- 如何使用box2d做碰撞检测
cocos2dx3.0+vs2012编译通过. 主要是通过body->SetTransform来设置body的位置和角度,然后自己写个ContactListener来监听碰撞事件 源代码下载 # ...
- Could not create the view: An unexpected exception was thrown. 电脑突然断电,myeclipse非正常关闭,出现错误
电脑突然断电,myeclipse非正常关闭,“Package Explorer”非正常显示,出现错误“Could not create the view: An unexpected exceptio ...