91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

鴻蒙系統(tǒng)京東V10.0.2 版本已上架

OpenHarmony技術(shù)社區(qū) ? 來源:京東零售技術(shù) ? 作者:侯偉浩 狄彩林 ? 2021-06-25 16:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

隨著鴻蒙 2.0 的發(fā)布,華為部分手機(jī)用戶迎來鴻蒙時(shí)代,京東作為華為鴻蒙 OS 的合作 APP,首次投入鴻蒙應(yīng)用商用版開發(fā),目前已上架 V10.0.2 版本。

鴻蒙 OS 特性

2021 年 6 月 2 日,華為舉行了鴻蒙 OS 2.0 發(fā)布會(huì)。鴻蒙 OS 帶來了全新桌面及用戶體驗(yàn)。

如桌面圖標(biāo)支持上滑呼出快捷卡片,原子化能力能通過鴻蒙設(shè)備間流轉(zhuǎn)實(shí)現(xiàn)快速分享、顯示,以及統(tǒng)一控制中心(手勢(shì):右上角下滑)、服務(wù)中心(手勢(shì):屏幕左下角或右下角向側(cè)上方滑動(dòng))等。

Android 工程鴻蒙化

為了利用上鴻蒙的特性,我們開發(fā)者需要盡快的將 App 鴻蒙化。

但是將整個(gè) App 鴻蒙化的工作量是特別龐大的,那么有沒有一種方式既能利用鴻蒙的特性也能快速適配呢?

答案是有的,那就是混合包開發(fā)模式,整個(gè) App 基本上沒有大的修改,只需要新增鴻蒙相關(guān)模塊用來實(shí)現(xiàn)鴻蒙相關(guān)特性即可。

京東 App-鴻蒙版能夠做到快速適配上線,并擁有鴻蒙特性,就是利用了這種開發(fā)模式。下面我們將以京東 App-鴻蒙版為例,具體介紹下相關(guān)流程。

Android 工程改造

①我們需要依賴鴻蒙的一個(gè)兼容包(包文件可以聯(lián)系我們?nèi)〉茫?,將我們現(xiàn)有的 Application 繼承自 HarmonyApplication,僅需編譯依賴,不需要真正打進(jìn) App 中。

compileOnly files(‘libs/abilityshell_ide_java.jar’)

②在 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” /》

自此已經(jīng)可以構(gòu)建出鴻蒙需要的 apk 包了,大家也可以通過配置編譯變體等形式,構(gòu)建鴻蒙版本的 apk 包。

注意:鴻蒙包中混入的 apk 必須要是 64 位的。

配置鴻蒙工程

①在鴻蒙工程中 entry module 中的 build.gradle 里,增加混入 apk 文件配置。

legacyApkOptions{

legacyApk rootProject.file(‘a(chǎn)ndroid_entry.apk’).absolutePath //混入apk的存放路徑

signConfig{

storeFile rootProject.file(‘xxx.keystore’) //混入apk所用簽名文件

}

}

整體配置如下圖 :

ff193736-d43a-11eb-9e57-12bb97331649.png

②簽名改造,我們需要根據(jù) Android apk 的簽名來做鴻蒙應(yīng)用簽名的申請(qǐng),需要將 .keystore 或 .jks 格式的簽名文件轉(zhuǎn)換成 .p12 文件,簽名秘鑰和別名保持不變。具體轉(zhuǎn)換步驟,大家可以自行搜索。

參考:在轉(zhuǎn)換 .p12 文件時(shí),我們遇到了問題,由于我們 Android 的簽名格式是 .keystore,轉(zhuǎn)出來的 .p12 文件有問題無法申請(qǐng)鴻蒙應(yīng)用證書。

經(jīng)過和華為方面溝通,我們將鴻蒙應(yīng)用的簽名秘鑰和別名保持和Android的一致,解決了打包問題。

③配置文件增加屬性,在鴻蒙工程的每個(gè) feature module 的 config.json app 節(jié)點(diǎn)下,增加 originalName,表示混入的 apk 包名,同時(shí)要將 bundleName 的值也改成一致。

④在 entry 模塊下,新建一個(gè)空的 Ability 類并配置在 config.json 里作為啟動(dòng)入口,如:

“abilities”: [{

“skills”: [{

“entities”: [“entity.system.home”],

“actions”: [“action.system.home”]

}],

“orientation”: “portrait”,

“visible”: true,

“name”: “com.xxx.xxx.xx.EntryAbility”,

“icon”: “$media:icon”,

“description”: “$string:mainability_description”,

“l(fā)abel”: “$string:app_name”,

“type”: “page”,

“l(fā)aunchType”: “standard”

}],

