當前主流的手機平台很多,而各個主流的平台的語言支持大同小異;如
1、windows系統WP8上主要支持 VB, C#, c/c++,
2、蘋果系統ios上支持 object-c, c/c++
3、android系統上支持 java, c/c++
那么跨平台語言該如何選擇?
C#.net java 不是跨平台的嗎,它們和C/C++的跨平台有什么區別?
方便他人亦是方便自己,如果覺得還行就點下贊吧,這樣可以幫助其他人更快的找到解決問題的方法;有疑問的也可留言哦, 謝謝!
方法/步驟
-
C# .net Java的跨平台是指它們在“編譯系統”生成的中間文件的字節碼(byte code)文件不需要重新編譯,就可以直接被“運行系統”使用;
C/C++的跨平台是指不要重新寫代碼,需要重新編譯成“運行系統”對應的機器碼(binary code)后,才能夠被“運行系統”使用;
如下圖所示(所有的名詞的叫法以下圖為准):
-
Java, C#的跨平台是建立在“虛擬機”的基礎上的,通過虛擬機在程序運行時將“編譯系統”生成的字節碼(byte code) 轉換成“運行系統”的機器碼(binary code),屬於解釋性語言;
C / C++是在“編譯系統”上直接將代碼生成“運行系統”上的機器碼(binary code),屬於編譯性語言;
-
java, C#的跨平台受“虛擬機”的限制,如:
1、.net環境只在windows上有,linux(Android)和unix(ios)都不支持;
2、Java手機平台主要是Android支持,windows(WP8)和mac(ios系統)都不支持;
3、.net ,和Java虛擬機在xp系統上默認是沒安裝的;
4、xp系統不支持.net的高版本,如.net 4.5
c/c++不受虛擬機的限制,只要能夠編譯成“運行系統”的“機器碼”即可,這也是為什么現在大量的跨平台應用開發采用c/c++的原因;
-
被人誇的跨平台的解釋性語言,最后也沒能跨上跨平台的夢;
被人諷刺的不能誇平台的編譯性語言,卻成就了跨平台的夢;
跨平台背后,一個美麗的誘惑,一個相反的夢;