亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Delphi在Android下使用Java庫的方法

2019-10-21 21:35:58
字體:
來源:轉載
供稿:網友

本文將以Android的USB串口通訊庫為例,介紹Delphi如何在Android中使用Java的庫。

  USB串口通訊庫地址:

   https://github.com/felHR85/UsbSerial

一、Java庫編譯

  1.安裝Android Studio

  2.在Android Studio中將SDK路徑指向Delphi的SDK路徑(避免重復安裝SDK)

  3.下載UsbSerial,用Android Studio打開,

  3.1Android Studio設置(File->Settings)

  gradle設置

Delphi,Android,Java庫

Delphi,Android,Java庫

  3.2設置工程屬性:

  選擇SDK版本:

Delphi,Android,Java庫

 Delphi,Android,Java庫

4.編譯UsbSerial(Build-》Make Project)

  編譯過程可能需要下載Gradle相關文件。

  編譯完成后將生成classes.jar

5. 生成DEX文件

5.1生成dex需要用到一個 dx.bat,具體目錄是在%Android%/build-tools/28.0.3(%Android%為Android SDK目錄,28.0.3不特指,每個tools下都有的,%Android%使用的不一定是C:/Users/Public/Documents/Embarcadero/Studio/19.0/PlatformSDKs/android-sdk-windows)

Delphi,Android,Java庫

5.2進入cmd.exe 配置環境變量:路徑是dx.bat下的目錄

set ANDROID_HOME=/C:/Users/Public/Documents/Embarcadero/Studio/19.0/PlatformSDKs/android-sdk-windows

set path="C:/Program Files (x86)/Java/jdk1.8.0_144/bin";%PATH%

dx --dex --output=C:/DelphiComps/UsbSerial/bin/usbserial.dexC:/DelphiComps/UsbSerial/bin/classes.jar

這樣就生成了usbserial.dex

二、合并dex文件

生成的dex文件需要與Delphi自帶的dex文件進行合并。

Delphi自帶的dex文件分為Debug版本,和Release版本,路徑分別在%BDS%/lib/android/Debug,%BDS%/lib/android/Release

繼續在cmd.exe中:

set BDS=C:/Program Files (x86)/Embarcadero/Studio/19.0

set path="C:/Program Files (x86)/Java/jdk1.8.0_144/bin";%PATH%

java -cp %DX_LIB%/dx.jar com.android.dx.merge.DexMerger debug_classes.dex %BDS%/lib/android/Debug/classes.dex ./usbserial.dex

java -cp %DX_LIB%/dx.jar com.android.dx.merge.DexMerger release_classes.dex %BDS%/lib/android/Release/classes.dex ./usbserial.dex

如果是Debug模式:

copy debug_classes classes.dex

如果是Release模式:

copy Release_classes classes.dex

三、生成Delphi訪問接口

Delphi 10.1以上自帶的Java2OP工具,能夠自動生成java類的接口文件。

在Cmd.exe中

set BDS=C:/Program Files (x86)/Embarcadero/Studio/19.0

set path="C:/Program Files (x86)/Java/jdk1.8.0_144/bin";%PATH%set path=%BDS%/bin/converters/java2op";%PATH%java2op -jar classes.jar Android.JNI.UsbSerial.pas

此處的classes.jar即為usbserial編譯后的java類庫,生成Delphi的接口文件Android.JNI.UsbSerial.pas

五.使用Java類庫

在Delphi工程中引用Android.JNI.UsbSerial.pas

獲取USB管理服務接口

function GetUsbManager: JUsbManager;var UsbManagerService: JObject;begin UsbManagerService := SharedActivity.getSystemService(TJContext.JavaClass.USB_SERVICE); Result := TJUsbManager.Wrap((UsbManagerService as ILocalObject).GetObjectID);end;

 獲取USB設備列表

function GetUsbDevices: TArray<JUsbDevice>;var UsbManager: JUsbManager; UsbDeviceList: JHashMap; UsbDeviceListIterator: JIterator; I: Integer;begin UsbManager := GetUsbManager; if UsbManager <> nil then begin  UsbDeviceList := UsbManager.getDeviceList;  SetLength(Result, UsbDeviceList.size);   UsbDeviceListIterator := UsbDeviceList.values.iterator;  for I := 0 to Length(Result) - 1 do   Result[I] := TJUsbDevice.Wrap((UsbDeviceListIterator.next as ILocalObject).GetObjectID); end;end;

 打開USB設備,返回USB連接接口 

function GetUsbConnection(Device: JUsbDevice): JUsbDeviceConnection;var UsbManager: JUsbManager;begin UsbManager := GetUsbManager; if UsbManager <> nil then  Result := UsbManager.openDevice(Device);end;  //創建USB串口 SerialDevice := TJUsbSerialDevice.JavaClass.createUsbSerialDevice(UsbDevice, UsbConnection); if SerialDevice = nil then begin  raise Exceptioin.Create('Cannot create serial device');  Exit; end;//打開USB串口 if not SerialDevice.syncOpen then begin  raise Exception.Create('Cannot open serial device');  SerialDevice := nil;  UsbConnection.close;  UsbConnection := nil;  Exit; end; //串口設置SerialDevice.setBaudRate(9600);SerialDevice.setDataBits(TJUsbSerialInterface_DATA_BITS_8);SerialDevice.setStopBits(TJUsbSerialInterface_STOP_BITS_1);SerialDevice.setParity(TJUsbSerialInterface_PARITY_NONE);SerialDevice.setFlowControl(TJUsbSerialInterface_FLOW_CONTROL_OFF); //讀串口:if SerialDevice.syncRead(ReadBuffer, 50) >= 1 then Data := Data + TEncoding.UTF8.GetString(ToByteArray(ReadBuffer));   //寫串口  SerialDevice.syncWrite(WriteBuffer, 1000);  

