c++builder 10.3.3 整合 alcinoe 元件集
結論,alcinoe 元件適合 delphi 跨平臺開發,如果用 c++ builder 可以在 windows 上使用, android 上編譯時會有問題。
以下為試用過程,
為了在 App 中增加音視訊功能,在 github 上找到了 alcinoe 元件,也可以從 svn://svn.code.sf.net/p/alcinoe/code 上 checkout,總大小約為 700M。安裝前,一定先閱讀 readme.md 檔案。
按照上圖的步驟,依次操作,都要做。下面詳細解釋過程,
1,在 Delphi 中安裝,
1.1,開啟 windows 控制面板,在 path 變數中增加“D:\08原始碼\FMX\alcinoe\source”。路徑中包含中文也沒有關係。我的系統中還安裝了 VS2019 ,沒有發現衝突。
1.2,匯入 Alcinoe 元件。選單 Component - Install Packages,因為 IDE 是10.3.3,所以選擇“D:\08原始碼FMX\alcinoe\lib\bpl\alcinoe\Win32\rio\Alcinoe_rio.bpl”。github 原始碼中只有 rio 和 sydney 兩個版本的檔案,如果 RAD 低於10.3 就要升級了。
1.3,alcinoe 升級 RAD 10.3.3 的原始碼。這一步驟很是花了一天時間。因為執行 update.bat 時遇到的一個相對路徑的問題,一直犯迷糊。命令在從 IDE 中拷貝檔案到“D:\08原始碼\FMX\alcinoe\embarcadero\rio\10_3_3”之後,執行 git apply 命令時,顯示“No such file or directory”。
正確的方式,首先,保證安裝了 git,我的是“Git-2.32.0-64-bit.exe”,其次,執行cmd命令時要有管理員許可權,第三,保證命令的執行路徑,要在 alcinoe 的根目錄“D:\08原始碼\FMX\alcinoe”執行 update.exe,切記路徑不要搞錯了。
1.4,複製新“D:\08原始碼\FMX\alcinoe\tools\D8Proxy\dx.bat”檔案到“C:\Users\Public\Documents\Embarcadero\Studio\20.0\PlatformSDKs\android-sdk-windows\build-tools\29.0.3”,覆蓋原檔案,建議先備份原來的 dx.bat 檔案。
這裡也有個坑,dx.bat 檔案的內容要修改,否則編譯 android 工程時會出錯。要把檔案中的兩個變數的路徑值修改為自己電腦上的路徑。
set librariesRootPath=D:\08原始碼\FMX\alcinoe\lib\jar
set AndroidPlatformsSDKRootPath=C:\Users\Public\Documents\Embarcadero\Studio\20.0\PlatformSDKs\android-sdk-windows\platforms\android-29
1.5,接下來,開啟Delphi,新工程要在所有的工程中增加四個路徑。
1.6,在 Demos 中開啟工程 ALFmxControls,選擇 android 64-bit ,編譯併發布到手機上。這個工程也是作者放在 github 上展示效能的示例。
手機示例,
2,接下來要在 C++Builder 中使用 TALEdit 元件(引用原始碼的方式)。
2.1,在 CB 中 Install package,完成後顯示在元件庫中,
2.2,新建一個 空的 Multi-Device Application,並放置一個 TALEdit,
2.3,與 Delphi 不同,CB 中 win32 編譯時會產生的一些問題,於是在工程中增加與 TALEdit 引用的 pas 原始碼和 alcinoe_rio.lib 靜態庫,以及設定工程的引用路徑,之後即可編譯並執行。
2.4,選擇在 android32 環境下編譯,會提示找不到靜態庫 libAlcinoe_rio.a 等四個檔案。原始碼目錄中並沒有這四個檔案,為什麼增加了原始碼,還會要庫檔案。
單擊 cancel 之後,顯示提示如下,
這條路有些走不通。