自此已經(jīng)可以構(gòu)建出包含原有 Android 功能的鴻蒙包了。

Android-鴻蒙互調(diào)用

①從 Android 啟動(dòng)鴻蒙組件

我們需要集成鴻蒙的一個(gè) jar 包(可以聯(lián)系我們獲得此文件),來實(shí)現(xiàn)從 Android 啟動(dòng)鴻蒙的組件。如:

Intent intent = new Intent();

ComponentName componentName = new ComponentName(“your harmony app‘s bundleName name”,“your ability’s full name”);

intent.setComponent(componentName);

intent.putExtras(bundle);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);

AbilityUtils.startAbility(context, intent);

②鴻蒙模塊調(diào)用 Android

鴻蒙啟動(dòng) Android 組件:鴻蒙里本身是支持啟動(dòng) Android 組件的,只需要在 Intent 里增加一個(gè) flag。

Intent.FLAG_NOT_OHOS_COMPONENT

如:

Intent intent = new Intent();

Operation operation = new Intent.OperationBuilder()

.withDeviceId(“”)

.withBundleName(“your android app’s packagename”)

.withAbilityName(“your android app’s activity fullname”)

.withFlags(Intent.FLAG_NOT_OHOS_COMPONENT)

.build();

intent.setOperation(operation);

startAbility(intent);

鴻蒙模塊調(diào)用 Android 現(xiàn)有能力:在 Android 包里,已經(jīng)有了很多現(xiàn)有功能,如埋點(diǎn)收集、用戶登錄態(tài)獲取、定位、地址等等。

在鴻蒙模塊里需要用到這些功能時(shí),我們?yōu)榱斯?jié)省時(shí)間暫時(shí)沒有再去開發(fā)一遍鴻蒙版,我們利用了 Java 的反射技術(shù)來搞定。

經(jīng)過驗(yàn)證,在 Android 中反射鴻蒙以及鴻蒙中反射 Android 都是可以的。

③獲取當(dāng)前是否為鴻蒙系統(tǒng)

在有些場景下,我們需要知道當(dāng)前系統(tǒng)的運(yùn)行環(huán)境是不是鴻蒙系統(tǒng),可以使用以下代碼段來實(shí)現(xiàn)。

private static final String HARMONY_OS = “harmony”;

/**

* check the system is harmony os

*

* @return true if it is harmony os

*/public static boolean isHarmonyOS() {

try {

Class clz = Class.forName(“com.huawei.system.BuildEx”);

Method method = clz.getMethod(“getOsBrand”);

return HARMONY_OS.equals(method.invoke(clz));

} catch (ClassNotFoundException e) {

Log.e(TAG, “occured ClassNotFoundException”);

} catch (NoSuchMethodException e) {

Log.e(TAG, “occured NoSuchMethodException”);

} catch (Exception e) {

Log.e(TAG, “occur other problem”);

}

return false;

}

鴻蒙 OS 特性+購物應(yīng)用場景開發(fā)

鴻蒙 OS 打破了設(shè)備間的壁壘,對(duì)用戶及應(yīng)用開發(fā)者來說,形成了超級(jí)終端。超級(jí)終端包含手機(jī)、大屏、平板,未來或許會(huì)有更多的設(shè)備加入,設(shè)備間協(xié)同合作讓購物體驗(yàn)變得優(yōu)質(zhì)。

每個(gè)設(shè)備不再是孤立的個(gè)體,而是基于鴻蒙操作系統(tǒng)的智慧終端,即便用戶拿著不同的設(shè)備,也可以有很好的體驗(yàn)。

通過一鍵流轉(zhuǎn)實(shí)現(xiàn)跨設(shè)備間的數(shù)據(jù)傳輸,從而實(shí)現(xiàn)無縫的購物體驗(yàn)。

流轉(zhuǎn):直播間 FA

介紹:流轉(zhuǎn)泛指多設(shè)備間的分布式操作,打破設(shè)備界限,多設(shè)備聯(lián)動(dòng),使用戶應(yīng)用程序可分可合、可流轉(zhuǎn)。流轉(zhuǎn)按照體驗(yàn)可分為跨端遷移和多端協(xié)同。流轉(zhuǎn)支持免安裝運(yùn)行 FA。

京東 App-鴻蒙版本中的直播 FA 就利用了流轉(zhuǎn)能力,將當(dāng)前手機(jī)的直播流轉(zhuǎn)至 TV 端,做到無縫銜接,并支持通過手機(jī)端控制 TV 端直播顯示的功能。

開發(fā):我們以京東 App-鴻蒙版中直播 FA 的流轉(zhuǎn)開發(fā)經(jīng)驗(yàn)進(jìn)行介紹,如何具備流轉(zhuǎn)能力。

