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 本身 ...
随机推荐
- ICA
参考:http://www.cnblogs.com/jerrylead/archive/2011/04/19/2021071.html 对高斯分布的样本点效果不好.数学真是博大精深啊
- Maven使用常见问题整理
Maven使用常见问题整理 1.更新eclipse的classpath加入新依赖 1.在dependencyManagement里面加入包括版本在内的依赖信息,如: <dependenc ...
- Linux 查看系统用户的登录日志
查看用户登录系统的日志 有两类日志记录用户登录的行为,一是记录登录者的数据,一个是记录用户的登录时间 一,记录用户登录数据 /var/log/wtmp日志文件记录用户登录的数据 ...
- 如何高效利用GitHub
是Github,让社会化编程成为现实.本文尝试谈谈GitHub的文化.技巧与影响. Q1:GitHub是什么 Q2:GitHub风格 Q3: 在GitHub,如何跟牛人学习 Q4: 享受纯粹的写作与演 ...
- tesseract3.02识别验证码需要注意的问题
1.安装tesseract3.02后,在命令行里输入tesseract,看能否出现使用方法,不出现则是环境变量问题,可调整其顺序. 2.找到如下文件 C:\Python27\Lib\site-pack ...
- hdu5832 A water problem
A water problem Time Limit: 5000/2500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- Maven的安装、配置及使用入门
Maven的安装.配置及使用入门 本书代码下载 大家可以从我的网站下载本书的代码:http://www.juvenxu.com/mvn-in-action/,也可以通过我的网站与我取得联系,欢迎大家与 ...
- [Android Pro] Android 打包流程
Android 打包流程: 官网地址:http://developer.android.com/tools/building/index.html 具体的打包步骤如下: 1:生成R.java类文件:E ...
- Java编程设计2
一般我们会以这种设计方式生产对象实例,如: 创建一个接口: public interface TestOpen { String getVirtualHost(); String getCapabil ...
- 关于Struts2上传文件的最大Size的设置
今天使用Struts2的文件上传控件时,在struts.xml中,将处理上传的action中的fileUpload拦截器的maximumSize参数设置为5000000,上传了一个3M的文件后发现控制 ...