中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

公司的企業(yè)文化怎么寫微信搜一搜seo

公司的企業(yè)文化怎么寫,微信搜一搜seo,協(xié)會(huì)網(wǎng)站建設(shè)必要性,西安網(wǎng)站建設(shè)報(bào)價(jià)大家都知道Delphi能調(diào)用安卓SDK,比如jar、aar等, 但是反過(guò)來(lái),能在Android Studio中調(diào)用Delphi開(kāi)發(fā)的窗體嗎? 想想不太可能吧, Delphi用的是Pascal,Android Studio用的是Java,這兩個(gè)怎么能混用…

大家都知道Delphi能調(diào)用安卓SDK,比如jar、aar等,

但是反過(guò)來(lái),能在Android Studio中調(diào)用Delphi開(kāi)發(fā)的窗體嗎?

想想不太可能吧,

Delphi用的是Pascal,Android Studio用的是Java,這兩個(gè)怎么能混用呢?

而且用Delphi就能開(kāi)發(fā)好APP,為啥還要用到Android Studio?

搞這個(gè)的人,得是有多閑!

就讓我這個(gè)閑得蛋疼的人來(lái)嘗試一下。

首先用Delphi建一個(gè)工程,

如下Delphi工程,

名為EmptyDelphi:

圖片

差不多是一個(gè)空的工程,就只有一個(gè)很簡(jiǎn)單的窗體,上面放了按鈕,點(diǎn)擊彈出:

“Hello,我是Delphi窗體?!?? ?

圖片

圖片

將它在Android 64位平臺(tái)下Build一下,

會(huì)生成我們后面需要的文件,

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

so文件是安卓下的動(dòng)態(tài)鏈接庫(kù),

Delphi將工程的窗體和代碼都編譯到它里面了:?? ?

圖片

在手機(jī)上跑一下看看:?? ?

圖片

注意頂部狀態(tài)欄,是灰黑色的。

? ? ? ? ??

再用Android Studio來(lái)新建一個(gè)工程(簡(jiǎn)單看看即可):?? ?

圖片

填入APP名稱、應(yīng)用包名等:

圖片

可以新建一個(gè)Activity來(lái)玩下原生開(kāi)發(fā)(在安卓下的窗體叫Activity):?? ?

圖片

窗體名設(shè)置為MainActivity,

默認(rèn)勾上Generate a Layout File,表示新建一個(gè)窗體布局文件,就像Delphi中的窗體是一對(duì).pas+.fmx文件,而安卓下窗體是一對(duì).java+.xml文件,

如果勾上Launcher Activity,表示它是主窗體,程序一打開(kāi)就顯示它,

如下圖所示:

圖片

?? ?

雙擊res\layout\activity_main.xml來(lái)在窗體上添加控件:

圖片

雙擊就能打開(kāi)窗體設(shè)計(jì)器:?? ?

圖片

從左邊拖個(gè)按鈕進(jìn)去,這種可視化的方式和Delphi一樣:

圖片

如果建Activity的時(shí)候沒(méi)有勾上Launcher Activity,

那么需要編輯AndroidManifest.xml,

AndroidManifest.xml是安卓程序清單文件,里面登記著所有安卓窗體、服務(wù)等,

打開(kāi)左邊manifests節(jié)點(diǎn)里面的AndroidManifest.xml進(jìn)行編輯:?? ?

圖片

在Activity節(jié)點(diǎn)里面加入如下XML節(jié)點(diǎn),

表示它是一個(gè)主窗體,app一運(yùn)行首先打開(kāi)它,如下圖所示:?? ?

圖片

點(diǎn)擊下右上角的綠色小箭頭就能直接運(yùn)行在手機(jī)上:

圖片

效果如下圖所示:?? ?

圖片

?? ?

? ? ? ? ??

? ? ? ? ??

接下來(lái)把Delphi開(kāi)發(fā)的窗體集成進(jìn)來(lái)作為主窗體:

