Delphi10.4.2关于Android设备调试

Posted pulledup

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi10.4.2关于Android设备调试相关的知识,希望对你有一定的参考价值。

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配置文件等:

            好久没写了,最近懒得很。

喜欢的话,就在下面点个赞、收藏就好了,方便看下次的分享:

以上是关于Delphi10.4.2关于Android设备调试的主要内容,如果未能解决你的问题,请参考以下文章

Delphi 调试连接 任意Android手机/平板/盒子(要安装Google USB Driver,并且还有USB的相关许多文章)

如何在 Android 设备上的 Chrome 上启用调试?

android adb wifi和usb 调试设备

android adb wifi和usb 调试设备

如何打开Android设备的USB调试模式

关于一个delphi程序,很简单,请帮忙!