可不可以發明一種工具用C++同時開發iOS和Android呢?

既然可以用C#在Xamarin上同時開發蘋果和安卓,同樣的思路,可不可以發明一種工具用C++同時開發蘋果和安卓應用呢?


看看Qt~


Qt

http://doc.qt.io/qt-5/supported-platforms.html

Supported Platforms

...

  • iOS 6 and above, Clang as provided by Apple, OS X host

  • Android (API Level: 16) , GCC as provided by Google, Hosts: Ubuntu 14.04 (64-bit), OS X, Windows


C++跨平台就是統一用C++使用平台相關的API和FRAMEWORK。 因為安卓和IOS都有C++ 開發庫。要跨平台其實就是用C++把安卓和IOS本來就有的底層C++開發庫和框架再包裝一下。且同時要做好C++與 安卓/IOS 上層用JAVA或OBJECTC已經包裝好的功能框架

UNITY內部就有個C++跨平台ENGINE 。這個ENGINE就是C++的,平且跨平台。只不過使用這個ENGINE的介面,又經過一層MONO虛擬機包裝,語言是C#或者JAVA SCRIPT 。如果把MONO拿掉,直接把UNITY內部跨平台ENGINE的API給你,就是C++跨平台開發工具了。

屬於相當蛋疼的做法。 有用C++包裝安卓/IOS 原生UI系統的功夫,雇倆程序,一個IOS,一個安卓,APP早就寫完了。

UNITY是因為針對3D應用,壓根不需要系統的原生UI 。 UI都是自己一套。用於3D遊戲的簡單UI框架


可以


題主要使用 c++ 開發一種工具,可以開發 ios 和 android。

那麼推薦兩個框架:

1. Qt

2. cocos2d-x

其中 Qt 是出了名的跨平台開發框架,現在最新版本 5.7 ,在手機平台上除了網頁模塊是否孱弱之外,其他模塊十分強勁。如果打算開發商業應用,推薦商用框架 V-Play: Cross-Platform Development in Days for Games Apps。如果想要自己設計一門移動應用的開發框架,可以參考Qt官方本身的介面設計,然後換樂的造輪子去吧。


事先聲明:我不做移動開發的啊,下面提到的工具也沒打算做主要工具(而且其實沒用過)……

有是有啦,不過就是過氣的讓人遺忘了……

還記得Borland公司的Delphi和C++ Builder嗎?

然後這兩個產品給了Embarcadero,Embarcadero也是掙扎許久,然後XE2推出FireMonkey,XE5支持Delphi的Android和iOS開發(Delphi開發Android這部分當玩具用過,做了一個簡單的組合數計算器),然後現在的C++ Builder10.1說是手機、平板、手錶都支持……(C++Builder - The Standard C++ Application Development Platform for Windows 10, Mac, Mobile and IoT)

下面是一個用Delphi XE6開發Android/iOS程序的簡易教程(Hello World),C++ Builder這邊同理。

Delphi APP 開發入門(二)Android/iOS設定,Hello World by superlevin

風險提示:這個坑挺深的,資料少,做的人不多,iOS那邊的支持很難保證與時俱進,Embarcadero這幾年瘋狂更新版本……


用unity的話,用c#寫的程序可以被編譯成x86,x64,macOS,linux,ios,android,非常之方便


把C++編譯成C++/CLI,然後改一下xamarin把MSIL的部分弄進去,應該可以


我來歪樓 cocos2d


c++ builder居然現在都沒人知道了,真是可怕,C++ development for Windows, Mac, iOS and Android

C++Builder - The Standard C++ Application Development Platform for Windows 10, Mac, Mobile and IoT

大概十多年前我偶爾用這貨時她還是這個模樣的

另外他家的object pascal開發工具也可以做到同樣的windows/mac/andorid/ios全平台覆蓋Delphi - The Fastest Application Development Platform for Windows 10, Mac, Mobile and IoT


已經有了,並且一直都有這種跨平台的開發工具,但從未成為主流。

要跨平台就只能取交集,然後用一些彆扭又複雜的方法去利用上平台特有的能力,最後還不如每個平台各搞各的爽快。


咦?Android和iOS不是本來就原生支持C++嗎?我記得看過一些報道的。iOS對C++的支持本來就很好,用OC或者C寫個wrapper直接就可以在Swift裡面用了,如果iOS用OC開發,那嵌入C++更簡單了。Android有NDK,嵌入native代碼也不會很難。

C++ Cross-Platform iOS and Android Development: The Dropbox Lesson

=========================

哦,如果題主說的是包含開發框架而不用自己實現底層的話。。。那就忽略我上面的答案吧。。。


你需要跨平台的 庫

比如qt


我大Qt,不光可以用C++,還有一整個強力的Qlibrary呢

還資瓷黑莓和windows phone


android一直可以調用c++的代碼。中間要弄一層jni。android原生代碼里也是大量的native代碼,java幹活太慢了。

比較牛逼的人寫apk,連界面都是c++的,外面套個java殼子。開源的kodi代碼,就是非常少的java代碼調用一個17M左右的c++庫。


ios和安卓都可以調用c++,可以寫一份c++編譯成不同平台下的動態鏈接庫,放在對應平台由上層語言調用


分頁阅读: 1 2