`
ytfei
  • 浏览: 89371 次
社区版块
存档分类
最新评论

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 来优化混淆某些特定的类或函数

 

分享到:
评论

相关推荐

    android-ndk(android-ndk-r25b-windows.zip)

    Android NDK,全称为Native Development Kit,是Google提供的一款用于Android平台的C和C++开发工具集。这个压缩包“android-ndk-r25b-windows.zip”包含了NDK的第25个版本,专为Windows操作系统设计。NDK的主要功能...

    android-ndk(android-ndk-r26b-windows.zip)

    在Android应用开发中,Java是主要的编程语言,但有时为了追求性能或者利用已有的C/C++库,开发者会选择使用NDK。NDK的主要功能包括: 1. **原生库支持**:NDK允许开发者编写C和C++代码,并将其打包为.so库文件,...

    android-ndk(android-ndk-r25b-linux.zip)

    在Android中,JNI是Android应用与NDK之间的重要桥梁,使得Java应用程序可以调用C/C++编写的本地库,同时C/C++代码也能调用Java的方法。 2. **NDK的优势**: - **性能优化**:对于计算密集型任务,例如图形处理、...

    android-ndk(android-ndk-r23b-windows.zip)

    Android NDK,全称为Native Development Kit,是Google提供的一款用于Android平台的C/C++开发工具集。这个"android-ndk-r23b-windows.zip"压缩包包含了NDK的第23个版本,专为Windows操作系统设计。NDK是Android应用...

    android-ndk(android-ndk-r23b-linux.zip)

    Android NDK,全称为Native Development Kit,是Google提供的一款用于Android平台的C和C++库开发工具集。这个“android-ndk-r23b-linux.zip”文件是NDK的一个特定版本,即r23b,专为Linux操作系统设计。在Android...

    android-ndk(android-ndk-r26b-darwin.zip)

    Android NDK,全称为Native Development Kit,是Google提供的一款用于Android平台的C和C++原生代码开发工具。NDK允许开发者在Android应用中使用原生代码,以实现高性能、低级别的硬件交互以及利用已有的C/C++库。在...

    Android-ndk-jni AES加解密 C++

    本知识点主要聚焦于如何在Android NDK(Native Development Kit)环境下,通过JNI(Java Native Interface)来实现AES(Advanced Encryption Standard)加解密。以下是关于这一主题的详细阐述。 **AES加解密简介** ...

    android-ndk(android-ndk-r26b-linux.zip)

    Android NDK,全称为Native Development Kit,是Google提供的一款用于Android平台的开发工具,它允许开发者使用C++和其他原生编程语言编写应用的部分或全部代码。这个“android-ndk-r26b-linux.zip”文件是NDK的一个...

    android-ndk(android-ndk-r25b-darwin.zip)

    Android NDK,全称为Native Development Kit,是Google提供的一款用于Android平台的C和C++库开发工具集。这个工具允许开发者在Android应用中使用原生代码,以实现高性能计算、图形处理、游戏引擎等复杂功能。`...

    Android C++高级编程:使用NDK(完整版带书签).pdf

    《Android C++高级编程:使用NDK》是一本深度探讨Android平台上C++开发技术的权威著作,完整版带有书签,方便读者随时查阅和学习。本书主要针对Android开发者,特别是那些希望利用C++来提升应用性能、降低内存占用...

    android-ndk-r19c-linux-x86_64.zip

    Android Native Development Kit (NDK) 是Google提供的一款工具集,用于在Android平台上进行原生代码(如C/C++)的开发。NDK r19c是其中的一个版本,提供了对各种Android平台的API支持,以及优化和调试工具。这篇...

    android-ndk-r17c-windows-x86_64.zip

    2. **JNI支持**:NDK提供Java Native Interface (JNI)的支持,使得Java代码能够调用C/C++函数,反之亦然,实现Java和原生代码的交互。 3. **跨平台开发**:尽管这里的版本是针对Windows的,但NDK本身支持多种平台,...

    Android C++高级编程使用NDK [ Pro Android C++ with the NDK ]书源码

    1. **C++在Android中的应用**:Android NDK提供了C++支持,使得开发者可以使用标准模板库(STL)、多线程、模板等C++特性,同时也可以利用JNI(Java Native Interface)与Java层进行通信。这在处理图形计算、物理...

    android-ndk-r23b-linux.zip

    Android NDK(Native Development Kit)是Google为Android平台提供的一套用于开发原生代码的工具集,它允许开发者使用C++和其他本地语言编写应用程序,进而利用Android设备的硬件特性,提高应用的性能和效率。...

    android-ndk-r18b-windows-x86_64.zip

    Android NDK(Native Development Kit)是Google为Android平台开发的一款重要的工具集,它允许开发者使用C和C++语言编写应用程序的底层代码。标题中的“android-ndk-r18b-windows-x86_64.zip”表明这是一个适用于...

    细说Android4.0NDK编程.pdf

    本书顺应Android软/硬件、云计算整合潮流,详细剖析了NDK开发中涉及的各类问题和解决方案:搭建Android NDK开发环境的每一步细节,开发第一个Android NDK程序,Android NDK中Java与C/C++代码的互相调用,Facade设计...

    android ndk开发实例代码

    在Android开发中,JNI通常用于与NDK协同工作,使得Java应用能够利用C++库的性能优势。例如,游戏引擎、图像处理、音频和视频编码等对性能要求高的功能常采用这种方式实现。 在"HelloNdk"这个实例中,我们可能会看到...

    android-ndk-r20b-windows-x86_64.zip

    在移动开发领域,Android NDK(Native Development Kit)扮演着不可或缺的角色,它为开发者提供了在Android平台上使用C和C++编写原生代码的能力。本文将深入探讨Android NDK R20B版本,特别是其在64位Windows环境下...

    android-ndk-r20-linux-x86_64.zip

    NDK的引入,打破了Java作为唯一开发语言的限制,使得开发者能够充分利用C/C++的强大性能和丰富的库资源,尤其对于处理计算密集型任务,如游戏引擎、图像处理和物理模拟等,NDK的应用显得尤为重要。 NDK的核心组件...

    Android SDK NDK API 对应关系

    2. **NDK**:原生开发工具包,允许开发者使用C或C++来编写原生代码,并通过JNI(Java Native Interface)与Java代码交互。这为性能敏感的部分提供了优化的可能性。 3. **API Level**:用于表示Android系统的版本号,...

Global site tag (gtag.js) - Google Analytics