要想在安卓應(yīng)用中打開(kāi)頁(yè)面,就需要在AndroidManifest.xml中注冊(cè)一個(gè)Activity,

那么我們Delphi開(kāi)發(fā)的窗體有Activity嗎?

它叫什么呢?

我們可以打開(kāi)Android64\Release\AndroidManifest.xml找到答案:

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

圖片

?? ?

圖片

如上圖,Delphi開(kāi)發(fā)的窗體Activity為com.embarcadero.firemonkey.FMXNativeActivity,它是固定的,只是其中meta-data節(jié)點(diǎn)中的value值會(huì)變,是需要一個(gè)動(dòng)態(tài)庫(kù)文件名,為工程名稱。

那我們把這一段復(fù)制到Android Studio工程中的AndroidManifest.xml中去:

并把Android Studio工程中原來(lái)的MainActivity注釋掉:

圖片

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

都標(biāo)紅了,應(yīng)該是出錯(cuò)了,鼠標(biāo)移上去,? ??

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

意思是在工程或庫(kù)中不存在這個(gè)FMXNativeActivity,

那它在哪里?

答案是fmx.jar

Delphi開(kāi)發(fā)的app需要使用fmx.jar來(lái)實(shí)現(xiàn)一些底層的安卓功能,

我們平??梢栽贒elphi 工程視圖中Android平臺(tái)下的Libraries節(jié)點(diǎn)中看到它:

圖片

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?? ?

圖片

這個(gè)目錄一看就是一個(gè)Eclipse項(xiàng)目,

找到FMXNativeActivity這個(gè)類,它是Embarcadero用java寫的,?? ?

圖片

圖片

所以要想在Android Studio中使用Delphi的頁(yè)面,那么就需要引用fmx.jar。?? ?

? ? ? ? ??

在Android Studio中引用fmx.jar

將它拷到安卓工程app目錄中的libs目錄里面,

圖片

? ? ? ? ??

找到工程app模塊的安卓配置文件?build.gradle,它是安卓應(yīng)用的打包配置文件:

圖片

編輯它,在它的dependencies(依賴)中加入如下一行,

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

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

圖片

改了build.gradle之后,右上角會(huì)有“Sync Now”,需要點(diǎn)擊:

圖片

你的APP如果用到了別的aar、jar也都放到libs目錄中來(lái)。

圖片

因?yàn)镕MXNativeActivity在創(chuàng)建的時(shí)候會(huì)加載libEmptyDelphi.so這個(gè)文件,? ??

我們需要將它布署到library\lib\arm64-v8a目錄中,

先將libEmptyDelphi.so拷到安卓項(xiàng)目app\libs\arm64-v8a目錄中,

圖片

把這個(gè)so布署進(jìn)去,

編輯app模塊中的build.gradle,在android節(jié)點(diǎn)中加入:

????sourceSets?{

????????main?{

????????????jniLibs.srcDirs?= ['libs']

????????}

}

如下圖所示:

圖片

? ? ? ? ???? ?

好了,在Android Studio中運(yùn)行工程到手機(jī):?? ?

圖片

?? ?

看看頂部狀態(tài)欄,它是藍(lán)色的。

現(xiàn)在我們成功的用Android Studio將Delphi窗體打包進(jìn)去了,

其實(shí)就類似在Windows平臺(tái)將Delphi窗體封裝進(jìn)DLL,然后給C#調(diào)用來(lái)顯示它們。

這么做有什么好處呢?

1.集成aar方便穩(wěn)定,特別是遇到實(shí)在解決不了的閃退卡死等情況

如果Delphi APP引用了太多的aar,我們不僅需要自己處理依賴包的下載、資源的合并,編譯R.jar,除此之外經(jīng)常會(huì)遇到閃退卡死等問(wèn)題,非常難排查,

用Android Studio就不會(huì)有這種問(wèn)題的產(chǎn)生,直接在build.gradle中編輯好:

圖片

Gradle插件直接幫你自動(dòng)完成全部工作。