權(quán)限要求:由于使用到了分布式能力,我們需要先把權(quán)限配置好,在對(duì)應(yīng)的 module 的 config.json 下,增加以下權(quán)限:

ohos.permission.GET_DISTRIBUTED_DEVICE_INFOohos.permission.DISTRIBUTED_DATASYNCohos.permission.DISTRIBUTED_DEVICE_STATE_CHANGE

同時(shí)在 Ability 里,需要增加動(dòng)態(tài)權(quán)限申請(qǐng)。

requestPermissionsFromUser(

new String[]{SystemPermission.DISTRIBUTED_DATASYNC},

Constants.PermissionCode.PERMISSION_DISTRIBUTED_DATASYNC);

關(guān)鍵接口如下圖:

ffadf48e-d43a-11eb-9e57-12bb97331649.png

功能實(shí)現(xiàn)如下:

a.通過流轉(zhuǎn)服務(wù)注冊(cè)管理器,將當(dāng)前 FA 注冊(cè),注冊(cè)時(shí)可以指定流轉(zhuǎn)的過濾條件,如設(shè)備類型、目標(biāo)設(shè)備等等:

ffb875a8-d43a-11eb-9e57-12bb97331649.png

b.當(dāng)需要流轉(zhuǎn)時(shí),我們通過流轉(zhuǎn)服務(wù)注冊(cè)管理器獲取當(dāng)前滿足條件的設(shè)備列表:

ffca4198-d43a-11eb-9e57-12bb97331649.png

系統(tǒng)會(huì)自動(dòng)查找設(shè)備,將滿足條件的設(shè)備自動(dòng)展示出來供用戶選擇,當(dāng)用戶點(diǎn)擊某個(gè)設(shè)備后,就會(huì)回調(diào) IContinuationDeviceCallback 的 onDeviceConnectDone 方法,獲取到目標(biāo)設(shè)備的 Id 后,就可以啟動(dòng)目標(biāo)設(shè)備的 FA。

c.啟動(dòng)遠(yuǎn)程 FA。需要注意的是,在啟動(dòng)對(duì)端設(shè)備上 FA 時(shí),我們要確保對(duì)端設(shè)備的分布式能力已經(jīng)被初始化。

ffdc5ac2-d43a-11eb-9e57-12bb97331649.png

FA 近場分享:商詳 FA

介紹:FA 近場分享能力依賴于華為分享服務(wù),可以快速實(shí)現(xiàn) FA 分享的功能。

較單純的使用分布式 FA 流轉(zhuǎn)功能,為開發(fā)者免除了設(shè)備發(fā)現(xiàn)功能,并且沒有了同賬號(hào)同網(wǎng)絡(luò)等限制條件。

在京東 App-鴻蒙版中,商詳 FA 就使用了此功能實(shí)現(xiàn)了 FA 的近場分享,并且能夠做到免安裝打開商詳頁面。

下圖分別是 A 向 B 發(fā)送商詳 FA 和 B 接收商詳 FA。開發(fā):我們將以在京東 App-鴻蒙版中的相關(guān)開發(fā)經(jīng)驗(yàn)介紹下如何進(jìn)行 FA 近場分享的開發(fā)。

工作原理圖示:

003e65e6-d43b-11eb-9e57-12bb97331649.png

由于功能依賴華為分享服務(wù),我們首先要引入 IDL 文件。

①導(dǎo)入 IDL 文件

在商詳 FA module 中 java 同級(jí)目錄,創(chuàng)建 idl 目錄,并創(chuàng)建包名 com.huawei.hwshare.third,在此包名下創(chuàng)建 IHwShareCallback.idl 和 IHwShareService.idl 文件。

文件具體內(nèi)容如下:

IHwShareCallback.idl:

interface com.huawei.hwshare.third.IHwShareCallback {

[oneway] void notifyState([in] int state);

}

IHwShareService.idl:

sequenceable ohos.interwork.utils.PacMapEx;

interface com.huawei.hwshare.third.IHwShareCallback;

interface com.huawei.hwshare.third.IHwShareService {

int startAuth([in] String appId, [in] IHwShareCallback callback);

int shareFaInfo([in] PacMapEx pacMapEx);

}

②對(duì)分享能力進(jìn)行封裝

以下是我們?cè)谏淘?FA 中封裝好的代碼,大家可以直接使用:

package com.xxx.xxx.xxx;

import com.huawei.hwshare.third.HwShareCallbackStub;

import com.huawei.hwshare.third.HwShareServiceProxy;

import ohos.aafwk.ability.IAbilityConnection;

import ohos.aafwk.content.Intent;

import ohos.app.Context;

