成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

鴻蒙應用開發入門(二)開發環境搭建

開發
文章由鴻蒙社區產出,想要了解更多內容請前往:51CTO和華為官方戰略合作共建的鴻蒙技術社區https://harmonyos.51cto.com/#zz

[[360069]]

 想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

2.1 工具下載和安裝:

下載地址:https://developer.harmonyos.com/cn/develop/deveco-studio

安裝下一步.....就可以,沒有坑!

2.2 下載HarmonyOS SDK

DevEco Studio提供SDK Manager統一管理SDK和這個包依賴的工具鏈。通過SDK Manager能自動下載各個語言對應的SDK包。SDK Manager提供多種編程語言的SDK包,各SDK包的說明請參考:

1. Native:C/C++語言SDK包,默認不自動下載,需手動勾選下載。

2. JS:JS語言SDK包,默認不自動下載,需手動勾選下載。

3. Java:Java語言SDK包,首次下載SDK時默認下載。

SDK對應的工具鏈(SDK Tools)和預覽器:

1. Toolchains:SDK工具鏈,HarmonyOS應用開發必備工具集,包括編譯、打包、簽名、數據庫管理等工具的集合,首次下載SDK時默認下載。

2. Previewer:Lite Wearable預覽器,在開發過程中可以動態預覽Lite Wearable應用的界面呈現效果,默認不自動下載,需手動勾選下載。

2.3 安裝IDE時候的坑1:一直加載gradle

1. 下載指定的gadle版本

可以到 官網下載或者借助網友提供的下載好的版本,直接下載使用。

2. 關閉DevEco studio,打開DevEco studio自動生成的一個目錄

默認在這個目錄:C:\Users\Administrator\.gradle\wrapper\dists\gradle-6.3-all\b4awcolw...這串字符不同電腦不一樣...u1obfh9i8

3. 下載好的zip文件放進去

將下載好的gradle文件復制在以上文件夾內(注意一定要放置在類似“b4awcolw...這串字符不同電腦不一樣...u1obfh9i8”目錄下),重啟軟件即可。

2.4 安裝IDE時候的坑2:模擬器刷不出來

開發應用的時候需要模擬器跑效果,需要在DevEco Studio菜單欄,點擊Tools > HVD Manager開發模擬器,第一次打開,會自動下載相關文件。然后要求用華為開發者賬號登錄認證,開發者賬號要求實名認證,沒有自行注冊認證就好。

注意:瀏覽器一定要更新到最新版本,否則可能模擬器刷不出來。

2.5 推薦一個很好用的開源手機投屏工具scrcpy

1. 獲取地址:https://github.com/Genymobile/scrcpy

2. scrcpy簡介

簡單地來說,scrcpy就是通過adb調試的方式來將手機屏幕投到電腦上,并可以通過電腦控制手機設備。它可以通過USB連接,也可以通過Wifi連接(類似于隔空投屏),而且不需要任何root權限,不需要在手機里安裝任何程序。scrcpy同時適用于Linux,Windows和macOS。

3. 安裝和使用

1)綠色的下載到Windows某個目錄,然后將目錄添加到Path環境變量就可以了。

2)使用USB進行連接設備

(1)手機通過USB連接到PC上,首次連接會彈出是否信任該電腦,點擊始終信任即可。

(2)運行adb devices查看是否連接成功

(3)運行“scrcpy -s 設備名稱” ,只有一臺設備直接scrcpy即可。

2.6 真機調試環境搭建步驟:

1)在IDE中生成簽名文件,以備用

2)進入應用開發頁面,進入管理中心,進入上架及推廣服務

3)進入用戶與訪問,生成證書和管理設備(目前是受邀開發者可見),并且下載好證書已備用,添加設備需要UDID(獲取UDID的命令,adb shell dumpsys DdmpDeviceMonitorService)

4)在進入我的項目,添加項目,添加應用,注意應用的包名必須和你自己的包名一樣

5)在我的項目,對應的項目里,生成profile文件,下載以備用

6)cer、p12、p7b三個文件齊了,在項目的屬性,簽名設置上設置上,就可以在真機上調試運行了


3.1 第一個鴻蒙應用實現需求

