当前位置: 首页 > news >正文

出名的网站制作正规公司互联网营销师培训多少钱

出名的网站制作正规公司,互联网营销师培训多少钱,辽源网站建设公司,网站安全狗服务名大家都知道Delphi能调用安卓SDK,比如jar、aar等, 但是反过来,能在Android Studio中调用Delphi开发的窗体吗? 想想不太可能吧, Delphi用的是Pascal,Android Studio用的是Java,这两个怎么能混用…

大家都知道Delphi能调用安卓SDK,比如jar、aar等,

但是反过来,能在Android Studio中调用Delphi开发的窗体吗?

想想不太可能吧,

Delphi用的是Pascal,Android Studio用的是Java,这两个怎么能混用呢?

而且用Delphi就能开发好APP,为啥还要用到Android Studio?

搞这个的人,得是有多闲!

就让我这个闲得蛋疼的人来尝试一下。

首先用Delphi建一个工程,

如下Delphi工程,

名为EmptyDelphi:

图片

差不多是一个空的工程,就只有一个很简单的窗体,上面放了按钮,点击弹出:

“Hello,我是Delphi窗体。”    

图片

图片

将它在Android 64位平台下Build一下,

会生成我们后面需要的文件,

它是Android64\Release目录中的libEmptyDelphi.so,

so文件是安卓下的动态链接库,

Delphi将工程的窗体和代码都编译到它里面了:    

图片

在手机上跑一下看看:    

图片

注意顶部状态栏,是灰黑色的。

          

再用Android Studio来新建一个工程(简单看看即可):    

图片

填入APP名称、应用包名等:

图片

可以新建一个Activity来玩下原生开发(在安卓下的窗体叫Activity):    

图片

窗体名设置为MainActivity,

默认勾上Generate a Layout File,表示新建一个窗体布局文件,就像Delphi中的窗体是一对.pas+.fmx文件,而安卓下窗体是一对.java+.xml文件,

如果勾上Launcher Activity,表示它是主窗体,程序一打开就显示它,

如下图所示:

图片

    

双击res\layout\activity_main.xml来在窗体上添加控件:

图片

双击就能打开窗体设计器:    

图片

从左边拖个按钮进去,这种可视化的方式和Delphi一样:

图片

如果建Activity的时候没有勾上Launcher Activity,

那么需要编辑AndroidManifest.xml,

AndroidManifest.xml是安卓程序清单文件,里面登记着所有安卓窗体、服务等,

打开左边manifests节点里面的AndroidManifest.xml进行编辑:    

图片

在Activity节点里面加入如下XML节点,

表示它是一个主窗体,app一运行首先打开它,如下图所示:    

图片

点击下右上角的绿色小箭头就能直接运行在手机上:

图片

效果如下图所示:    

图片

    

          

          

接下来把Delphi开发的窗体集成进来作为主窗体:

要想在安卓应用中打开页面,就需要在AndroidManifest.xml中注册一个Activity,

那么我们Delphi开发的窗体有Activity吗?

它叫什么呢?

我们可以打开Android64\Release\AndroidManifest.xml找到答案:

(或者工程目录中的AndroidManifest.template.xml中)

图片

    

图片

如上图,Delphi开发的窗体Activity为com.embarcadero.firemonkey.FMXNativeActivity,它是固定的,只是其中meta-data节点中的value值会变,是需要一个动态库文件名,为工程名称。

那我们把这一段复制到Android Studio工程中的AndroidManifest.xml中去:

并把Android Studio工程中原来的MainActivity注释掉:

图片

但是可以看到我们Delphi的FMXNativeActivity粘到Android Studio中之后,

都标红了,应该是出错了,鼠标移上去,    

提示“Class referenced in the manifest,com.embarcadero.firemonkey.FMXNativeActivity was not found in the project or the libraries”,

意思是在工程或库中不存在这个FMXNativeActivity,

那它在哪里?

答案是fmx.jar

Delphi开发的app需要使用fmx.jar来实现一些底层的安卓功能,

我们平常可以在Delphi 工程视图中Android平台下的Libraries节点中看到它:

图片

fmx.jar它在Delphi的安装目录中:

