了解過Android開發的同學們對Java語言一定不會陌生,在原生的Android開發中我們幾乎可以用Java實現任何功能,甚至通過Java的jni調用一些基于C/C++所寫的庫。
那么ai中有沒有可能實現內嵌Java代碼的方法呢?答案肯定是沒有的啦,畢竟Java代碼變成能夠被計算機(Java虛擬機)所識別的代碼(字節碼)中一個必不可少的步驟就是編譯,一般java代碼的編譯需要編譯器來完成,在android上,能夠直接加載執行的是一個叫做dex的文件,它實際上是將編譯出的一個個字節碼文件打包到了一個文件中,由Dalvik虛擬機所加載執行,編譯工作需要在服務器或者用戶的個人電腦上完成。aix擴展組件在ai伴侶上的動態加載實際上就是動態加載dex的原理,而動態加載dex文件在JavaReflector中也完全實現,參見LoadDex塊。
不過,雖然不能直接在java中內嵌java代碼,但是現在我們現在可以借助JavaReflector組件實現ai中調用Java的API,Java API雖然是由java編寫的,但是如果你不懂java語言的語法,也沒有關系,只需要我帶領大家學會閱讀Java API文檔與Android API文檔,來帶領大家寫出JavaReflector程序,從而實現不需要寫拓展組件也能夠調用android sdk所提供的api了。
在這里建議大家收藏這兩個網址:
JavaAPI文檔:https://tool.oschina.net/uploads/apidocs/jdk-zh/
AndroidAPI文檔https://tool.oschina.net/uploads/apidocs/android/reference/packages.html
而接下來,的教程中我們將逐步教大家使用JavaReflector組件,有Java基礎的同學相信很快就會上手,沒有學過Java的同學建議先學習一下Java中數據類型,數組,對象等基本概念,當然我也會盡量讓大家零基礎就能夠學會本組件,從而能夠在AppInventor中擴展AppInventor更多高級好玩的功能。
注意:本教程中的JavaReflector組件暫時還不支持以aix的形式發布,目前僅在wxbit平臺wxbit中上線。
如圖,該組件存在于系統增強目錄下,下一篇將介紹JavaReflec所需要的一些基礎概念。