Tri*_*gen 8 c# mono android xamarin.android xamarin
我们正在考虑将我们的C#.NET应用程序移植到Android,我已经开始阅读有关Xamarin.Android和Mono框架的内容.我刚刚开始Android开发.
我在主要的http://xamarin.com/android页面上注意到它指出:
本机代码 高性能编译代码,可完全访问所有本机API.
这是否意味着生成的代码将是更难以进行逆向工程的本机代码?我们希望创建一个包含我们的关键算法的类库,如果我们可以将它编译为本机代码以阻碍逆向工程,那么这将使我们不那么害怕移植.
我已经阅读了其他一些关于Android代码的帖子,而不是比模糊的.net程序集更难反编译(使用ProGuard之后).本机代码编译是在这些帖子之后出现的最新功能吗?谢谢你的建议!
gre*_*gko 10
目前,Android下的Xamarin无法编译为本机处理器代码.它创建了.NET p代码,它在Mono虚拟机中运行,每个Xamarin编译的应用程序都与其余的应用程序文件一起安装.据我所知,为Android创建本机代码的唯一方法是使用Android NDK(http://developer.android.com/tools/sdk/ndk/index.html)并用C或C++编写代码.
我做了一些非正式的基准测试,比较了用Xamarin和Dot42编译的C#中的Java和模拟代码,以及用于真实应用程序(文本处理)的本机代码.基本上,Xamarin的C#比特定应用程序上的Java或Dot42快10-20%,而本机代码的速度提高了约5-6倍.阅读更多:
有没有人比较用Xamarin C#和Java编写的Android应用程序的性能基准(代码和结果)?
另外,为了保护我的Android Java代码免受黑客攻击,我使用了DexGuard混淆器(http://www.saikoa.com/dexguard).但是,我真的不知道好黑客去编译和篡改这些混淆代码要困难得多.DexGuard当然不会保护.NET Xamarin代码,只保护Java代码或为JVM编译的其他代码.它甚至不会保护Dot42代码,后者直接编译为Dalvik VM p代码(所有普通Android应用程序运行的虚拟机,Java代码也"dexed"并在它可以在Android上运行之前转换为Dalvik代码).
格雷格