2011-03-19 21 views
4

我已經在互聯網上尋找答案,但我只能找到答案,要麼是太舊了,是混淆的或人們沒有回答這個問題,而是告訴學習Java。Java是唯一一種爲Android編寫應用程序的方式嗎?

我的基本問題是:

  1. 是用java編寫Android應用的唯一途徑?

  2. 這個問題將與#1相矛盾。由於Adobe AIR現在可以在Android手機上運行,​​這是否意味着我可以在不使用Java的情況下在AS3中編寫代碼,還是需要在Java內部封裝AIR應用程序?

  3. 應用程序是否適用於Android的Facebook,憤怒的小鳥和所有那些只用Java製作的奇特遊戲?

  4. If#1 == false & & me == JAVA_HATER,你們推薦什麼語言或SDK。這是我的主要問題。

回答

0

您可以試試appcelerator。你用javascript編寫,並以某種方式將它轉換爲Android應用程序。

2

Adob​​e Air for Android負責爲您進行整合 - 您無需編寫任何Java即可使其工作。它實際上是一個簡單的AIR應用程序,如果該設備的用戶安裝了Air for Android,那麼您的應用程序就可以工作,這很簡單。

本機代碼(java)vs AIR的爭論已經持續了很長一段時間 - 取決於您製作的應用程序的類型,您可以從編寫Java的過程中看到收益,因爲它只是該項目的一個層次。另一方面,如果你沒有動畫十億個形狀或其他東西,那麼差別就很小 - 所以在很多情況下,AIR就沒有問題。

您擁有的另一個選擇是使用HTML/JavaScript構建您的應用程序,並將其嵌入到Java或ObjC包裝器中,該包裝器可編譯爲Android/iPhone上的本機應用程序 - 許多應用程序,特別是那些只是用戶一些數據集的接口,使用這種方法。

因此,根據您的使用情況,您有很多選擇! :)

8
  1. 這是Google支持的唯一方式。還有其他的,例如Adobe Air;如果你想做一些工作來找出與標準Android類的鏈接,你可以複製和修改SDK中的Ant配方,以使用任何針對JVM的語言。
  2. Air應用程序與其他任何平臺一樣,運行在Air虛擬機中,該虛擬機「在本機」上運行在目標平臺上。 (對於Android,這意味着它可能是用Java編寫的,編譯爲JVM字節碼,然後轉碼爲Dalvik字節碼。)請注意,它可能用於編寫本地(通常是ARM)代碼並將其與基本Java框架鏈接起來,儘管這樣的代碼有一些限制。我會想象Appcelerator提到的其他頁面通過將Javascript翻譯成其他東西(有幾個Javascript到Java的翻譯器)。
  3. 大多數Android應用程序都是用Java編寫的。有些應用程序,特別是那些表示不會在低於2.0版本的Android上運行的應用程序,具有本機代碼庫。見#2。
  4. Java「開箱即用」。正如我前面提到的(#1),稍微有點工作,您應該能夠使用任何生成JVM字節碼的語言編寫代碼,並知道如何鏈接到Java類庫。(我非常希望有人提供斯卡拉聯動:)
+0

並根據http://www.codecommit.com/blog/java/interop-between-java-and-scala,只是說有人需要做一些螞蟻配方黑客攻擊,他們是金。 – geekosaur 2011-03-19 04:36:34

+1

1顯然是錯誤的,因爲你提到了[NDK](http://developer.android.com/sdk/ndk/index.html)。還有其他一些例子,例如[Android的Scripting Layer](http://www.googlelabs.com/show_details?app_key=agtnbGFiczIwLXd3d3IUCxIMTGFic0FwcE1vZGVsGKWdNgw)。 – 2011-03-19 04:41:06

+0

取決於你的解釋。直到最近纔有可能從NDK進行I/O,而不必回調Java,甚至最近可以使用NDK編寫整個應用程序。 – geekosaur 2011-03-19 04:45:57

0

Android NDK提供:

一套工具和建立用於從C和C++源代碼本機代碼庫文件。

相關問題