? ? ? ? ??

2.打包安卓應(yīng)用快

當(dāng)你的Delphi APP引用了太多了aar之后,要布署相當(dāng)多的資源文件,用Delphi打包APK的過(guò)程就會(huì)顯示相當(dāng)?shù)穆L(zhǎng),我有一個(gè)項(xiàng)目打包一次在五分鐘左右,

而用Android Studio打包,則一分鐘都不到。?? ?

? ? ? ? ??

3.與安卓原生協(xié)同開(kāi)發(fā)

你可以將你的工程編譯為安卓鏈接庫(kù)給原生java他們調(diào)用。

? ? ? ? ??

當(dāng)然Delphi也可以使用Gradle插件來(lái)自動(dòng)集成aar,后面有時(shí)間整理好分享給大家。

? ? ? ? ??

http://www.risenshineclean.com/news/39170.html

相關(guān)文章:

  • 做的好的微信商城網(wǎng)站什么是seo推廣
  • 網(wǎng)站的后臺(tái)是開(kāi)發(fā)做的八零云自助建站免費(fèi)建站平臺(tái)
  • 做網(wǎng)站python和php哪個(gè)好學(xué)百度推廣怎么弄
  • 深圳 汽車網(wǎng)站建設(shè)百度網(wǎng)站首頁(yè)提交入口
  • seo診斷服務(wù)優(yōu)化什么
  • 中國(guó)哪些網(wǎng)站做軟裝seo廠商
  • 四川疫情最新消息今天優(yōu)化服務(wù)
  • 網(wǎng)站設(shè)計(jì)建設(shè)定制中國(guó)搜索引擎市場(chǎng)份額
  • 網(wǎng)站建設(shè)策劃方案如何寫愛(ài)站網(wǎng)關(guān)鍵詞查詢網(wǎng)站的工具
  • 新媒體營(yíng)銷策略有哪些百度推廣優(yōu)化中心
  • 備案通過(guò)后 添加網(wǎng)站谷歌瀏覽器下載手機(jī)版安卓
  • 網(wǎng)站界面用什么做廈門百度推廣排名優(yōu)化
  • 高端的網(wǎng)站建設(shè)百度seo有用嗎
  • 造價(jià)咨詢公司加盟分公司上海百度搜索排名優(yōu)化
  • 鄭州企業(yè)建站模板河南疫情最新消息
  • google 垃圾網(wǎng)站推廣軟文300字范文
  • 做網(wǎng)站自己租服務(wù)器還是網(wǎng)絡(luò)公司如何發(fā)布自己的廣告
  • 建設(shè)網(wǎng)站的好處百度云服務(wù)器
  • 做宣傳網(wǎng)站需要多少錢附近電商培訓(xùn)班
  • 常用企業(yè)網(wǎng)站模板對(duì)比廣告聯(lián)盟下載app
  • 下載了網(wǎng)站建設(shè)asp深圳seo排名優(yōu)化
  • 怎樣搜網(wǎng)站seo工作流程
  • 清遠(yuǎn)做網(wǎng)站哪家好百度百家官網(wǎng)入口
  • 熊掌號(hào)網(wǎng)站怎么做百度的網(wǎng)頁(yè)地址
  • 上海網(wǎng)站制作軟件外鏈交易平臺(tái)
  • 攝影網(wǎng)站的規(guī)劃與設(shè)計(jì)seo網(wǎng)站排名查詢
  • 靜海區(qū)網(wǎng)站建設(shè)推廣老域名購(gòu)買
  • 國(guó)內(nèi)優(yōu)秀網(wǎng)站網(wǎng)絡(luò)營(yíng)銷專業(yè)是學(xué)什么的
  • 牛商網(wǎng)做的網(wǎng)站如何中國(guó)互聯(lián)網(wǎng)電視app下載安裝
  • 有個(gè)印度做網(wǎng)站的天天找我重慶網(wǎng)站開(kāi)發(fā)公司