六、Delphi發布

1.權限設置,引用的Java類庫需要的權限,需要在Delphi工程設置工添加上去。

2.將新生成的dex文件發布到遠程路徑classes/中,同時java庫需要的文件也同時添加

Delphi,Android,Java庫

總結

以上所述是小編給大家介紹的Delphi在Android下使用Java庫的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品网站视频| 日韩中文字幕在线看| 国外色69视频在线观看| 亚洲第一国产精品| 日本欧美黄网站| 国产亚洲欧美另类中文| 欧美丰满少妇xxxxx做受| 亚洲最新av在线| 大桥未久av一区二区三区| 成人在线观看视频网站| 亚洲经典中文字幕| 欧美日韩国产精品专区| 国产丝袜精品视频| 国产精品日韩久久久久| 欧美激情乱人伦一区| 欧美电影免费在线观看| 欧美限制级电影在线观看| 5566日本婷婷色中文字幕97| 国产日韩欧美影视| 久久国内精品一国内精品| 成人在线国产精品| 亚洲a级在线播放观看| 成人福利网站在线观看11| 欧美乱妇40p| 亚洲欧美www| 日韩中文字幕网站| 国产精品久久久一区| 久久99精品久久久久久青青91| 国产成人精品国内自产拍免费看| 97不卡在线视频| 亚洲色图日韩av| 日产精品99久久久久久| 亚洲欧美日韩在线一区| 日韩专区在线观看| 夜夜嗨av色综合久久久综合网| 国产欧美最新羞羞视频在线观看| 国产欧美一区二区白浆黑人| 国产精品黄色影片导航在线观看| 91黑丝在线观看| 欧美激情国内偷拍| 亚洲日本成人女熟在线观看| 欧美韩国理论所午夜片917电影| 国产成人一区二区三区电影| 疯狂欧美牲乱大交777| 欧美成人午夜激情| 欧美—级高清免费播放| 欧美一区二区三区免费观看| 亚洲精品大尺度| 日韩欧美在线视频日韩欧美在线视频| 久久久91精品| 亚洲伊人成综合成人网| 亚洲欧美一区二区三区在线| 亚洲国产小视频在线观看| 亚洲最大av网| 2019中文字幕在线观看| 亚洲精品成人免费| 欧美性videos高清精品| 狠狠躁18三区二区一区| 国产精品极品美女粉嫩高清在线| 国产亚洲美女久久| 欧美尤物巨大精品爽| 国产精品一区二区三| 久久久久久久一| 成人在线观看视频网站| 懂色aⅴ精品一区二区三区蜜月| 欧美日韩精品在线视频| 992tv成人免费影院| 国产一区av在线| 欧美极品少妇xxxxx| 久久九九热免费视频| 一区二区三区 在线观看视| 成人av在线网址| 亚洲日韩第一页| 91香蕉亚洲精品| 亚洲精品电影网站| 欧美中文在线观看| 日本精品在线视频| 欧美日韩激情小视频| 国产精品高清免费在线观看| 亚洲精品理论电影| 国内精品小视频在线观看| 欧美激情视频给我| 菠萝蜜影院一区二区免费| 萌白酱国产一区二区| 亚洲第一区中文99精品| 欧美电影在线免费观看网站| 欧美乱妇40p| 久久人人爽人人爽人人片av高清| 国产91精品久久久久久| 欧美日韩免费看| 亚洲国产精久久久久久| 91手机视频在线观看| 国内精品400部情侣激情| 国产精品久久久久av免费| 另类视频在线观看| 精品亚洲一区二区| 4438全国亚洲精品在线观看视频| 欧美精品999| 日韩在线观看成人| 亚洲一区久久久| 亚洲人成欧美中文字幕| 日韩免费av在线| 国产午夜精品免费一区二区三区| 日韩成人免费视频| 91精品国产综合久久久久久蜜臀| 欧美怡春院一区二区三区| 国产一区二区三区视频免费| 在线午夜精品自拍| 欧美精品制服第一页| 国产在线播放不卡| 亚洲国产精品中文| 在线观看精品自拍私拍| 91av网站在线播放| 国产精品丝袜久久久久久高清| 日韩高清欧美高清| 影音先锋欧美精品| 欧美高清视频在线播放| 亚洲成色777777在线观看影院| 亚洲最大在线视频| 国产精品视频一区二区三区四| 国产91成人video| 亚洲综合日韩中文字幕v在线| 日韩经典第一页| 日韩免费av片在线观看| 午夜欧美大片免费观看| 精品久久久久久久久久国产| 96sao精品视频在线观看| 国产999精品视频| 成人信息集中地欧美| 欧美在线免费看| 2018国产精品视频| 亚洲最大的成人网| 国产女精品视频网站免费| 日韩精品高清在线| 在线电影中文日韩| 久久久久久久久久久人体| 亚洲人成电影网站| 少妇av一区二区三区| 狠狠色狠狠色综合日日小说| 精品久久久香蕉免费精品视频| 亚洲精品久久视频| 日韩大胆人体377p| 色婷婷综合成人| 欧美片一区二区三区| 欧美激情第1页| 色综合久久久888| 日韩欧美国产高清91| 日本一区二区在线免费播放| 色妞一区二区三区| 日韩中文字幕网址| 久久久成人av| 欧美精品成人91久久久久久久| 在线观看日韩视频| 欧美一级淫片videoshd| 亚洲精品成人久久久| 久久最新资源网| 日韩福利视频在线观看| 国产精品九九久久久久久久| 国产色婷婷国产综合在线理论片a| 国产精品欧美激情在线播放| 久久久久久中文| 国产精品久久久久久婷婷天堂| 色综合91久久精品中文字幕| 69影院欧美专区视频|