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