百科问答小站 logo
百科问答小站 font logo



Android 将来能否实现用 C/C++ 作为开发语言?还是说现在的架构就注定了只适合用 Java? 第1页

  

user avatar   bluedrum 网友的相关建议: 
      

Android 当然可以用C来开发。而且开发方式有很多种。

在Android一诞生,它就支持几种C语言的开发模式

1.用其bionc与标准C库不太一样,所以开源第三方库和应用重新编译移植 ,Android自己也这么做,他在external目录下带有大量开源第三方库。如数据库的libsqlite.so,压缩的是libz.so等,很多游戏采用SDL库作底层图形库。这个库被很多应用移植过。

2.还有就是命令行工具。现在基本是C开发,我见过平板的一些后台服务器都采用这个模式

3.另外一种就是常见的NDK模式,java应用通过JNI访问C++类,而这个类又去直接调用C的函数。

以上三种,基本都是没有界面的底层程序。我估计提问者想问是的,一个合符Android界面标准的应用是否可以完全用C来开发?

现在答案是,可以。

在NDK r5的版本可支持这种带界面的纯C的开发 ,这是官方给的示例代码 developer.android.com/r

但是这种模式最大问题是的,移植性。因为C语言编译出来的代码是针对某种CPU的,换一种CPU很大机率无法运行,而java则是一次编译到处运行。这个对应用布署来说是一个大问题。

还有一种选项是 使用QT for Android.有一个开源项目 necessitas .使用C++开发。虽然也有平台移植问题,但至少开发环境,GUI支持已经好太多了。缺点也相当明显,发行时需要带一个巨大的发行库。所以这个适合开发专用终端软件。


PS:

Android也能采用C#开发,具体可以参见 开源项目 Mono for Android ,xamarin.com/monoforandr




  

相关话题

  「京东金融 app 疑似自行获取用户私人图片」是真的吗?可能有哪些风险? 
  为什么这么多人黑C++? 
  如果你是一个C++面试官,你会问哪些问题? 
  为什么C语言用int *a 来声明指针变量,而不是int &a声明? 
  编译器生成的汇编语句执行顺序为什么与C代码顺序不同? 
  为什么Windows可以安装在所有不同的PC上,而安卓刷机包必须对应机型? 
  大龄门外汉如何进入软件开发行业? 
  为什么看到这么多人不推荐C++? 
  c#多播或event监听太多后gc和时间都会爆炸,那么比起List<Action>存在的意义是什么? 
  C语言里a>b?a<c?a:b:c;这个怎么该判断? 

前一个讨论
据说人人下周也要发布安卓系统了,那么看来现在抢占刷机ROM市场是已成定局了,对于把握移动互联网入口这里有两个情况,一个是直接做互联网手机,一个是做刷机ROM,你更看好哪个?
下一个讨论
请问有什么好的C语言面向对象的扩展的方式?最好是有比较好的项目的源码参考。





© 2025-06-26 - tinynew.org. All Rights Reserved.
© 2025-06-26 - tinynew.org. 保留所有权利