相关疑难解决方法(0)

进行JNI呼叫的定量开销是多少?

仅基于性能,大约有多少"简单"的java行是进行JNI调用的等效性能?

或者尝试以更具体的方式表达问题,如果是简单的java操作,例如

someIntVar1 = someIntVar2 + someIntVar3;
Run Code Online (Sandbox Code Playgroud)

给出了一个"CPU工作"索引1,那个JNI调用开销的典型(球场)"CPU工作"索引是什么?


此问题忽略了等待本机代码执行所花费的时间.在电话用语中,它严格来说是呼叫的"旗帜下降"部分,而不是"呼叫率".


提出这个问题的原因是有一个"经验法则",当你知道本地成本(来自直接测试)和给定操作的java成本时,知道何时打算尝试编写JNI调用.它可以帮助您快速避免编写JNI调用的麻烦,只是发现callout开销消耗了使用本机代码的任何好处.

编辑:

有些人对CPU,RAM等的变化感到困惑.这几乎与问题无关 - 我要求java代码行的相对成本.如果CPU和RAM很差,它们对java和JNI都很差,因此环境因素应该平衡.JVM版本也属于"无关"类别.

这个问题不是要求以纳秒为单位的绝对时间,而是以"简单java代码行"为单位的球场"工作努力".

java performance java-native-interface

54
推荐指数
2
解决办法
2万
查看次数

Xamarin for Android(Mono for Android)与原生Android开发相比如何?

我最近选择在Xamarin上使用C#学习C#并开发移动应用程序.特别适用于Windows Phone和Android开发.我知道Windows Phone应用程序开发主要是C#,而Xamarin可以为Android编译本机代码,但它与Java中的本机开发相比如何呢?我是否能够使用Xamarin的每个或至少大多数(如90%以上)的Android SDK和扩展程序?

c# android xamarin.android xamarin

8
推荐指数
2
解决办法
1万
查看次数

Xamarin.Android - 本机代码编译是否会使逆向工程变得更难?

我们正在考虑将我们的C#.NET应用程序移植到Android,我已经开始阅读有关Xamarin.Android和Mono框架的内容.我刚刚开始Android开发.

我在主要的http://xamarin.com/android页面上注意到它指出:

本机代码 高性能编译代码,可完全访问所有本机API.

这是否意味着生成的代码将是更难以进行逆向工程的本机代码?我们希望创建一个包含我们的关键算法的类库,如果我们可以将它编译为本机代码以阻碍逆向工程,那么这将使我们不那么害怕移植.

我已经阅读了其他一些关于Android代码的帖子,而不是比模糊的.net程序集更难反编译(使用ProGuard之后).本机代码编译是在这些帖子之后出现的最新功能吗?谢谢你的建议!

c# mono android xamarin.android xamarin

8
推荐指数
1
解决办法
7200
查看次数

Xamarin跨平台用户体验与本机开发

我正在试图评估Xamarin是否适合我的项目.该项目是适用于Android和iOS的大型复杂应用程序,具有大量客户端 - 服务器通信.用户界面是一个重点,必须非常快速和流畅.此外,我们计划大量使用UX图形效果(与Spotify应用程序相当).

目前我们计划使用Java/Objective-C寻找两个独立的本机应用程序.但是,当然,跨平台代码共享的可能性对我们来说非常方便.

到目前为止我听过的大多数意见都说Xamarin - 虽然远比HTML5应用程序好 - 但却无法与本机应用程序的用户体验相媲美.另外,我测试了以下使用Xamarin(在Android上)制作的应用程序:

  • RDIO
  • 市场观察
  • Busch Gardens发现指南
  • Sqor
  • Storyo

从我的印象来看,它们都不能与一个优秀的原生应用程序的速度和平滑度完全匹配.

如果我们专注于一流的用户体验,那么Xamarin真的可行吗?它能真正匹配原生UX吗?我特别期待那些拥有大型复杂跨平台Xamarin应用程序经验的开发人员的意见.一些批评声音会非常有用.

非常感谢!

performance user-interface xamarin

3
推荐指数
1
解决办法
2357
查看次数

对于Android App c#更好还是java?

我想开始Android开发.我可以使用c#Java开始Android 开发.我是 .NET开发人员.我的问题是哪种语言更适合android编程.这些语言有哪些限制?什么是他们在机器人的编程能力?我可以开发完整的应用程序.NET,而无需学习java

c# java android

0
推荐指数
1
解决办法
8053
查看次数