import ohos.bundle.ElementName;

import ohos.eventhandler.EventHandler;

import ohos.eventhandler.EventRunner;

import ohos.interwork.utils.PacMapEx;

import ohos.rpc.IRemoteObject;

import ohos.rpc.RemoteException;

import ohos.hiviewdfx.HiLog;

import ohos.hiviewdfx.HiLogLabel;

public class ShareFaManager {

private static final HiLogLabel LABEL_LOG = new HiLogLabel(3, 0xD000F00, “ShareFa”);

private static final String LOG_FORMAT = “%{public}s: %{public}s”;

// FA的圖標(biāo) byte[] len 《 32768 非必須,不傳默認(rèn)取應(yīng)用圖標(biāo)

public static final String HM_FA_ICON = “ohos_fa_icon”;

// FA的名字 String len 《 1024 非必須,不傳默認(rèn)取應(yīng)用名

public static final String HM_FA_NAME = “ohos_fa_name”;

// ability類名 String len 《 1024 必須

public static final String HM_ABILITY_NAME = “ohos_ability_name”;

// 包名 String len 《 1024 必須

public static final String HM_BUNDLE_NAME = “ohos_bundle_name”;

// FA類型 int 暫時(shí)只有0 非必須,默認(rèn)為0

public static final String SHARING_FA_TYPE = “sharing_fa_type”;

// FA卡片展示圖 byte[] len 《 153600 必須

public static final String SHARING_THUMB_DATA = “sharing_fa_thumb_data”;

// FA卡片展示信息 String len 《 1024 必須

public static final String SHARING_CONTENT_INFO = “sharing_fa_content_info”;

// 攜帶的額外信息,可帶到被拉起的FA String len 《 10240 非必須

public static final String SHARING_EXTRA_INFO = “sharing_fa_extra_info”;

private static final String TAG = “ShareHmFaManager”;

private static final String SHARE_PKG_NAME = “com.huawei.android.instantshare”;

private static final String SHARE_ACTION = “com.huawei.instantshare.action.THIRD_SHARE”;

private static final long UNBIND_TIME = 20*1000L;

private Context mContext;

private String mAppId;

private PacMapEx mSharePacMap;

private static ShareFaManager sSingleInstance;

private HwShareServiceProxy mShareService;

private boolean mHasPermission = false;

private EventHandler mHandler = new EventHandler(EventRunner.getMainEventRunner());

//服務(wù)綁定回調(diào)

private final IAbilityConnection mConnection = new IAbilityConnection() {

@Override

public void onAbilityConnectDone(ElementName elementName, IRemoteObject iRemoteObject, int i) {

HiLog.error(LABEL_LOG, LOG_FORMAT, TAG, “onAbilityConnectDone success.”);

mHandler.postTask(()-》{

mShareService = new HwShareServiceProxy(iRemoteObject);

try {

//華為分享認(rèn)證授權(quán)

mShareService.startAuth(mAppId, mFaCallback);

} catch (RemoteException e) {

HiLog.error(LABEL_LOG, LOG_FORMAT, TAG, “startAuth error.”);

}

});

}

@Override

public void onAbilityDisconnectDone(ElementName elementName, int i) {

HiLog.info(LABEL_LOG, LOG_FORMAT, TAG, “onAbilityDisconnectDone.”);

mHandler.postTask(()-》{

mShareService = null;

mHasPermission = false;

});

}

};

private Runnable mTask = () -》 {

if (mContext != null && mShareService != null) {

mContext.disconnectAbility(mConnection);

mHasPermission = false;

mShareService = null;

}

};

//華為分享認(rèn)證授權(quán)回調(diào)

private final HwShareCallbackStub mFaCallback = new HwShareCallbackStub(“HwShareCallbackStub”) {

@Override

public void notifyState(int state) throws RemoteException {

mHandler.postTask(()-》{

HiLog.info(LABEL_LOG, LOG_FORMAT, TAG, “notifyState: ” + state);

if (state == 0) {

mHasPermission = true;

if (mSharePacMap != null) {

shareFaInfo();

}

}

});

}

};

/**

* 單例模式獲取ShareFaManager的實(shí)例對(duì)象

*

* @param context 程序Context

* @return ShareFaManager實(shí)例對(duì)象

*/

public static synchronized ShareFaManager getInstance(Context context) {

if (sSingleInstance == null && context != null) {

sSingleInstance = new ShareFaManager(context.getApplicationContext());

}

return sSingleInstance;

}

private ShareFaManager(Context context) {

mContext = context;

}

private void shareFaInfo() {

if (mShareService == null) {

return;

}

if (mHasPermission) {

HiLog.info(LABEL_LOG, LOG_FORMAT, TAG, “start shareFaInfo.”);

try {

mShareService.shareFaInfo(mSharePacMap);

mSharePacMap = null;

} catch (RemoteException e) {

HiLog.error(LABEL_LOG, LOG_FORMAT, TAG, “shareFaInfo error.”);

}

}

// 不使用時(shí)斷開

mHandler.postTask(mTask, UNBIND_TIME);

}

/**

* 開始分享

*

* @param appId 開發(fā)者聯(lián)盟網(wǎng)站創(chuàng)建鴻蒙服務(wù)/鴻蒙應(yīng)用時(shí)生成的appid

* @param pacMap 服務(wù)信息載體

*/

public void shareFaInfo(String appId, PacMapEx pacMap) {

if (mContext == null) {

return;

}

mAppId = appId;

mSharePacMap = pacMap;

mHandler.removeTask(mTask);

shareFaInfo();

bindShareService();

}

/**

* 綁定華為分享服務(wù)

*/

private void bindShareService() {

if (mShareService != null) {

return;

}

HiLog.error(LABEL_LOG, LOG_FORMAT, TAG, “start bindShareService.”);

Intent intent = new Intent();

intent.setBundle(SHARE_PKG_NAME);

intent.setAction(SHARE_ACTION);

intent.setFlags(Intent.FLAG_NOT_OHOS_COMPONENT);

mContext.connectAbility(intent, mConnection);

}

}