編寫兩張頁面,實現在第一張頁面點擊按鈕跳轉到第二張頁面。在Java UI框架中,提供了兩種編寫布局的方式:在XML中聲明UI布局和在代碼中創建布局。這兩種方式創建出的布局沒有本質差別,都是我們需要熟悉方式,所以我們將通過XML的方式布局第一張頁面,然后再通過代碼的方式布局第二張頁面。

3.2 用XML布局第一張頁面

1. 打開layout下面的“ability_main.xml”文件

2. 在“ability_main.xml”文件中創建一個文本和一個按鈕

  1. xmlns:ohos="http://schemas.huawei.com/res/ohos" 
  2.  
  3. ohos:width="match_parent" 
  4.  
  5. ohos:height="match_parent" 
  6.  
  7. ohos:background_element="#000000"
  8.  
  9.  
  10. ohos:id="$+id:text" 
  11.  
  12. ohos:width="match_content" 
  13.  
  14. ohos:height="match_content" 
  15.  
  16. ohos:text="Hello World" 
  17.  
  18. ohos:text_color="white" 
  19.  
  20. ohos:text_size="32fp" 
  21.  
  22. ohos:center_in_parent="true"/> 
  23.  
  24.  
  25. ohos:id="$+id:button" 
  26.  
  27. ohos:width="match_content" 
  28.  
  29. ohos:height="match_content" 
  30.  
  31. ohos:text="Next" 
  32.  
  33. ohos:text_size="19fp" 
  34.  
  35. ohos:text_color="white" 
  36.  
  37. ohos:top_padding="8vp" 
  38.  
  39. ohos:bottom_padding="8vp" 
  40.  
  41. ohos:right_padding="80vp" 
  42.  
  43. ohos:left_padding="80vp" 
  44.  
  45. ohos:background_element="$graphic:background_button" 
  46.  
  47. ohos:below="$id:text" 
  48.  
  49. ohos:horizontal_center="true" 
  50.  
  51. /> 

 3. 創建按鈕的背景

按鈕的背景是通過“background_button”來指定的。右鍵點擊“graphic”文件夾,選擇“New > File”,命名為“background_button.xml”。

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <shape  xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:shape="oval"
  3.     <solid ohos:color="#007DFF"/> 
  4.     <corners ohos:radius="20"/> 
  5. </shape> 

3.3 用編程的方式布局第二張頁面

1. 創建Feature Ability

