uni-app安卓原生插件開發(fā)紀(jì)實(shí)
一、項(xiàng)目啟動(dòng)與插件開發(fā)背景
為了滿足項(xiàng)目需求中RFID射頻手持設(shè)備(PDA)讀取羊只耳標(biāo)的功能,我們決定重新開發(fā)一個(gè)uni-app插件。在兼容Android原生環(huán)境的前提下,我們選用了uni-plugin作為開發(fā)工具。

二、開發(fā)流程概述
1. 插件工具下載與導(dǎo)入:從官方網(wǎng)站獲取uni-plugin離線SDK及配套demo,使用Android Studio進(jìn)行導(dǎo)入,為插件開發(fā)做好基礎(chǔ)準(zhǔn)備。
2. 插件模塊構(gòu)建:創(chuàng)建名為“uhfg”的模塊,導(dǎo)入uhf相關(guān)庫,并調(diào)整build.gradle文件以適應(yīng)項(xiàng)目需求,確保插件能夠正常工作。
3. 支持類的編寫:編寫了UHFGUtil類和UHFGUtilListenner類,前者用于處理設(shè)備通信,后者實(shí)現(xiàn)監(jiān)聽,為插件功能提供支撐。
4. 模型類的創(chuàng)建:根據(jù)項(xiàng)目需求,設(shè)計(jì)了一系列模型類,用于存儲(chǔ)和處理相關(guān)數(shù)據(jù),優(yōu)化插件的數(shù)據(jù)管理。

5. 插件打包:使用Android Studio中的gradle工具,以assembleRelease模式進(jìn)行插件編譯,生成適用于uni-app的aar文件,并與必要的libs文件組合成完整的原生插件。
6. 項(xiàng)目集成:在項(xiàng)目中創(chuàng)建本地插件目錄,放置插件包,并在manifest文件中配置本地插件。打包為自定義基座,實(shí)現(xiàn)插件的調(diào)用和項(xiàng)目的完整功能。
7. 云端插件發(fā)布:將開發(fā)完成的插件發(fā)布至云市場,通過云端方式供其他項(xiàng)目調(diào)用。同樣需要打包為自定義基座,方便用戶下載和使用。
8. 調(diào)試與優(yōu)化:解決類名重復(fù)、第三方庫引入不當(dāng)?shù)染幾g錯(cuò)誤,確保插件的兼容性和穩(wěn)定性。整個(gè)開發(fā)流程大約耗時(shí)1.5天。
開發(fā)源碼分享

開發(fā)源碼已上傳至Gitee倉庫,項(xiàng)目地址:[Gitee源碼鏈接](gitee.com/dream-as-hors...)。
關(guān)于AppCan開發(fā)的探討
一、AppCan簡介
AppCan是一個(gè)移動(dòng)應(yīng)用開發(fā)工具,可以幫助開發(fā)者快速開發(fā)移動(dòng)應(yīng)用。它提供了一些便捷的功能和插件,使得開發(fā)者能夠更高效地構(gòu)建應(yīng)用。
二、AppCan的可靠性分析

對于是否靠譜使用AppCan進(jìn)行開發(fā),這取決于你的項(xiàng)目需求。如果你正在開發(fā)一個(gè)不太重要的應(yīng)用,或者需要一個(gè)快速上手的工具,AppCan可以是一個(gè)不錯(cuò)的選擇。如果你正在開發(fā)一個(gè)專業(yè)、重要的應(yīng)用,可能需要考慮更專業(yè)的開發(fā)工具。
三、AppCan的版本差異
AppCan目前分為大眾版和企業(yè)版。大眾版功能相對有限,而企業(yè)版則提供了更多高級(jí)功能和官方插件。企業(yè)版還可以自行開發(fā)插件,滿足更個(gè)性化的需求。
四、AppCan的缺點(diǎn)與挑戰(zhàn)
雖然AppCan提供了一些便捷的開發(fā)工具,但也存在一些缺點(diǎn)和挑戰(zhàn)。其中之一是打包后的應(yīng)用會(huì)加入AppCan的一些代碼,這些代碼可能會(huì)導(dǎo)致服務(wù)器請求不穩(wěn)定,從而影響應(yīng)用的性能和穩(wěn)定性。AppCan的官方響應(yīng)速度有時(shí)較慢,可能會(huì)在遇到問題時(shí)造成困擾。在使用AppCan進(jìn)行開發(fā)時(shí),需要對其潛在的問題和挑戰(zhàn)有所了解,并做好相應(yīng)的準(zhǔn)備。uniapp原生插件開發(fā)問題解讀與總結(jié)

