uniapp 跨端開發

一、創建uniapp項目

1. 項目架構

在這里插入圖片描述

2. 初始化項目

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

3. pages.json 和 tabBar 案例

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

4. uni-app和原生小程序開發區別

在這里插入圖片描述

5. 用命令行創建uni-app項目

官網鏈接:https://uniapp.dcloud.net.cn/quickstart-cli.html#創建uni-app
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

6. 用vscode開發uni-app

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在uni-app中只有manifest.json和pages.json這兩個json文件允許寫注釋,按如下添加后,這兩個文件的注釋就不報錯了
在這里插入圖片描述

7. 拉取項目模板

小兔鮮兒
在這里插入圖片描述
這里填入appid
在這里插入圖片描述
項目模板中已配置好了下面的第8、第9點

8. 額外:項目基礎配置統一代碼風格

  • 安裝 eslint + prettier
pnpm i -D eslint prettier eslint-plugin-vue @vue/eslint-config-prettier @vue/eslint-config-typescript @rushstack/eslint-patch @vue/tsconfig
  • 新建 .eslintrc.cjs 文件,添加以下 eslint 配置
/* eslint-env node */
require('@rushstack/eslint-patch/modern-module-resolution')module.exports = {root: true,extends: ['plugin:vue/vue3-essential','eslint:recommended','@vue/eslint-config-typescript','@vue/eslint-config-prettier',],// 小程序全局變量globals: {uni: true,wx: true,WechatMiniprogram: true,getCurrentPages: true,getApp: true,UniApp: true,UniHelper: true,App: true,Page: true,Component: true,AnyObject: true,},parserOptions: {ecmaVersion: 'latest',},rules: {'prettier/prettier': ['warn',{singleQuote: true,semi: false,printWidth: 100,trailingComma: 'all',endOfLine: 'auto',},],'vue/multi-word-component-names': ['off'],'vue/no-setup-props-destructure': ['off'],'vue/no-deprecated-html-element-is': ['off'],'@typescript-eslint/no-unused-vars': ['off'],},
}
  • 配置 package.json
{"script": {// ... 省略 ..."lint": "eslint . --ext .vue,.js,.ts --fix --ignore-path .gitignore"}
}
  • 運行
pnpm lint

::: tip 溫馨提示
到此,你已完成 eslint + prettier 的配置。
:::

9. 額外:Git 工作流規范

  • 安裝并初始化 husky

::: code-group

pnpm dlx husky-init
npx husky-init

:::

  • 安裝 lint-staged
pnpm i -D lint-staged
  • 配置 package.json
{"script": {// ... 省略 ...},"lint-staged": {"*.{vue,ts,js}": ["eslint --fix"]}
}
  • 修改 .husky/pre-commit 文件
npm test   // [!code --]
npm run lint-staged     // [!code ++]

::: tip 溫馨提示
到此,你已完成 husky + lint-staged 的配置。
:::

二、基礎架構

1. 引入uni-ui

ts類型如果之前已經配置過了則忽略
在這里插入圖片描述

2. 小程序端 Pinia 持久化

在這里插入圖片描述
配置示例
在這里插入圖片描述
在這里插入圖片描述

3. 請求封裝

1. 添加請求和上傳文件攔截器

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

2. 封裝promise請求函數

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
http.ts 添加 http 請求函數及類型

import { useMemberStore } from '@/stores'const baseURL = 'https://pcapi-xiaotuxian-front-devtest.itheima.net'// 攔截器
const httpInterceptor = {// 攔截前觸發invoke(options: UniApp.RequestOptions) {// 1. 非 http 開頭需拼接地址if (!options.url.startsWith('http')) {options.url = baseURL + options.url}// 2. 請求超時, 默認 60soptions.timeout = 10000// 3. 添加小程序端請求頭標識options.header = {...options.header,'source-client': 'miniapp',}// 4. 添加 token 請求頭標識const memberStore = useMemberStore()const token = memberStore.profile?.tokenif (token) {options.header.Authorization = token}console.log(24, options)},
}
uni.addInterceptor('request', httpInterceptor)
uni.addInterceptor('uploadFile', httpInterceptor)/*** 請求函數* @param  UniApp.RequestOptions* @returns Promise*  1. 返回 Promise 對象*  2. 獲取數據成功*    2.1 提取核心數據 res.data*    2.2 添加類型,支持泛型*  3. 獲取數據失敗*    3.1 401錯誤  -> 清理用戶信息,跳轉到登錄頁*    3.2 其他錯誤 -> 根據后端錯誤信息輕提示*    3.3 網絡錯誤 -> 提示用戶換網絡*/
type Data<T> = {code: stringmsg: stringresult: T
}
// 2.2 添加類型,支持泛型
export const http = <T>(options: UniApp.RequestOptions) => {// 1. 返回 Promise 對象return new Promise<Data<T>>((resolve, reject) => {uni.request({...options,// 響應成功success(res) {// 狀態碼 2xx, axios 就是這樣設計的if (res.statusCode >= 200 && res.statusCode < 300) {// 2.1 提取核心數據 res.dataresolve(res.data as Data<T>)} else if (res.statusCode === 401) {// 401錯誤  -> 清理用戶信息,跳轉到登錄頁const memberStore = useMemberStore()memberStore.clearProfile()uni.navigateTo({ url: '/pages/login/login' })reject(res)} else {// 其他錯誤 -> 根據后端錯誤信息輕提示uni.showToast({icon: 'none',title: (res.data as Data<T>).msg || '請求錯誤',})reject(res)}},// 響應失敗fail(err) {uni.showToast({icon: 'none',title: '網絡錯誤,換個網絡試試',})reject(err)},})})
}

三、項目首頁

1. 自定義導航

在這里插入圖片描述
樣式適配-預留安全區域
在這里插入圖片描述

2. 通用輪播圖組件

通用組件自動導入
在這里插入圖片描述
配置自動導入
在這里插入圖片描述

添加組件類型聲明:目前添加組件聲明后沒效果
在這里插入圖片描述
輪播圖指示點:非空斷言
在這里插入圖片描述
在這里插入圖片描述
輪播圖接口數據類型
在這里插入圖片描述
頁面加載的生命周期onLoad需要從@dcloudio/uni-app中引入
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

3. 首頁分類組件

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

4. 首頁熱門推薦組件

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

5. 首頁猜你喜歡組件

在這里插入圖片描述
多處會使用到猜你喜歡組件,所以樣式及數據請求都放到組件內部,組件defineExpose暴露出方法供父組件調用
在這里插入圖片描述
在這里插入圖片描述
typeof XtxGuess 拿到的是組件的類型,InstanceType拿到的是組件的實例類型
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
由于類型PageParams中的page是可選的,下面pageParams.page會報錯提示page可能未定義,解決辦法是如下加上Required,將可選參數變成必填
在這里插入圖片描述

在這里插入圖片描述

6. 首頁下拉刷新

refresher-enabled: 開啟自定義下拉刷新,會出現對應的動畫;
refresherrefresh 下拉刷新回調
在這里插入圖片描述
在這里插入圖片描述
下拉刷新開始,先重置猜你喜歡組件數據
在這里插入圖片描述

7. 首頁骨架屏

在這里插入圖片描述
在這里插入圖片描述
生成骨架屏,把html和樣式抽到PageSkeleton組件,刪除原生的注釋部分、刪除導航部分,只保留滾動部分
在這里插入圖片描述

四、熱門推薦

1. 動態設置熱門推薦標題

在這里插入圖片描述
在這里插入圖片描述

2. 獲取熱門推薦數據

交叉類型: PageParams & { subType?: string }
在這里插入圖片描述

3. 熱門推薦類型定義

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

4. 熱門推薦頁面渲染和tab交互

在這里插入圖片描述
在這里插入圖片描述

5. 熱門推薦分頁加載

在這里插入圖片描述
分頁加載的條件判斷
擴展字段;環境變量判斷
在這里插入圖片描述

五、商品分類

1. 商品分類輪播圖

在這里插入圖片描述

2. 渲染一級分類和Tab交互

在這里插入圖片描述
在這里插入圖片描述

3. 二級分類和商品渲染

在這里插入圖片描述

4. 商品分類骨架屏

在這里插入圖片描述
把骨架屏樣式放到.vue文件的style中,把html和css中的注釋刪除,解決html中的報紅

在這里插入圖片描述

六、商品詳情

1. 商品詳情接口請求

defineProps接收頁面傳參
在這里插入圖片描述

2. 詳情頁面渲染

在這里插入圖片描述

3. 商品詳情輪播圖渲染

在這里插入圖片描述

4. 商品詳情彈出層

在這里插入圖片描述
彈出層交互
聯合類型;用typeof獲取類型;子組件給父組件通信
在這里插入圖片描述

七、登錄模塊

1. 小程序快捷登錄

在這里插入圖片描述
獲取登錄憑證code:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html
獲取手機號:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html
在這里插入圖片描述

調用后臺登錄接口成功示例
在這里插入圖片描述
模擬快捷登錄
在這里插入圖片描述

2. 保存登錄信息

如果這里不用延時,登錄成功的提示就看不見了,因為switchTab()會自動關閉當前頁面所有內容并跳轉到 tabBar 頁面
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

3. 會員信息渲染

在這里插入圖片描述

4. 會員信息-猜你喜歡部分抽離成組合式函數

并復用到首頁
在這里插入圖片描述

5. 會員中心-設置頁分包和預下載

在這里插入圖片描述

6. 會員中心-退出登錄

在這里插入圖片描述

7. 會員中心-個人信息頁

在這里插入圖片描述
分包、自定義導航
在這里插入圖片描述
個人信息頁接口請求及數據類型
在這里插入圖片描述
在這里插入圖片描述
修改用戶頭像
uni.chooseMedia 調用拍照/本地相冊
uni.uploadFile 上傳文件,url為后端接口地址
在這里插入圖片描述
修改用戶昵稱
v-model處去掉非空斷言,定義profile時改用as 斷言
在這里插入圖片描述
更新Store信息
在這里插入圖片描述
直接修改單個屬性,不調用setProfile
在這里插入圖片描述
code 數組的類型和長度都確定了(類型 [string, string, string],元組),這里定義fullLocationCode得定義成如下
在這里插入圖片描述
修改性別
在這里插入圖片描述
修改生日
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

八、地址模塊

1. 動態設置標題

在這里插入圖片描述
分包規則里置空
在這里插入圖片描述

2. 新建地址

在這里插入圖片描述

3. 地址列表

在onShow頁面每次顯示的鉤子函數中調用(新增返回列表也要請求)
在這里插入圖片描述
修改地址-回顯
在這里插入圖片描述修改-保存地址
在這里插入圖片描述

4. 地址表單校驗

在這里插入圖片描述
在這里插入圖片描述

5. 刪除地址

uni-swipe-action 滑動操作組件
在這里插入圖片描述

九、SKU模塊

1. SKU插件

SKU算法:https://juejin.cn/post/7002746459456176158
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

2. 渲染商品信息

在這里插入圖片描述

打開彈窗交互-修改按鈕模式

枚舉按鈕模式
在這里插入圖片描述

選中值處理

從SKU組件內部獲取選中值,綁定到商品信息頁
在這里插入圖片描述

3. 加入購物車

在這里插入圖片描述

十、購物車模塊

1. 購物車列表渲染

在這里插入圖片描述
uni-swipe-action組件無法渲染,把@dcloudio/uni-ui從1.5.8降級到"@dcloudio/uni-ui": “1.4.23”

2. 刪除購物車商品

在這里插入圖片描述

3. 修改單品數量

在這里插入圖片描述

4. 修改選中狀態

在這里插入圖片描述

5. 底部結算信息

在這里插入圖片描述

6. 兩個購物車頁面

在這里插入圖片描述

十一、訂單模塊

1. 填寫訂單-基本信息渲染

在這里插入圖片描述

2. 填寫訂單-收貨地址

在這里插入圖片描述

3. 填寫訂單-立即購買

查看頁面參數
在這里插入圖片描述
在這里插入圖片描述

4. 填寫訂單-提交訂單

在這里插入圖片描述
添加編譯模式
在這里插入圖片描述

十二、訂單詳情

1. 自定義導航欄交互

獲取當前頁面棧集合 getCurrentPages()
小程序滾動驅動動畫
在頁面渲染完成鉤子onReady中調用
在這里插入圖片描述

2.訂單狀態渲染

在這里插入圖片描述

在這里插入圖片描述

3. 待付款倒計時

uni-countdown組件
在這里插入圖片描述
控制臺報錯uni-countdown.js被無依賴過濾,導致無法顯示該組件,如下設置可解決
在這里插入圖片描述

4. 訂單支付

發起微信支付wx.requestPayment
關閉當前頁然后跳轉 uni.redirectTo
在這里插入圖片描述

5. 訂單發貨

在這里插入圖片描述

6. 確認收貨

在這里插入圖片描述

7. 訂單物流渲染

在這里插入圖片描述

8. 刪除訂單

在這里插入圖片描述

十三、訂單列表

1. Tabs滑動切換

swiper的current綁定activeIndex
在這里插入圖片描述
Tabs傳參高亮
在這里插入圖片描述

2. 訂單列表渲染

在這里插入圖片描述
訂單列表抽成了一個組件,請求列表接口在組件掛載生命周期onMounted中調用
在這里插入圖片描述

3. 訂單列表訂單支付

這里更新訂單狀態,沒有刷新接口而是前端查找對應數據修改狀態
在這里插入圖片描述

十四、項目打包

1.打包上傳

在這里插入圖片描述

2.網頁端 pnpm dev:h5 開發調試

首頁輪播圖、商品詳情圖寬高有問題,沒有自適應:首頁輪播圖 :host選擇器在h5端不生效,修改如下
在這里插入圖片描述
商品詳情圖寬高有問題,因為圖片上的mode="aspectFill"沒生效,加上image類:寬高100%
在這里插入圖片描述
調用微信自有能力的地方都要修改,比如以wx.開頭的都加上條件判斷 #ifdef MP-WEIXIN #endif


搜索包含open-type的按鈕,凡是調用微信能力的地方都加條件判斷,注意路由跳轉在h5是支持的,不需要改
在這里插入圖片描述

在這里插入圖片描述

3. 網頁端打包 pnpm build:h5

build/h5/index.html 預覽報錯
在這里插入圖片描述
原因是這里的路徑是根路徑
在這里插入圖片描述
修改如下,加如下配置重新執行pnpm build:h5打包

在這里插入圖片描述
在這里插入圖片描述

4. android app 端預覽及調試

用Hbuilder X 打開項目,按如下操作
在這里插入圖片描述
注意:華為mate 40 pro USB選項選擇MIDI
在這里插入圖片描述

項目中的依賴@dcloudio/uni-app 與 Hbuilder X 版本不一致
在這里插入圖片描述
復制如下命令,改成與Hbuilder X 一致的版本:npx @dcloudio/uvm@latest 4.7.5

在這里插入圖片描述
在終端執行
在這里插入圖片描述
重新運行
在這里插入圖片描述

5. Android app 打正式包(云打包)

在這里插入圖片描述

在HbuilderX中,打開manifest,獲取AppId
在這里插入圖片描述

在dcloud開發中心生成證書 https://dev.dcloud.net.cn/pages/app/list
在這里插入圖片描述

5. IOS端預覽調試打包

在這里插入圖片描述

十五、跨端兼容樣式

在這里插入圖片描述

1. 通配符選擇器在小程序端不生效

在這里插入圖片描述

2. 頁面視口差異導致

去結算部分,如果定位的bottom寫0,在小程序端沒問題,在h5端就會被下面的tabbar覆蓋住,所以這里用的uni-app提供的內置css變量–window-bottom
在這里插入圖片描述
在這里插入圖片描述

3. h5端單頁面應用,默認開啟了樣式隔離scoped

導致首頁骨架屏樣式錯亂,解決辦法把首頁各個部分的樣式抽離出來,在各部分及骨架屏組件中單獨引入
在這里插入圖片描述
注意下面的XtxSwiper.css改成.scss,引入的時候也改成.scss,否則小程序端會報錯

在這里插入圖片描述
在這里插入圖片描述

4. navigator組件在h5端渲染包裹了一層a標簽

導致樣式錯亂
在這里插入圖片描述
小程序端沒有
在這里插入圖片描述
解決辦法:加render-link:false
在這里插入圖片描述

5. app端沒有渲染un-page-body

導致app端display:flex;沒生效,scroll-view高度有問題,滾動的時候把頂部固定部分滑走了;
app端外層是id=app的容器
在這里插入圖片描述
解決:
在這里插入圖片描述

十六、跨端組件兼容

1. button type=open-type一些能力

在這里插入圖片描述
只有小程序支持
在這里插入圖片描述

2. navigator open-type=navigate,在h5及app端會多渲染一層a標簽

在這里插入圖片描述

在這里插入圖片描述
解決:選中類名,再設置一次flex: 1
在這里插入圖片描述

十七、跨端JS API兼容

上傳圖片api,小程序用uni.chooseMedia,app和h5端使用uni.chooseImage
在這里插入圖片描述

十八、uniClound 云開發

1. 準備工作

在這里插入圖片描述

2. 完成城市選擇

picker mode=region在app和h5端不支持,需要換成uni-data-picker,城市數據由云端提供
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
解決如下
在這里插入圖片描述
加條件判斷,覆蓋默認樣式
在這里插入圖片描述

在這里插入圖片描述
解決:加上clear-icon=“false”
另外:修改時無法回顯,加上v-model這句
在這里插入圖片描述

在h5端,地址列表點擊修改先跳轉修改頁瞬間有返回上一頁了,解決:加上@tap.prevent
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/94309.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/94309.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/94309.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

區塊鏈支付技術的核心原理

區塊鏈支付利用分布式賬本技術&#xff08;DLT&#xff09;實現點對點的價值轉移&#xff0c;無需傳統銀行或支付網關的中介。核心特點是去中心化、透明、可追溯。? 基本流程&#xff1a;1. 用戶發起交易&#xff1a;通過加密貨幣錢包發送支付請求&#xff08;例如用ETH支付&a…

linux中 多進程 導致cuda錯誤的問題解決

問題總結與解決方案 核心問題 在使用 Linux 系統時&#xff0c;多進程并行計算中加載模型到 GPU 時出現錯誤&#xff1a;_MODEL SentenceTransformer( model_path, device "cuda" if torch.cuda.is_available() else "cpu" )根本原因&#xff1a; CUDA 上…

智能感知的新入口:AIGC 與低延遲視頻通路的深度融合

?? 引言&#xff1a;AIGC&#xff0c;正在重構視覺智能的“生成邏輯” AI生成內容&#xff08;AIGC&#xff09;正在從“內容創作工具”躍升為計算機視覺系統的新引擎。它不再只是“文生圖”、“圖生文”的演示技術&#xff0c;而是實實在在地改變著我們構建、處理和理解視覺…

Ubuntu 內網多臺服務器時間同步方案(適用于臨時能上外網的環境)

哎&#xff0c;最近項目是運行在內網環境下的&#xff0c;出現了由于時間不同步導致的bug。一般來講&#xff0c;幾臺服務器的時間不一致&#xff0c;會帶來很多問題&#xff0c;比如日志時間對不上、分布式服務出現異常&#xff0c;等等。項目上現在有三臺服務器&#xff0c;其…

延長電池壽命的低Iq技術

本文章是筆者整理的備忘筆記。希望在幫助自己溫習避免遺忘的同時&#xff0c;也能幫助其他需要參考的朋友。如有謬誤&#xff0c;歡迎大家進行指正。一、概述隨著電池供電型應用的激增&#xff0c;人們對質優價廉的電池和電池包的需求持續猛漲。電池制造商們不斷采用新的化學物…

QT 如何實現enum與字符串的互轉

將enum中定義的枚舉值&#xff0c;以字符串的形式寫入文件&#xff0c;同時也能從字符串轉為枚舉值。舉例說明&#xff1a; ColorSelector中的Colors枚舉&#xff0c;我們希望 kColorRed 這個寫入到本地文件時&#xff0c;可以直接保存“kColorRed”&#xff0c;而非kColorRed對…

SLAM卷不動了,機器人還有哪些方向能做?

關注gongzhonghao【CVPR頂會精選】眾所周知&#xff0c;機器人因復雜環境適應性差、硬件部署成本高&#xff0c;對高效泛化一直需求迫切。再加上多傳感器協同難題、真實場景數據獲取不易&#xff0c;當下對遷移學習 機器人智能融合的研究也就更熱烈了。不過顯然&#xff0c;這…

H.266 vs H.265/AV1/H.264:從工程落地看下一代視頻系統的技術演進

一、背景&#xff1a;編解碼標準演進背后的技術驅動 視頻編碼標準的更迭&#xff0c;從未只是一次簡單的技術升級&#xff0c;而是對碼率壓縮效率、編碼復雜度與畫質質量三者之間平衡點的持續探索。在 H.264 成為全平臺事實標準的十余年里&#xff0c;它成功支撐了 SD 至 1080…

Javascript面試題及詳細答案150道之(031-045)

《前后端面試題》專欄集合了前后端各個知識模塊的面試題&#xff0c;包括html&#xff0c;javascript&#xff0c;css&#xff0c;vue&#xff0c;react&#xff0c;java&#xff0c;Openlayers&#xff0c;leaflet&#xff0c;cesium&#xff0c;mapboxGL&#xff0c;threejs&…

Git如何同步本地與遠程倉庫并解決沖突

在團隊協作開發中&#xff0c;保持本地倉庫與遠程倉庫同步是至關重要的。本文將詳細介紹如何使用 Git 更新本地倉庫至最新遠程版本&#xff0c;并深入解析沖突的產生原因及解決方法。一、同步本地與遠程倉庫1. 檢查遠程倉庫配置首先&#xff0c;確保本地倉庫已正確關聯遠程倉庫…

Hadoop MapReduce 3.3.4 講解~

?博客主頁&#xff1a; https://blog.csdn.net/m0_63815035?typeblog &#x1f497;《博客內容》&#xff1a;.NET、Java.測試開發、Python、Android、Go、Node、Android前端小程序等相關領域知識 &#x1f4e2;博客專欄&#xff1a; https://blog.csdn.net/m0_63815035/cat…

1、【數學】【硬幣悖論】旋轉硬幣問題

問題描述&#xff1a; 兩個相同的硬幣&#xff0c;半徑都是 rrr。一個硬幣&#xff08;稱為“動硬幣”&#xff09;沿著另一個固定不動的硬幣&#xff08;“靜硬幣”&#xff09;的外邊緣無滑動地滾動一圈&#xff0c;回到起始位置。問&#xff1a;動硬幣自身旋轉了幾圈&#x…

【盤古100Pro+開發板實驗例程】FPGA學習 | PCIE 通信測試實驗例程

本原創文章由深圳市小眼睛科技有限公司創作&#xff0c;版權歸本公司所有&#xff0c;如需轉載&#xff0c;需授權并注明出處&#xff08;www.meyesemi.com) 1. 實驗簡介 實驗目的&#xff1a; 完成 PCIE 通信測試。 實驗環境&#xff1a; Window11 PDS2022.2-SP6.4 硬件環…

基于高階累積量的調制識別

基于高階累積量的調制識別是一種利用信號的高階統計特性來識別不同調制方式的方法。 1. 基本原理 高階累積量&#xff08;Higher-Order Cumulants&#xff09;是信號處理中的一個重要工具&#xff0c;能夠捕捉信號的非高斯特性。與高階矩相比&#xff0c;高階累積量對高斯噪聲具…

Java常用數據結構入門

Java常用數據結構入門 前言 數據結構是程序設計中的基礎&#xff0c;掌握常用數據結構能幫助你更高效地解決問題。本文面向Java初學者&#xff0c;介紹Java中常用的數據結構及其基本使用方法。 1. 數組 (Array) 數組是最基礎的數據結構&#xff0c;可以存儲固定大小的同類型…

Android GPU測試

一、Basemark GPU 可選擇進行vulkan和opengl測試&#xff1a; 二、GFXBench 進行各種offscreen測試&#xff08;包括曼哈頓離屏&#xff09; 這是由GFXBench圖形性能測試套件提供的一個著名3D圖形渲染場景。 它模擬了一個復雜的未來都市環境&#xff08;類似曼哈頓&#xff…

2025年6月最新SCI-灰熊脂肪增長優化算法Grizzly Bear Fat Increase-附Matlab免費代碼

引言 本期介紹一種受自然啟發的創新算法——灰熊脂肪增長優化算法Grizzly Bear Fat Increase optimizer&#xff0c;GBFIO。GBFIO算法模仿灰熊為準備過冬而積累身體脂肪的自然行為&#xff0c;借鑒了它們的狩獵、捕魚、吃草、蜂蜜等策略。于2025年6月發表在JCR 1區&#xff0c…

Pytorch實現一個簡單的貝葉斯卷積神經網絡模型

貝葉斯深度模型的主要特點和實現說明&#xff1a;模型結構&#xff1a;結合了常規卷積層&#xff08;用于特征提取&#xff09;和貝葉斯線性層&#xff08;用于分類&#xff09;貝葉斯層將權重視為隨機變量&#xff0c;而非傳統神經網絡中的確定值使用變分推斷來近似權重的后驗…

Dubbo 3.x源碼(32)—Dubbo Provider處理服務調用請求源碼

基于Dubbo 3.1&#xff0c;詳細介紹了Dubbo Provider處理服務調用請求源碼 上文我們學習了&#xff0c;Dubbo消息的編碼解的源碼。現在我們來學習一下Dubbo Provider處理服務調用請求源碼。 當前consumer發起了rpc請求&#xff0c;經過請求編碼之后到達provider端&#xff0c;…

每日一leetcode:移動零

目錄 解題過程: 描述: 分析條件: 解題思路: 通過這道題可以學到什么: 解題過程: 描述: 給定一個數組 nums&#xff0c;編寫一個函數將所有 0 移動到數組的末尾&#xff0c;同時保持非零元素的相對順序。 請注意 &#xff0c;必須在不復制數組的情況下原地對數組進行操…