2. 代碼編寫界面

  1. public class SecondAbilitySlice extends AbilitySlice { 
  2.     @Override 
  3.     public void onStart(Intent intent) { 
  4.         super.onStart(intent); 
  5.         // 聲明布局 
  6.         DependentLayout myLayout = new DependentLayout(this); 
  7.         // 設置頁面布局大小和背景色 
  8.         myLayout.setWidth(MATCH_PARENT); 
  9.         myLayout.setHeight(MATCH_PARENT); 
  10.         ShapeElement element = new ShapeElement(); 
  11.         element.setRgbColor(new RgbColor(255, 255, 255)); 
  12.         myLayout.setBackground(element); 
  13.         // 創建一個文本 
  14.         Text text = new Text(this); 
  15.         text.setText("Nice to meet you."); 
  16.         text.setTextSize(55); 
  17.         text.setTextColor(Color.BLACK); 
  18.         // 設置文本的布局 
  19.         DependentLayout.LayoutConfig textConfig =  
  20.                                     new DependentLayout.LayoutConfig(MATCH_CONTENT,MATCH_CONTENT); 
  21.         textConfig.addRule(DependentLayout.LayoutConfig.CENTER_IN_PARENT); 
  22.         
  23.         text.setLayoutConfig(textConfig); 
  24.         myLayout.addComponent(text); 
  25.         super.setUIContent(myLayout); 
  26.     } 
  27.   
  28.     @Override 
  29.     public void onActive() { 
  30.         super.onActive(); 
  31.     } 
  32.   
  33.     @Override 
  34.     public void onForeground(Intent intent) { 
  35.         super.onForeground(intent); 
  36.     } 

 3.4 實現頁面跳轉

  1. public class MainAbilitySlice extends AbilitySlice { 
  2.     @Override 
  3.     public void onStart(Intent intent) { 
  4.         super.onStart(intent); 
  5.         super.setUIContent(ResourceTable.Layout_ability_main); 
  6.         Button button = (Button) findComponentById(ResourceTable.Id_button); 
  7.   
  8.         if (button != null) { 
  9.             // 為按鈕設置點擊回調 
  10.             button.setClickedListener(new Component.ClickedListener() { 
  11.                 @Override 
  12.                 public void onClick(Component component) { 
  13.                     Intent secondIntent = new Intent(); 
  14.                     // 指定待啟動FA的bundleName和abilityName 
  15.                     Operation operation = new Intent.OperationBuilder() 
  16.                             .withDeviceId(""
  17.                             .withBundleName("com.example.myapplication"
  18.                             .withAbilityName("com.example.myapplication.SecondAbility"
  19.                             .build(); 
  20.                     secondIntent.setOperation(operation); 
  21.                     startAbility(secondIntent); // 通過AbilitySlice的startAbility接口實現啟動另一個頁面 
  22.                 } 
  23.             }); 
  24.         } 
  25.     } 
  26.   
  27.     @Override 
  28.     public void onActive() { 
  29.         super.onActive(); 
  30.     } 
  31.   
  32.     @Override 
  33.     public void onForeground(Intent intent) { 
  34.         super.onForeground(intent); 
  35.     } 

 文章配套視頻課程《鴻蒙手機應用開發入門》https://edu.51cto.com/course/26133.html 

©著作權歸作者和HarmonyOS技術社區共同所有,如需轉載,請注明出處,否則將追究法律責任

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2024-03-26 15:19:36

鴻蒙應用開發開發工具

2011-06-03 14:36:32

IOS 環境搭建

2011-06-03 15:36:22

IOS 環境搭建

2011-06-03 15:08:09

IOS 環境搭建

2011-06-03 16:05:20

IOS 環境搭建

2025-05-16 08:20:00

WailsGo后端

2011-05-24 16:09:57

Androi

2013-07-23 06:11:44

Android開發學習Android開發環境Java

2020-10-12 11:33:00

鴻蒙

2019-12-10 09:20:30

NettyBIO開發

2009-07-03 16:56:37

JSP開發環境

2011-07-08 16:02:24

iphone

2017-03-02 15:33:24

Android Thi環境搭建

2010-04-03 11:30:15

Widget開發

2011-05-26 10:33:26

Android開發

2011-08-02 17:37:01

IPhone開發 環境搭建

2017-09-11 14:35:34

編輯器開發環境React

2020-12-04 09:52:22

鴻蒙OS

2021-12-20 21:01:52

鴻蒙HarmonyOS應用

2020-09-28 15:13:04

鴻蒙
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区在线播放 | 免费在线日韩 | 亚洲一区二区免费看 | 欧美日韩中文字幕在线播放 | 91视频播放 | 日韩一区二区三区在线观看视频 | 黄色毛片在线观看 | 欧美中文字幕一区二区三区亚洲 | 久久精品国产一区 | 自拍偷拍第一页 | 一区二区精品 | 久久久蜜臀国产一区二区 | 欧美色综合天天久久综合精品 | 日韩成人免费视频 | 国产综合在线视频 | 日日摸夜夜爽人人添av | 在线观看日韩精品视频 | 一级特黄a大片 | 中文字幕不卡在线88 | 久久精品中文 | 久久国产精品首页 | 国产精品久久久久久久午夜 | 成人免费在线观看 | av一级一片 | 一级美国黄色片 | 久久久久久久久国产精品 | 成人妇女免费播放久久久 | 久久久久国产精品一区二区 | 日韩国产中文字幕 | 亚洲另类春色偷拍在线观看 | 精品日韩 | 毛片一区| 亚洲欧美综合精品久久成人 | 国产精品射 | 久久国产精品免费一区二区三区 | 国产精品久久久久久久久久 | 亚洲性综合网 | 99久久精品国产毛片 | 亚洲福利在线观看 | 中文字幕在线观看视频网站 | 一区二区高清 |