一、關(guān)于uniapp原生插件的概述
隨著移動(dòng)應(yīng)用的發(fā)展,uniapp作為一個(gè)跨平臺(tái)的開發(fā)框架受到了廣泛關(guān)注。原生插件的開發(fā)對于提升應(yīng)用的性能和用戶體驗(yàn)起到了關(guān)鍵作用。本文將針對uniapp原生插件開發(fā)過程中常見的問題進(jìn)行解讀和總結(jié)。
二、問題1:設(shè)備兼容性問題
在導(dǎo)入U(xiǎn)niPlugin-Hello-AS工程項(xiàng)目后,運(yùn)行時(shí)虛擬器報(bào)告“device support x86 but apk only supports armeabi-v7a”的錯(cuò)誤。
解答:

這個(gè)問題涉及到應(yīng)用的編譯與設(shè)備架構(gòu)的匹配問題。開發(fā)者需要確保編譯的APK支持目標(biāo)設(shè)備的架構(gòu)。對于此問題,建議檢查項(xiàng)目的構(gòu)建配置,確保支持目標(biāo)設(shè)備的CPU架構(gòu),如armeabi-v7a或x86。還需要確保開發(fā)環(huán)境中虛擬器的配置與實(shí)際設(shè)備一致。
三、問題2:插件打包過程中的困惑
在打包uni-app插件時(shí),選擇Gradle流程中的“插件module”并嘗試雙擊運(yùn)行“assembleRelease”任務(wù)以生成module的aar文件時(shí)遭遇失敗。
解答:
這個(gè)問題與Gradle配置有關(guān)。根據(jù)實(shí)踐者的經(jīng)驗(yàn)分享,修改插件module的gradle文件是關(guān)鍵。除了對sdk的arr包引入不用改為implementation,其他地方的compileOnly都需要改為implementation。這樣的調(diào)整能夠解決運(yùn)行assembleRelease時(shí)報(bào)錯(cuò)的問題。成功獲取插件module的aar文件后,就可以將其集成到uniapp項(xiàng)目中,以實(shí)現(xiàn)特定的功能。

備注:
在官方原生插件開發(fā)文檔中,添加依賴庫時(shí)使用的是compileOnly。但在實(shí)際操作中,如果直接使用compileOnly可能會(huì)導(dǎo)致運(yùn)行assembleRelease時(shí)報(bào)錯(cuò)。建議開發(fā)者在實(shí)際操作中,將compileOnly修改為implementation,以確保打包過程的順利進(jìn)行。
四、關(guān)于aapcan的評(píng)價(jià)
對于aapcan的免費(fèi)版,個(gè)人認(rèn)為其支持度有限;而對于企業(yè)版,雖然相對較好,但并未達(dá)到非常專業(yè)的水平。如果開發(fā)者所處理的項(xiàng)目非核心需求不迫切,使用aapcan可能無所謂;但對于需要開發(fā)靠譜項(xiàng)目的開發(fā)者,建議考慮使用其他更為成熟的框架,如phonegap。
五、總結(jié)與展望

本文總結(jié)了uniapp原生插件開發(fā)過程中的常見問題,并提供了相應(yīng)的解答。也對aapcan進(jìn)行了簡要的評(píng)價(jià)。隨著移動(dòng)應(yīng)用的不斷發(fā)展,原生插件的開發(fā)將越來越重要。希望本文的內(nèi)容能夠幫助開發(fā)者更好地理解和解決uniapp原生插件開發(fā)過程中的問題,為移動(dòng)應(yīng)用開發(fā)貢獻(xiàn)力量。