親測(cè)!ArkUI在3516標(biāo)準(zhǔn)系統(tǒng)可以完美跑起來!
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)
老規(guī)矩,先把成果放上來:
大家可以看到很明顯這是一個(gè)ArkUI的應(yīng)用,在遠(yuǎn)程模擬器上目前還只可以跑在P40Pro上。
下圖就是該應(yīng)用跑在3516標(biāo)準(zhǔn)系統(tǒng)上的效果:
其實(shí)為了這個(gè)目的,其實(shí)只需要做到兩個(gè)步驟,第一步整出一個(gè)ArkUI的應(yīng)用來,第二步將該應(yīng)用放上Hi3516跑起來,OK,這就是總體思路,然后順著這個(gè)步驟,一步一步來做。
1.整一個(gè)ArkUI的應(yīng)用
因?yàn)槲疫@里的主要目的是為了測(cè)試3516標(biāo)準(zhǔn)系統(tǒng)是否支持ArkUI框架,所以僅僅寫了一個(gè)超簡(jiǎn)單的demo,因?yàn)檫@demo還不屬于本文章的重點(diǎn)哈。這個(gè)demo就是小示例:
1.1 首先創(chuàng)建一個(gè)聲明式UI工程
如下圖在deveco studio中創(chuàng)建工程的時(shí)候注意一下,別的沒什么區(qū)別。
1.2 將圖片放入對(duì)應(yīng)目錄
- 右鍵resources文件夾,點(diǎn)擊New>Resource Directory,選擇Resource Type為Media(圖片資源),選擇資源限定詞為Device-Phone,詳細(xì)參考官方大大。
- 這里需要注意的是如果采用把圖片放在rawfile下的時(shí)候,這個(gè)時(shí)候在遠(yuǎn)程模擬器的P40Pro是可以完美顯示的,但是在3516中圖片顯示不出來,具體原因還有待深究!有興趣的大佬可以去深究一撥兒,我以后也會(huì)去看這個(gè)問題。
1.3 添加代碼引用資源
直接將entry/src/main/default/pages/index.ets中的文件替換為如下內(nèi)容:
- @Entry
- @Component
- struct MyComponent {
- build() {
- Stack() {
- Image($r('app.media.cat'))
- .objectFit(ImageFit.Contain)
- .height(357)
- Text('Cat')
- .fontSize(26)
- .fontWeight(500)
- }
- }
- }
1.4 修改應(yīng)用名字
這個(gè)配置文件是string.json,所存在目錄為:entry/src/main/resources/base/element/string.json
2.試著將應(yīng)用放入Hi3516上跑起來
因?yàn)槲覀冞@個(gè)是屬于把應(yīng)用放入實(shí)體設(shè)備,所以簽名這一步是必不可少的,簽名完成后,在打出hap包后,再把hap包想辦法扔進(jìn)設(shè)備,并且可以運(yùn)行。
2.1 openharmony簽名打包
下面這幾步驟就是openharmony簽名過程,缺一不可。
2.1.1 生成密鑰和證書請(qǐng)求文件
這里先了解哈這兩個(gè)概念:
密鑰:包含非對(duì)稱加密中使用的公鑰和私鑰,存儲(chǔ)在密鑰庫文件中,格式為.p12,公鑰和私鑰對(duì)用于數(shù)字簽名和驗(yàn)證。
證書請(qǐng)求文件:格式為.csr,全稱為Certificate Signing Request,包含密鑰對(duì)中的公鑰和公共名稱、組織名稱、組織單位等信息,用于向AppGallery Connect申請(qǐng)數(shù)字證書。
- 然后操作方法就是打開你的deveco studio,然后按照下圖進(jìn)行操作:
- 然后就會(huì)彈出下述界面
- 如果是第一次使用的話,肯定是沒有生成過密鑰的,也就是.p12文件,所以這里需要new一個(gè),這里需要重點(diǎn)關(guān)注的是new的時(shí)候會(huì)讓你寫一個(gè)密碼,這個(gè)密碼寫了啥,一定要記住,后面會(huì)用,不然整個(gè)打包過程就會(huì)直接fail。
- 接下來就按照提示填就可以了。
- 這一步完成之后會(huì)生成一個(gè).p12文件和一個(gè).csr文件,這兩個(gè)文件很重要缺一不可。
2.1.2 生成應(yīng)用證書文件
生成應(yīng)用證書文件的格式為.cer,由華為AppGallery Connect頒發(fā)。
先進(jìn)入openharmonysdk的目錄下,這里是deveco studio的安裝目錄,然后敲命令行,執(zhí)行如下命令:
1.keytool 是jdk中的一個(gè)工具,在我把路徑加好之后仍然找不到,所以大家如果也遇到我的這個(gè)錯(cuò)誤可以直接加上全路徑。
2.這里只需要關(guān)注的兩個(gè)參數(shù),一個(gè)是-input,另外一個(gè)是-output
- 2.1 -input 這里需要填寫的路徑是在2.1.1步驟中生成的.csr文件。
- 2.2 -output 這里需要填寫的是這一次操作會(huì)生成的應(yīng)用證書文件:.cer,這在簽名中會(huì)用到
2.1.3 生成應(yīng)用Profile文件
這一步和2.1.2一樣需要先進(jìn)入到deveco studio安裝目錄中的openharmony sdk路徑下,然后敲命令行,如下圖所示:
1.命令中的provisionsigtool.jar這個(gè)文件在sdk目錄中就存在
2.這里需要注意的參數(shù)有-out和distribution-certificate
- 2.1 -out這個(gè)參數(shù)指定本次生成的文件存放目錄,為.p7b
- 2.2 distrubution-certificate這個(gè)參數(shù)用來指定2.1.2中生成的.cer文件
2.1.4 配置應(yīng)用簽名信息
在deveco studio中按照下述圖片點(diǎn)擊出第二副配置界面:
按照上圖點(diǎn)擊Project Structure,然后彈出:
- 上圖中的.p12文件為2.1.1中生成的
- 上圖中的密碼是2.1.1中設(shè)置的密碼
- key alias 也是在2.1.1中設(shè)備的別名
- 上圖中的.p7b文件是在2.1.3中生成的
- 上圖中的.cer文件是在2.1.2中生成的
2.1.4 打release的hap包
按照下圖所示,使用dev eco進(jìn)行生成hap包。
2.2 將2.1中生成好的帶簽名的hap包燒錄進(jìn)去系統(tǒng)。
PS:本身琢磨源碼的想法,所以我沒有采用工具進(jìn)行安裝,而是把hap包放入系統(tǒng)源碼中,然后修改一些配置文件,讓其成為系統(tǒng)的自帶應(yīng)用,然后編譯,最后在燒錄系統(tǒng)。這里對(duì)燒錄系統(tǒng)有疑問,而你恰好也是ubuntu系統(tǒng)的話,可以參考我的上一篇文章:點(diǎn)擊進(jìn)入
2.2.1 將hap包放入指定位置
將hap包放入到applications/standard/hap目錄下。
上圖中可以看到我將hap包重新命名為了Temp.hap。
2.2.2 修改編譯配置文件
這里的編譯配置文件一共需要修改兩個(gè),一個(gè)是BUILD.gn,另一個(gè)是ohos.build。
applications/standard/hap/BUILD.gn ,按照下圖進(jìn)行添加:
applications/standard/hap/ohos.build ,按照下圖進(jìn)行添加:
2.2.3 啟動(dòng)編譯
執(zhí)行下列命令進(jìn)行編譯:
- ./build.sh --product-name Hi3516DV300
編譯完成之后,進(jìn)行燒錄,就可以看到誘人的ArkUI應(yīng)用了。
51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)