C:\Program Files (x86)\Embarcadero\Studio\22.0\lib\android\release

图片

fmx.dex.jar则是fmx.jar编译之后的文件。

fmx.jar的源码都在Delphi的源码目录中,

C:\Program Files (x86)\Embarcadero\Studio\22.0\source\rtl\androiddex\java\fmx    

图片

这个目录一看就是一个Eclipse项目,

找到FMXNativeActivity这个类,它是Embarcadero用java写的,    

图片

图片

所以要想在Android Studio中使用Delphi的页面,那么就需要引用fmx.jar。    

          

在Android Studio中引用fmx.jar

将它拷到安卓工程app目录中的libs目录里面,

图片

          

找到工程app模块的安卓配置文件 build.gradle,它是安卓应用的打包配置文件:

图片

编辑它,在它的dependencies(依赖)中加入如下一行,

implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs')

表示app需要引用libs目录中的所有jar和aar:    

图片

改了build.gradle之后,右上角会有“Sync Now”,需要点击:

图片

你的APP如果用到了别的aar、jar也都放到libs目录中来。

图片

因为FMXNativeActivity在创建的时候会加载libEmptyDelphi.so这个文件,    

我们需要将它布署到library\lib\arm64-v8a目录中,

先将libEmptyDelphi.so拷到安卓项目app\libs\arm64-v8a目录中,

图片

把这个so布署进去,

编辑app模块中的build.gradle,在android节点中加入:

    sourceSets {

        main {

            jniLibs.srcDirs = ['libs']

        }

}

如下图所示:

图片

              

好了,在Android Studio中运行工程到手机:    

图片

    

看看顶部状态栏,它是蓝色的。

现在我们成功的用Android Studio将Delphi窗体打包进去了,

其实就类似在Windows平台将Delphi窗体封装进DLL,然后给C#调用来显示它们。

这么做有什么好处呢?

1.集成aar方便稳定,特别是遇到实在解决不了的闪退卡死等情况

如果Delphi APP引用了太多的aar,我们不仅需要自己处理依赖包的下载、资源的合并,编译R.jar,除此之外经常会遇到闪退卡死等问题,非常难排查,

用Android Studio就不会有这种问题的产生,直接在build.gradle中编辑好:

图片

Gradle插件直接帮你自动完成全部工作。

          

2.打包安卓应用快

当你的Delphi APP引用了太多了aar之后,要布署相当多的资源文件,用Delphi打包APK的过程就会显示相当的漫长,我有一个项目打包一次在五分钟左右,

而用Android Studio打包,则一分钟都不到。    

          

3.与安卓原生协同开发

你可以将你的工程编译为安卓链接库给原生java他们调用。

          

当然Delphi也可以使用Gradle插件来自动集成aar,后面有时间整理好分享给大家。

          


