android,java,ndk,c++ iphone 之争

 

http://coolshell.cn/articles/3549.html/comment-page-1#comments 看评论

-------------------

乔布斯说的这段话,才是Android和iOS之间的真正的区别(注意乔布斯一点没提开发语言,因为那根本无关紧要):

“谷歌喜欢强调Android是“开放的”,而iOS和iPhone是“封闭的”。我们发现这有点不够真诚,而且模糊了我们之间真正的差异。我们多数人 听到“开放”这个词时首先想到的是Windows,这款系统被用于多种设备,而且多数PC都拥有相同的用户界面,并运行相同的应用。但是与 Windows不同,Android非常分化。许多Android OEM厂商,包括宏达电和摩托罗拉这两家最大的企业都安装了专有的用户界面,以便将自己与大众化的Android体验区分开来。而要搞清楚如何使用,都要 由用户自行处理。相比而言,所有的iPhone手机运行方式都一样。

  Twitter客户端(TweetDeck)最近发布了他们的Android应用。他们表示,需要应对244款不同型号的手机采用的100多个不同版 本的Android。不同的硬件和软件版本会给开发者带来巨大的挑战。许多Android应用只能被用于特定的Android手机、特定的 Android版本。而且这种手机从正式出货至今还不到12个月!与之相比,iPhone只有两个版本的软件需要测试:现在正在使用的版本,和最近的上一 个版本。

  除了谷歌的应用市场,亚马逊、Verizon和沃达丰也都宣布将推出自己的Android应用商店。所以至少会有4个Android应用商店,要找到 喜欢的应用,用户要对这四个商店进行搜索,而开发者也需要通过这四个商店分发应用并获取收入。无论是对用户还是开发者而言,都会十分混乱。

  相比而言,苹果则拥有一个统一的应用商店,并为用户提供最简单的使用方式以及全世界最大的应用商店,而且该应用商店已经被预装到每部 iPhone上。苹果应用商店的规模是谷歌Android Market的三倍多,而且为开发者提供了一站式服务,使之更容易进行推广,并快速得到报酬。”

------------

稍微看了一下,NDK对Android API的调用仍然要通过Dalvik,因此用NDK开发普通应用,除了增加复杂度,性能并不会比Java的应用好太多。
NDK的优势在于对OpenGL ES等底层接口的直接访问,因此full ndk的支持对游戏/多媒体开发者是有利的,他们不需要太多的android API,只需要一个Activity然后几乎所有的东西都在上面进行自主绘制。这样他们之前用C++写的应用就可以用尽可能小的改动迁移到android上了。而不需要把逻辑层面的东西用Java重新写一遍。
对于写普通应用的人,full ndk支持的意义没有那么大。

-------------

再说可以用proguard 来优化混淆某些特定的类或函数

 

你可能感兴趣的:(java,C++,c,android,C#)