文章的目的為了記錄使用Arkts?進行Harmony?app?開發學習的經歷。本職為嵌入式軟件開發,公司安排開發app,臨時學習,完成app的開發。開發流程和要點有些記憶模糊,趕緊記錄,防止忘記。
?相關鏈接:
開源 Arkts 鴻蒙應用 開發(一)工程文件分析-CSDN博客
開源 Arkts 鴻蒙應用 開發(二)封裝庫.har制作和應用-CSDN博客
開源 Arkts 鴻蒙應用 開發(三)Arkts的介紹-CSDN博客
開源 Arkts 鴻蒙應用 開發(四)布局和常用控件-CSDN博客
?推薦鏈接:
開源 java android app 開發(一)開發環境的搭建-CSDN博客
開源 java android app 開發(二)工程文件結構-CSDN博客
開源 java android app 開發(三)GUI界面布局和常用組件-CSDN博客
開源 java android app 開發(四)GUI界面重要組件-CSDN博客
開源 java android app 開發(五)文件和數據庫存儲-CSDN博客
開源 java android app 開發(六)多媒體使用-CSDN博客
開源 java android app 開發(七)通訊之Tcp和Http-CSDN博客
開源 java android app 開發(八)通訊之Mqtt和Ble-CSDN博客
開源 java android app 開發(九)后臺之線程和服務-CSDN博客
開源 java android app 開發(十)廣播機制-CSDN博客
開源 java android app 開發(十一)調試、發布-CSDN博客
開源 java android app 開發(十二)封庫.aar-CSDN博客
推薦鏈接:
開源C# .net mvc 開發(一)WEB搭建_c#部署web程序-CSDN博客
開源 C# .net mvc 開發(二)網站快速搭建_c#網站開發-CSDN博客
開源 C# .net mvc 開發(三)WEB內外網訪問(VS發布、IIS配置網站、花生殼外網穿刺訪問)_c# mvc 域名下不可訪問內網,內網下可以訪問域名-CSDN博客
開源 C# .net mvc 開發(四)工程結構、頁面提交以及顯示_c#工程結構-CSDN博客
開源 C# .net mvc 開發(五)常用代碼快速開發_c# mvc開發-CSDN博客
本章節主要講述鴻蒙開發環境時封裝庫.har的制作和應用
內容如下:
1.? .har模塊的制作
2.? .har編寫測試代碼
3.? .har的工程應用
一、?.har模塊的制作,在程序開發中需要將sdk提供給第三方,不讓對方開到源碼的情況。又或者代碼不需要修改,為了加快編譯速度,把代碼封裝為模塊。這個時候就需要制作.har模塊。
1.1? 創建模塊
選擇靜態庫
生成了library模塊
二、.har編寫測試代碼
2.1? 需要注意library模塊中的oh-package.json5配置文件,Index.ets文件是HAR導出聲明文件的入口,HAR需要導出的接口,統一在Index.ets文件中導出。Index.ets文件是DevEco Studio默認自動生成的,用戶也可以自定義,在模塊的oh-package.json5文件中的main字段配置入口聲明文件。
添加文件test.ets
// library/src/main/ts/test.ets
export class classTest {public info(msg: string) {console.info(msg);}
}export function funTest():string{return 'har func';
}
修改MainPage.ets文件的width和height,讓這個組件可以被調用顯示
@Component
export struct MainPage {@State message: string = 'Hello World';build() {Row() {Column() {Text(this.message).fontSize($r('app.float.page_text_font_size')).fontWeight(FontWeight.Bold).onClick(() => {this.message = 'Welcome';})}.width('200')}.height('80')}
}
修改Index.ets,將類和函數引出
生成library.har
三、? .har文件的應用
3.1? 將library.har文件拷貝到測試工程中
3.2? 修改配置文件oh-package.json5添加依賴,并點擊工程同步。
3.3? 在Index.ets中修改代碼,引入library可以使用MainPage組件
import {MainPage} from 'library'
@Entry
@Component
struct Index {@State message: string = 'Hello World';build() {Row(){MainPage();}}
}
效果為
3.4? 在entryablity.ets中引入 classTest類,就可以調用它的函數了,從而實現封裝庫.har的應用。
3.5? 點擊.info函數,顯示如圖,只能看到函數接口,無法看到實際內容,封裝有效。