③開始分享

我們將參數(shù)進(jìn)行組裝,調(diào)用 ShareFaManager 的 shareFaInfo 方法即可自動(dòng)的完成 FA 分享功能。

如我們將商詳 FA 進(jìn)行分享:

005817a2-d43b-11eb-9e57-12bb97331649.png

注意:

使用時(shí)要主要傳遞的數(shù)據(jù)不要超過限定的大小,否則會(huì)分享失敗并導(dǎo)致程序崩潰。

在對(duì)端接收到分享后,我們需要將自定義的參數(shù)取出來,從 Intent 中取 sharing_fa_extra_info 即可。

Ps:針對(duì)遠(yuǎn)距離的場景,華為也給出了解決方案,通過暢連即可分享購物鏈接。值得注意的是,此時(shí)好友還可以通過屏幕共享在商品頁面進(jìn)行涂鴉互動(dòng)。

服務(wù)卡片:搜索卡片

用戶上滑 App 圖標(biāo)即可生成萬能卡片 ,在桌面呈現(xiàn)更豐富的信息,卡片信息支持實(shí)時(shí)更新,減少了 App 加載的時(shí)間,如目前京東 app,用戶上滑 App 圖標(biāo)可打開快捷搜索入口。

介紹:FA 卡片是 FeatureAbility 的 Page 模板的一種界面展示形式。FA 卡片常用于嵌入到其他應(yīng)用中作為其界面的一部分顯示,并支持基礎(chǔ)的交互功能。

卡片使用方作為卡片展示的宿主負(fù)責(zé)顯示卡片,卡片使用方的典型應(yīng)用就是桌面應(yīng)用??ㄆ褂梅絻H限系統(tǒng)應(yīng)用。

當(dāng) FA 規(guī)格小于 10M 時(shí),可以支持免安裝運(yùn)行。系統(tǒng)最大支持 500 個(gè)卡片,相同名稱的卡片實(shí)例最大是 32 個(gè)。

通過服務(wù)卡片的一些特點(diǎn),如定時(shí)更新、免安裝運(yùn)行等,可以很好的進(jìn)行快捷入口的引導(dǎo)。

如我們可以在卡片上展示活動(dòng)商品,并定期更新,用戶可以免安裝的打開活動(dòng)詳情,當(dāng)用戶產(chǎn)生進(jìn)一步購買欲望時(shí),用戶可下載整個(gè) App 進(jìn)行下單。

開發(fā):卡片的開發(fā)支持 JS 和 Java 兩種方式。在京東 App-鴻蒙版中的搜索 FA 里,我們加入了 FA 卡片,可以直達(dá)搜索。下面我們將以此為例進(jìn)行開發(fā)步驟的講解。

①卡片配置

首先要在搜索 FA 的 config.json 中配置 forms 節(jié)點(diǎn),比如:

02d93312-d43b-11eb-9e57-12bb97331649.png

我們給 SearchAbility 節(jié)點(diǎn)下添加 forms 節(jié)點(diǎn),就表示這個(gè)卡片的創(chuàng)建及管理由 SearchAbility 來負(fù)責(zé)。

注意:必須要設(shè)置 label 屬性,必須是資源形式的且不能是包名。

屬性解釋:

02ea8efa-d43b-11eb-9e57-12bb97331649.png