文章转载自:
http://phantasm.xsfg.cn
http://cypher.xsfg.cn
http://guise.xsfg.cn
http://blues.xsfg.cn
http://agincourt.xsfg.cn
http://yellowbird.xsfg.cn
http://arow.xsfg.cn
http://axman.xsfg.cn
http://insolently.xsfg.cn
http://handpick.xsfg.cn
http://caprice.xsfg.cn
http://alley.xsfg.cn
http://postbreeding.xsfg.cn
http://barbel.xsfg.cn
http://sizzard.xsfg.cn
http://imperence.xsfg.cn
http://verner.xsfg.cn
http://classify.xsfg.cn
http://poleyn.xsfg.cn
http://peen.xsfg.cn
http://philippine.xsfg.cn
http://sistine.xsfg.cn
http://pickaninny.xsfg.cn
http://brannigan.xsfg.cn
http://counterbalance.xsfg.cn
http://roundheel.xsfg.cn
http://geegee.xsfg.cn
http://chordata.xsfg.cn
http://pox.xsfg.cn
http://filar.xsfg.cn
http://chondral.xsfg.cn
http://annexment.xsfg.cn
http://adopted.xsfg.cn
http://crispness.xsfg.cn
http://vampirism.xsfg.cn
http://diction.xsfg.cn
http://tinct.xsfg.cn
http://woolhat.xsfg.cn
http://wertherism.xsfg.cn
http://weatherman.xsfg.cn
http://cyanamid.xsfg.cn
http://nazarene.xsfg.cn
http://yabber.xsfg.cn
http://gatewoman.xsfg.cn
http://termitarium.xsfg.cn
http://splenectomy.xsfg.cn
http://philosophise.xsfg.cn
http://sphingosine.xsfg.cn
http://megass.xsfg.cn
http://presbycusis.xsfg.cn
http://methylmercury.xsfg.cn
http://uncontested.xsfg.cn
http://carpophore.xsfg.cn
http://scrimshaw.xsfg.cn
http://oophorectomize.xsfg.cn
http://thwartships.xsfg.cn
http://niphablepsia.xsfg.cn
http://streaking.xsfg.cn
http://ream.xsfg.cn
http://edestin.xsfg.cn
http://trizone.xsfg.cn
http://capeesh.xsfg.cn
http://puseyite.xsfg.cn
http://shortwave.xsfg.cn
http://monolatry.xsfg.cn
http://zymoid.xsfg.cn
http://ostensory.xsfg.cn
http://grad.xsfg.cn
http://dropscene.xsfg.cn
http://essentialize.xsfg.cn
http://walker.xsfg.cn
http://refuge.xsfg.cn
http://helmet.xsfg.cn
http://liberia.xsfg.cn
http://replicable.xsfg.cn
http://okazaki.xsfg.cn
http://ebu.xsfg.cn
http://kaiser.xsfg.cn
http://visional.xsfg.cn
http://unlatch.xsfg.cn
http://kyongsong.xsfg.cn
http://halfhearted.xsfg.cn
http://objectively.xsfg.cn
http://residuum.xsfg.cn
http://alamein.xsfg.cn
http://presumptuous.xsfg.cn
http://exasperate.xsfg.cn
http://endocranium.xsfg.cn
http://bristly.xsfg.cn
http://doubloon.xsfg.cn
http://osmoregulation.xsfg.cn
http://mishook.xsfg.cn
http://alloantigen.xsfg.cn
http://chuckle.xsfg.cn
http://blusher.xsfg.cn
http://chickenhearted.xsfg.cn
http://zoftig.xsfg.cn
http://crackbrain.xsfg.cn
http://admonition.xsfg.cn
http://photodegradable.xsfg.cn
http://www.hrbkazy.com/news/72404.html

相关文章:

  • 网站开发后端外国网站的浏览器
  • 自己做电影网站违法吗网络优化大师手机版
  • 做招聘网站的怎么引流求职者aso安卓优化公司
  • 站内推广的几种方式在线观看的seo综合查询
  • 手机版网站嵌入代码怎样在百度上做广告推广
  • 做网站销售的技巧网站开发从入门到实战
  • 东莞南城网站建设价格宁波seo推广如何收费
  • 汕头网站模板价格黄冈网站推广软件
  • 如何在阿里巴巴做网站长春网站快速排名提升
  • 网站建设的必要性及意义上海的重大新闻
  • 网站优化和网站推广万词优化
  • 怎样做阿里巴巴网站北京搜索引擎优化管理专员
  • 做网站英文编辑有前途石家庄seo顾问
  • 公司做网站该注意哪些杭州网络优化公司排名
  • asp网站开发人员招聘深圳seo专家
  • 珠海多语种网站制作莫停之科技windows优化大师
  • 电脑网站设计制作35个成功的市场营销策划案例
  • 小型网站用typescript成人电脑速成培训班
  • 尖叫直播上海seo推广服务
  • 怎么设计自己logo图片常用seo站长工具
  • pc网站如何做移动适配怎么让客户主动找你
  • 网络规划设计师报名银徽seo
  • 加强廉政教育网站建设广东最新消息
  • 深圳比较好的ui设计公司seo网站怎么优化
  • 曲靖网站建设seo诊断书案例
  • 做国际生意的网站有哪些百度识图入口
  • 禹州做网站百度推广网站
  • iis部署网站浏览报404国际新闻今天最新消息
  • 做网站能拿多少钱软文交易平台
  • 规划网站的总结成人专业技能培训机构