一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在現(xiàn)有安卓應(yīng)用的基礎(chǔ)上擴(kuò)展鴻蒙的特性

OpenHarmony技術(shù)社區(qū) ? 來(lái)源:鴻蒙技術(shù)社 ? 作者:沒(méi)用的喵叔 ? 2021-06-30 09:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

鴻蒙混合打包,在現(xiàn)有安卓應(yīng)用的基礎(chǔ)上擴(kuò)展鴻蒙的特性,以最快的速度布局鴻蒙生態(tài)!

本項(xiàng)目只是《京東 APP 鴻蒙版上架實(shí)踐》這篇文章的一個(gè)驗(yàn)證,讓更多的兄弟們可以少走彎路。

我盡可能把每一步的改動(dòng)作為一個(gè) commit,這樣方便大家看代碼。

開(kāi)發(fā)步驟

①準(zhǔn)備 Android 工程

本示例中,我用 AS 建了一個(gè) Hello World 工程。

②Android 工程改造

這一步,有兩點(diǎn)要注意的:

abilityshell_ide_java.jar 在這里,自行 copy 到安卓工程中。

注意 apk 文件名必須是 xxx-entry.apk 這種格式。

③準(zhǔn)備鴻蒙工程

本示例中,我用 DevEco Studio 建了一個(gè) Hello World 工程。

④配置鴻蒙工程

這一步,有三點(diǎn)要注意的:

簽名就不要轉(zhuǎn)了,直接重新創(chuàng)建,只要秘鑰和別名和 Android 的保持不變。(如果在模擬器上運(yùn)行,不配置簽名也能跑起來(lái))

鴻蒙的 version 和 apk 的 version 要一致。

config.json 的 app 節(jié)點(diǎn)下,增加 relatedBundleName 而不是 originalName。

config.json 里都支持哪些字段,沒(méi)必要看文檔,只要按住 ctrl 點(diǎn)擊相應(yīng)的字段,就可以看到,比如點(diǎn)擊 app 字段。

9b775520-d91a-11eb-9e57-12bb97331649.jpg

⑤卡片

本示例中,我用 DevEco Studio 建了一個(gè)名為 mycard 的 module,并且勾選“show in service center”,這樣這個(gè)卡片就可以顯示在“服務(wù)中心”了。

有幾點(diǎn)需要說(shuō)明:

必須簽名(我的驗(yàn)證結(jié)果是這樣的),所以要有真機(jī)。我提交的簽名文件是綁定我的機(jī)器,所以你要更新自己的簽名文件。

卡片的 config.json 的 app 字段要和 entry 的 app 字段完全一致(relatedBundleName 字段只在 entry 里有就可以,卡片里不寫(xiě)也行)。

多 module 的工程,運(yùn)行的時(shí)候要勾選 Deploy Multi Hap Packages。

為什么把卡片放在獨(dú)立的 module 里?因?yàn)榛旌洗虬拢琫ntry 只是一個(gè)殼,我們可以把 entry 當(dāng)作 apk 的占位,所以 entry 里的內(nèi)容都不會(huì)打到 appj 里,鴻蒙相關(guān)的功能代碼我們只能放在獨(dú)立的 module 中。(當(dāng)然,這也是我的驗(yàn)證結(jié)果,最終要等華為官方更明確的文檔解釋?zhuān)?/p>

⑥鴻蒙打開(kāi) apk 中的 activity

請(qǐng)參考京東 APP 鴻蒙版上架實(shí)踐:

⑦鴻蒙打開(kāi) apk 中的 activity,并傳遞參數(shù)

鴻蒙 IntentParams 對(duì)應(yīng)安卓 Bundle,相應(yīng)的 api

//ohos put:

IntentParams params = new IntentParams();

params.setParam(“androidFile1”,“androidFile1----”);

intent.setParams(params);

//android put:

Intent intent = new Intent();

intent.putExtra(“androidFile1”,“androidFile1----”);

//get:

intent.getStringExtra(“androidFile1”);

鴻蒙 Uri 對(duì)應(yīng)安卓 Uri,鴻蒙 Entity 對(duì)應(yīng)安卓 Category,相應(yīng)的 api:

//ohos put:Set《String》 entities = new HashSet《》();

entities.add(“entity.user.c1”);

Operation operation = new Intent.OperationBuilder()