②實(shí)現(xiàn)卡片相關(guān)回調(diào)

在 SearchAbility 中,復(fù)寫以下幾個(gè)方法:

02f6a4a6-d43b-11eb-9e57-12bb97331649.png

創(chuàng)建:在創(chuàng)建卡片時(shí),我們可以從 Intent 中獲取當(dāng)前要?jiǎng)?chuàng)建卡片的 Id,如:

030081b0-d43b-11eb-9e57-12bb97331649.png

這是一個(gè)很簡單的卡片,我們沒有對(duì)卡片中的視圖設(shè)置任何數(shù)據(jù)和事件,那么點(diǎn)擊卡片后,打開的就是負(fù)責(zé)管理卡片的 Ability。

如果需要設(shè)置數(shù)據(jù)和事件,可以使用以下方式:

創(chuàng)建 ComponentProvider。

通過 ComponentProvider 設(shè)置對(duì)應(yīng) View 的數(shù)據(jù),以及點(diǎn)擊事件,目前能夠支持的事件有 START_ABILITY 和 START_SERVICE 兩類。

將 ComponentProvider 對(duì)象合并入 ProviderFormInfo 中。

030d52be-d43b-11eb-9e57-12bb97331649.png

更新:當(dāng)觸發(fā)了更新卡片方法時(shí),我們可以進(jìn)行數(shù)據(jù)更新,并將最新的數(shù)據(jù)更新到卡片 View 上。

03264350-d43b-11eb-9e57-12bb97331649.png

刪除:當(dāng)卡片使用方將卡片刪除,我們可能需要將對(duì)應(yīng)卡片在 App 內(nèi)的相關(guān)持久化數(shù)據(jù)進(jìn)行刪除。

03599250-d43b-11eb-9e57-12bb97331649.png

③配置 EntryCard 目錄

配置 EntryCard 目錄,以便讓系統(tǒng)能夠識(shí)別出服務(wù)卡片,并展示在服務(wù)中心的推薦里。

新建應(yīng)用時(shí)可以勾選自動(dòng)生成,如果是之前 IDE 創(chuàng)建的工程,則需要手動(dòng)補(bǔ)充上:

在工程根目錄下創(chuàng)建 EntryCard 目錄。

EntryCard 目錄下,創(chuàng)建一個(gè)文件夾,取名為擁有卡片的 FA 工程名,如我們的搜索 FA 擁有服務(wù)卡片,搜索 FA 的工程名叫 searchfeature,那我們就創(chuàng)建一個(gè)文件夾,名字就叫做 searchfeature。

在 searchfeature 目錄下創(chuàng)建 base/snapshot 兩級(jí)目錄,在其中放置我們的卡片圖片,其命名方式為 formname-dimensions。

如搜索卡片的卡片名稱配置的是 search_card,尺寸是 2*2 的,那么這個(gè)圖片就命名為 search_card-2x2.png。

鴻蒙 App 打包及上架

打包構(gòu)建

通過以上配置,我們已經(jīng)可以進(jìn)行鴻蒙 App 的構(gòu)建了。

目前鴻蒙 App 分為兩種構(gòu)建形式,debug 和 release,可以通過 DevEco 工具自帶的編譯任務(wù)或者使用 gradle 的 assembleDebug signReleaseApp 任務(wù)進(jìn)行構(gòu)建。

其中 debug 模式構(gòu)建方式出來的產(chǎn)物是多個(gè)目標(biāo)設(shè)備的多個(gè) .hap 文件,每個(gè) FA 都會(huì)構(gòu)建出各自的 .hap 文件;release 會(huì)構(gòu)建出一個(gè) .app 文件,我們需要將此文件進(jìn)行上架發(fā)布。

安裝及運(yùn)行:

①開發(fā)者無法安裝 .app 安裝包,此文件只能用于上架應(yīng)用市場。

②通過 adb shell bm get -udid 獲取設(shè)備 UDID 后,錄入到開發(fā)者中心,并生成證書文件,我們就可以安裝 .hap 包。

③安裝時(shí)可以將文件 push 到手機(jī)某個(gè)目錄下(如 sdcard/hmphone),然后使用 adb shell bm install -p /sdcard/hmphone/ 進(jìn)行安裝,每次安裝可以先刪除之前文件。

注意:由于我們無法安裝驗(yàn)證 .app 包,我們要保證在 debug 和 release 兩種構(gòu)建模式下,我們的代碼不會(huì)發(fā)生改變。

應(yīng)用上架及發(fā)布

