Delphi10.4.2關于Android設備除錯
1、弄清楚自己的設備CPU架構(與指令集有關)及其出廠的Android版本
https://blog.csdn.net/pulledup/article/details/115317548
2、Delphi10.4.2對Android版本的支持
2.1、支持的平臺及其作業系統版本

詳見本博客博文:
https://blog.csdn.net/pulledup/article/details/108139748
2.2、關于PDA等嵌入式設備
2.2.1、PDA在買的時候,就要問清楚,它最高所支持的Android版本,
2.2.2、一般:嵌入式設備,因為設備CPU版本的指令集所限,目前廠家一般都只能支持:Android 5、Android 6、最多Android7,當然:也有高端CPU設備, 散熱、節能,也支持高版本Android,但那是成本呀,
2.2.3、有些PDA甚至手機型號: 有可能設備廠家修改了Android內核的,Google已經在查這些修改Android內核的設備廠家了,希望今后有好轉,
所以:如果開發這些PDA,最好在D10.3.3下做.
3、Delphi10.4.2下Android SDK及其對應的Deployment中對應的必要配置
3.1、理論
SDK Manager
http://docwiki.embarcadero.com/RADStudio/Sydney/en/SDK_Manager
Running Your Android Application on an Android Device
http://docwiki.embarcadero.com/RADStudio/Sydney/en/Running_Your_Android_Application_on_an_Android_Device
Troubleshooting: Cannot Run on an Android Device
http://docwiki.embarcadero.com/RADStudio/Sydney/en/Troubleshooting:_Cannot_Run_on_an_Android_Device
3.2、實戰
Call Stack出來了:就可以Debug啦:


必備的幾個配置:
3.2.1、Target目標設備要能找到

前提:
3.2.1.1、資料線(最好原廠產品;若有破損請購置新的),而非充電線,
3.2.1.2、設備驅動以使適配的ADB介面生效(廠方官網的技識訓服務板塊一般都提供下載)

ADB是什么:Android Debug Bridge,就是除錯橋
https://baike.baidu.com/item/ADB/23427792
3.2.1.3、Android設備的開發者選項的基本設定


3.2.2、簽名要唯一
如果你改變了專案名稱,請重新配置簽名,否則有可能你手機上存在兩個Apk,它們的簽名都一樣,除錯器是不識別的,

3.2.3、必要的分發檔案Deployment Manager
3.2.3.1、 AndroidManifest.xml

3.2.3.2、 classes.dex
這個千萬不能錯,不能使用D:\Delphi10.4Update2\lib\android\debug\classes.dex,而要使用你的Configuration下對應的(Debug或你沒有除錯是在發布產品Release)Compile編譯后生成的目錄下的classes.dex,

3.2.3.3、 gdbserver
它是你的遠程本機PAServer對應的開發端的PAClient進行Socket通訊必須的中間件快取資料庫,不能漏掉,
上圖兩個均有效,但需要注意的是,Delphi10.4.2的Android SDK分發包PlatformSDKs安裝后的路徑Delphi10.4Update2\PlatformSDKs\AndroidNDK-21-21.0.38860.1461下,NDK指向有問題,導致Debug除錯時DCC代碼的默認路徑指向沖突:
d:\delphi10.4update2\bin\CodeGear.Deployment.targets(585,5): warning :
Local file "D:\Delphi10.4Update2\PlatformSDKs\AndroidNDK-21-21.0.38860.1461\android-ndk-r21prebuilt\android-arm\gdbserver\gdbserver" not found.
Skipping deployment.

應當改配置為:

3.2.3.4、 下面幾個.so動態庫,路徑、取名均不能錯、不能漏:

它們分別代表了,不同CPU架構下Android所適配的指令集的API, 錯了或漏了的話,有些設備能運行、有些設備就不能Run,
Android 64因涉及AAR,不再本文討論,詳見:
https://blog.csdn.net/pulledup/article/details/114365786
https://blog.csdn.net/pulledup/article/details/114579951
3.2.3.5、 Android本機檔案提供者
Android 10后,JNI本機檔案訪問,需要它:

3.2.4、客制化附加的分發檔案Deployment Manager
如果你的Apk依賴于某些外部檔案,它們的命名和路徑必須正確,否則應用會閃退, 比如:

又比如,Sqlite3本地快取資料庫和INI組態檔等:

好久沒寫了,最近懶得很,
喜歡的話,就在下面點個贊、收藏就好了,方便看下次的分享:
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/290472.html
標籤:其他