.withUri(Uri.parse(“https://www.baidu.com”))

.withEntities(entities)

.build();

//android put:

Intent intent = new Intent();

intent.setData(Uri.parse(“https://www.baidu.com”));

intent.addCategory(“entity.user.c1”);

//get:

intent.getData();

intent.getCategories();

常見(jiàn)問(wèn)題(歡迎評(píng)論區(qū)補(bǔ)充)

Failure[INSTALL_FAILED_INCONSISTENT_BUNDLE_VERSION]

混合打合時(shí)要和 apk 的 version 一致。

Failure[INSTALL_FAILED_RESTRICTED_PERMISSIONS_NOT_GRANTED]

沒(méi)有繼承 HarmonyApplication 或者沒(méi)有配置到 AndroidManifest.xml 中。

Failure[INSTALL_FAILED_INTERNAL_ERROR]

確認(rèn)一下:

在AndroidManifest.xml中,向根節(jié)點(diǎn)下增加。

《uses-feature android:name=“zidane.software.ability” android:required=“false” /》

向application節(jié)點(diǎn)下新增子節(jié)點(diǎn)。

《meta-data android:name=“permZA” android:value=“true” /》

《meta-data android:name=“multiFrameworkBundle” android:value=“true” /》

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3973

    瀏覽量

    130239
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2642

    瀏覽量

    68093

原文標(biāo)題:在安卓應(yīng)用上擴(kuò)展鴻蒙特性

文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    釋放潛力:樹(shù)莓派上運(yùn)行系統(tǒng)實(shí)現(xiàn)多樣化應(yīng)用!

    為什么要在樹(shù)莓派上運(yùn)行系統(tǒng)?系統(tǒng)以其龐大的應(yīng)用生態(tài)系統(tǒng)和用戶友好的界面而聞名,它能夠?qū)?shù)莓派轉(zhuǎn)變?yōu)楣δ軓?qiáng)大的設(shè)備,能夠處理從媒體消費(fèi)到輕量級(jí)計(jì)算和物聯(lián)網(wǎng)應(yīng)用等各種任務(wù)。優(yōu)勢(shì)高度
    的頭像 發(fā)表于 07-05 08:33 ?204次閱讀
    釋放潛力:<b class='flag-5'>在</b>樹(shù)莓派上運(yùn)行<b class='flag-5'>安</b><b class='flag-5'>卓</b>系統(tǒng)實(shí)現(xiàn)多樣化應(yīng)用!

    如何實(shí)現(xiàn)與恩智浦i.MX RT1170的無(wú)線投屏與控制

    Scrcpy是一款免費(fèi)開(kāi)源的軟件,支持將端屏幕投影到其他設(shè)備,并支持被投屏設(shè)備對(duì)的反向控制?;贏DB工具,
    的頭像 發(fā)表于 06-26 09:53 ?1271次閱讀
    如何實(shí)現(xiàn)<b class='flag-5'>安</b><b class='flag-5'>卓</b>與恩智浦i.MX RT1170的無(wú)線投屏與控制

    與 Windows 系統(tǒng)的手持工業(yè)平板電腦,該如何選擇?

    眾多企業(yè)面臨的關(guān)鍵問(wèn)題。 一、系統(tǒng)特性剖析 (一)系統(tǒng) 開(kāi)源與定制靈活性:系統(tǒng)基于開(kāi)源架構(gòu),這意味著設(shè)備制造商和開(kāi)發(fā)者能夠根據(jù)工業(yè)場(chǎng)
    的頭像 發(fā)表于 06-04 11:02 ?257次閱讀

    有人接rk3576的視頻硬件解碼的實(shí)現(xiàn)么?

    ,機(jī)頂盒是Android 14,CPU是RK3576,商家說(shuō)是支持視頻硬解,但是沒(méi)有提供更具體的資料了。 我們是想在這個(gè)硬件基礎(chǔ)上實(shí)現(xiàn)視頻硬解,看是否有相關(guān)經(jīng)驗(yàn)的人來(lái)接 關(guān)于需求可看下面:*附件:6 需求介紹.pdf
    發(fā)表于 05-19 09:52

    工業(yè)級(jí)一體機(jī)智能機(jī)器人中的應(yīng)用

    工業(yè)級(jí)一體機(jī)智能機(jī)器人中的應(yīng)用,憑借其高穩(wěn)定性、靈活擴(kuò)展性及開(kāi)源生態(tài)優(yōu)勢(shì),正逐步成為工業(yè)自動(dòng)化與智能服務(wù)場(chǎng)景中的核心控制平臺(tái)。以下從技術(shù)適配性、應(yīng)用場(chǎng)景及行業(yè)價(jià)值三個(gè)維度展開(kāi)分析
    的頭像 發(fā)表于 04-25 11:51 ?220次閱讀

    工業(yè)主板智能電子秤設(shè)備中的應(yīng)用

    隨著工業(yè)自動(dòng)化與智能化需求的增長(zhǎng),工業(yè)主板憑借其高可靠性、靈活性和擴(kuò)展性,逐漸成為智能電子秤設(shè)備的核心控制單元。以下從技術(shù)特性、應(yīng)用場(chǎng)景、功能實(shí)現(xiàn)及優(yōu)勢(shì)等方面詳細(xì)分析工業(yè)
    的頭像 發(fā)表于 04-18 16:00 ?240次閱讀
    工業(yè)<b class='flag-5'>安</b><b class='flag-5'>卓</b>主板<b class='flag-5'>在</b>智能電子秤設(shè)備中的應(yīng)用

    自制 AirTag,支持/鴻蒙/PC/Home Assistant,無(wú)需擁有 iPhone

    ,模擬發(fā)出 FindMy 藍(lán)牙廣播。 這樣制作出的定位標(biāo)簽,不需要蘋(píng)果手機(jī)綁定,支持/鴻蒙/PC/Home Assistant 查看標(biāo)簽的位置。 制作教程 我 gitee
    發(fā)表于 02-25 11:22

    鴻蒙Flutter實(shí)戰(zhàn):14-現(xiàn)有Flutter 項(xiàng)目支持鴻蒙 II

    引言 之前的文章鴻蒙Flutter實(shí)戰(zhàn):09-現(xiàn)有Flutter項(xiàng)目支持鴻蒙中,介紹了如何改造項(xiàng)目,適配鴻蒙平臺(tái)。 文中講述了整體的理念和
    發(fā)表于 12-26 14:59

    工控觸屏一體機(jī)交通消防應(yīng)急供電中的應(yīng)用

    工控觸屏一體機(jī)交通消防應(yīng)急供電中的應(yīng)用,主要依賴于其集成了操作系統(tǒng)、高性能處理器、觸摸屏顯示等先進(jìn)技術(shù),這些
    的頭像 發(fā)表于 11-06 17:50 ?533次閱讀

    AIC3262 CODEC能否下運(yùn)用?

    我們有多路音頻混音應(yīng)用需求(雙路MIC. LINE IN, I2S 音源輸入,耳機(jī)輸出監(jiān)聽(tīng)及混音后錄音),針對(duì)混音還有通過(guò)DSP 作混響, 10段EQ應(yīng)用, 該裝置需要在環(huán)境下運(yùn)行。不知TI AIC3262 CODEC能否
    發(fā)表于 10-29 08:19

    鴻蒙系統(tǒng)生態(tài)設(shè)備突破10億臺(tái) 超過(guò)15000個(gè)鴻蒙原生應(yīng)用和元服務(wù)

    從操作系統(tǒng)內(nèi)核、文件系統(tǒng),到編程語(yǔ)言、人工智能框架和大模型等全部實(shí)現(xiàn)自研;放棄了傳統(tǒng)的Linux內(nèi)核以及開(kāi)源代碼項(xiàng)目AOSP,僅支持鴻蒙內(nèi)核和鴻蒙系統(tǒng)的應(yīng)用。 根據(jù)發(fā)布會(huì)上透露的性
    的頭像 發(fā)表于 10-23 16:43 ?1979次閱讀

    鴻蒙Flutter實(shí)戰(zhàn):09-現(xiàn)有Flutter項(xiàng)目支持鴻蒙

    # 鴻蒙Flutter實(shí)戰(zhàn):現(xiàn)有Flutter項(xiàng)目支持鴻蒙 ## 背景 原來(lái)使用Flutter開(kāi)發(fā)的項(xiàng)目,需要適配鴻蒙。 ## 環(huán)境搭建 見(jiàn)文章[
    發(fā)表于 10-23 16:36

    TAS1020B系統(tǒng)下識(shí)別到了但是無(wú)法收發(fā)數(shù)據(jù),為什么?

    最近有用到TAS1020B這個(gè)芯片,windows下可以正常使用,系統(tǒng)下識(shí)別到了但是無(wú)法收發(fā)數(shù)據(jù),請(qǐng)問(wèn)下是因?yàn)轵?qū)動(dòng)的問(wèn)題還是其它什么原因
    發(fā)表于 10-17 07:12

    小白也會(huì)的,linux跑android應(yīng)用的方案

    介紹一個(gè)可以linux應(yīng)用的linux桌面——OpenFDE
    的頭像 發(fā)表于 08-23 11:14 ?1232次閱讀
    小白也會(huì)的,<b class='flag-5'>在</b>linux<b class='flag-5'>上</b>跑android應(yīng)用的方案

    工控主板軌道交通中的應(yīng)用特點(diǎn)

    工控主板軌道交通中的應(yīng)用特點(diǎn)主要體現(xiàn)在以下幾個(gè)方面:
    的頭像 發(fā)表于 08-22 17:15 ?595次閱讀