①如果還沒有在開發(fā)者中心創(chuàng)建鴻蒙應(yīng)用的話,需要先新增一個(gè)鴻蒙應(yīng)用,包名和之前 Android 的包名保持一致,并關(guān)聯(lián)到同一個(gè)項(xiàng)目中。②選擇我們創(chuàng)建的鴻蒙應(yīng)用,在【應(yīng)用信息】頁面中,將應(yīng)用安裝與升級(jí)修改為如下圖所示。③在【版本信息】頁面中,點(diǎn)擊【版本/升級(jí)】創(chuàng)建新版本,在新版本頁面中的【軟件版本】模塊下,上傳我們構(gòu)建的 .app 軟件包后并勾選,在當(dāng)前頁面填入相關(guān)信息后即可提交審核,待審核通過后,在應(yīng)用市場上就會(huì)出現(xiàn)了。

后續(xù)規(guī)劃

鴻蒙 OS 為消費(fèi)者建立便捷的購物超級(jí)終端模式提供了可能,隨著鴻蒙生態(tài)的豐富,人們的購物形式也會(huì)隨之出現(xiàn)新的改變。

京東將從用戶角度出發(fā),結(jié)合鴻蒙 OS,讓更多的用戶在更多的設(shè)備和場景享受京東的優(yōu)質(zhì)服務(wù),敬請(qǐng)期待……

責(zé)任編輯:haq

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

    關(guān)注

    218

    文章

    36005

    瀏覽量

    262116
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7402

    瀏覽量

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

    關(guān)注

    183

    文章

    2642

    瀏覽量

    69857
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2153

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    藝開放平臺(tái)鴻蒙智能體版本管理

    智能體的版本管理功能,包括查看、回退到歷史版本。版本記錄中包括智能體上下及撤回審核時(shí)的版本。 查看歷史
    發(fā)表于 02-27 19:18

    鴻蒙智能體/下、升級(jí)流程介紹

    執(zhí)行操作,并且已經(jīng)審核通過的智能體,才能被其他用戶搜索并使用。 升級(jí)審核未通過的智能體,線上依舊保留一次通過審核的智能體版本提供給其他用戶使用。 下
    發(fā)表于 02-10 10:38

    API監(jiān)控工具:淘寶新品提醒,搶占首發(fā)!

    先機(jī)! 核心思路:監(jiān)控商品狀態(tài)變化 實(shí)現(xiàn)新品提醒的核心在于 持續(xù)監(jiān)控目標(biāo)商品的狀態(tài) 。當(dāng)商品從“未上”變?yōu)椤霸谑邸睍r(shí),系統(tǒng)應(yīng)立即觸發(fā)通知。這可以通過定期調(diào)用淘寶提供的相關(guān)接口(或
    的頭像 發(fā)表于 01-06 15:10 ?184次閱讀
    API監(jiān)控工具:淘寶新品<b class='flag-5'>上</b><b class='flag-5'>架</b>提醒,搶占首發(fā)!

    發(fā)布元服務(wù)設(shè)置時(shí)間

    設(shè)置時(shí)間 登錄AppGallery Connect,點(diǎn)擊“APP與元服務(wù)”。 選擇要發(fā)布的元服務(wù)。 左側(cè)導(dǎo)航選擇“應(yīng)用上 > 版本信息”下待發(fā)布的
    發(fā)表于 12-03 09:46

    開源鴻蒙6.1和8.1版本定為LTS建議版本,最新OpenHarmony路標(biāo)發(fā)布

    在開源項(xiàng)目生態(tài)建設(shè)中,版本生命周期管理是保障社區(qū)項(xiàng)目穩(wěn)定演進(jìn)、助力生態(tài)伙伴提前規(guī)劃產(chǎn)品路線、降低開發(fā)者適配成本的核心環(huán)節(jié)。為進(jìn)一步規(guī)范開源鴻蒙版本的發(fā)布流程與維護(hù)標(biāo)準(zhǔn),明確技術(shù)支持周期預(yù)期,2025
    的頭像 發(fā)表于 10-30 09:29 ?988次閱讀
    開源<b class='flag-5'>鴻蒙</b>6.1和8.1<b class='flag-5'>版本</b>定為LTS建議<b class='flag-5'>版本</b>,最新OpenHarmony路標(biāo)發(fā)布

    元服務(wù)自檢

    進(jìn)行1個(gè)自檢任務(wù)。若您在啟動(dòng)自檢后刪除了軟件包,自檢任務(wù)將繼續(xù)執(zhí)行,需等待自檢任務(wù)結(jié)束才可以執(zhí)行新的自檢任務(wù)。 在“自檢”欄查看檢測進(jìn)度與結(jié)果。 檢測中:表示正在檢測軟件包。檢
    發(fā)表于 10-21 17:18

    開源鴻蒙6.0 Release版本重磅發(fā)布

    近日,在長沙國際會(huì)議中心舉辦的開源鴻蒙技術(shù)大會(huì)2025,開放原子開源鴻蒙(即OpenAtom OpenHarmony,簡稱“開源鴻蒙”)項(xiàng)目群正式發(fā)布開源
    的頭像 發(fā)表于 10-10 16:49 ?2877次閱讀

    github 的 nano版本已經(jīng)更新到了4.1.1,是否能提供4.1.1版本的mdk pack包?

    github 的 nano版本已經(jīng)更新到了4.1.1,是否能提供4.1.1版本的mdk pack包, 會(huì)方便很多
    發(fā)表于 09-17 06:36

    京東:利用商品管理API自動(dòng)調(diào)整商品上下狀態(tài),優(yōu)化搜索排名

    ? 京東:利用商品管理API自動(dòng)調(diào)整商品上下狀態(tài),優(yōu)化搜索排名 在電商運(yùn)營中,高效管理商品狀態(tài)是提升銷售的關(guān)鍵。京東作為領(lǐng)先的電商平臺(tái),提供了強(qiáng)大的商品管理API,允許商家通過編程方式自動(dòng)化操作
    的頭像 發(fā)表于 09-08 16:09 ?1148次閱讀
    <b class='flag-5'>京東</b>:利用商品管理API自動(dòng)調(diào)整商品上下<b class='flag-5'>架</b>狀態(tài),優(yōu)化搜索排名

    產(chǎn)品添加與API接口設(shè)計(jì)指南

    ? 在現(xiàn)代電商或庫存管理系統(tǒng)中,產(chǎn)品添加與是關(guān)鍵流程。通過API接口實(shí)現(xiàn)自動(dòng)化操作,能顯著提升效率。本文將分步解析如何設(shè)計(jì)和使用“產(chǎn)品添加”與“產(chǎn)品
    的頭像 發(fā)表于 07-24 14:45 ?674次閱讀
    產(chǎn)品添加與<b class='flag-5'>上</b><b class='flag-5'>架</b>API接口設(shè)計(jì)指南

    鴻蒙發(fā)展歷程

    年 8 月 9 日,華為在開發(fā)者大會(huì)上正式發(fā)布鴻蒙 1.0 系統(tǒng),這一版本首次應(yīng)用于華為榮耀智慧屏產(chǎn)品中,標(biāo)志著華為正式進(jìn)軍操作系統(tǒng)領(lǐng)域。該版本
    的頭像 發(fā)表于 07-07 11:41 ?2144次閱讀

    求助,關(guān)于CYW20721B2庫版本 4.4.2及更高版本的關(guān)閉睡眠問題求解

    CYW20721B2 庫的新版本已經(jīng)發(fā)布,版本 v4.7.0,但它并未修復(fù)睡眠問題。 因此我被迫使用版本 v4.2.1,但當(dāng) HCI 傳輸未
    發(fā)表于 06-26 07:11

    京東開源Taro on HarmonyOS C-API版本

    近日,京東正式開源了Taro on HarmonyOS C-API 版本,為鴻蒙應(yīng)用跨端開發(fā)提供高性能框架。這次版本的發(fā)布,帶來了更豐富的樣式適配、更高效的渲染性能、更全面的組件支持,
    的頭像 發(fā)表于 06-09 09:19 ?1138次閱讀
    <b class='flag-5'>京東</b>開源Taro on HarmonyOS C-API<b class='flag-5'>版本</b>

    開源鴻蒙5.1 Release版本發(fā)布

    近日,開源鴻蒙5.1 Release版本正式發(fā)布,支持更多的設(shè)備形態(tài),全面提升了系統(tǒng)的穩(wěn)定性和開發(fā)者體驗(yàn),這是其技術(shù)路線演進(jìn)中的關(guān)鍵一躍——更快的開發(fā)體驗(yàn),向消費(fèi)端的加速滲透,以及向全場景生態(tài)發(fā)起猛攻。
    的頭像 發(fā)表于 06-05 14:25 ?2360次閱讀

    中軟國際持續(xù)推進(jìn)鴻蒙原生應(yīng)用服務(wù)升級(jí)

    2025年,鴻蒙生態(tài)進(jìn)入全面沖刺階段,已有20000+原生應(yīng)用和元服務(wù),3000+政企單位辦公應(yīng)用加速上線。日前,國務(wù)院新聞辦公室舉行的經(jīng)濟(jì)數(shù)據(jù)例行新聞發(fā)布會(huì)上,工業(yè)和信息化部信息通信發(fā)展司司長謝存提出:“推動(dòng)更多 App
    的頭像 發(fā)表于 05-21 17:01 ?1918次閱讀