diff --git a/OAT.xml b/OAT.xml index adddf872922ba34fee4c160bb0ca3fde961d820f..c3ede690036259982a624b55115c812b21305d59 100644 --- a/OAT.xml +++ b/OAT.xml @@ -75,6 +75,7 @@ + diff --git a/ohos/docs/01_framework/index.md b/ohos/docs/01_framework/index.md new file mode 100644 index 0000000000000000000000000000000000000000..963e8d91b636e0693fd3eb6052ffa510acd3f8d3 --- /dev/null +++ b/ohos/docs/01_framework/index.md @@ -0,0 +1,3 @@ +# 框架介绍 + + \ No newline at end of file diff --git a/ohos/docs/02_architecture/index.md b/ohos/docs/02_architecture/index.md new file mode 100644 index 0000000000000000000000000000000000000000..09113802767fe2f017277c83449952ebf2d0a9fc --- /dev/null +++ b/ohos/docs/02_architecture/index.md @@ -0,0 +1,3 @@ +# 架构介绍 + + \ No newline at end of file diff --git a/ohos/docs/03_environment/index.md b/ohos/docs/03_environment/index.md new file mode 100644 index 0000000000000000000000000000000000000000..dd186c2abf44cd553dc487c6a88d0c305d77999c --- /dev/null +++ b/ohos/docs/03_environment/index.md @@ -0,0 +1,3 @@ +# 环境搭建 + + \ No newline at end of file diff --git "a/ohos/docs/Flutter OHOS\345\244\226\346\216\245\347\272\271\347\220\206\351\200\202\351\205\215\347\256\200\344\273\213.md" "b/ohos/docs/04_development/Flutter OHOS\345\244\226\346\216\245\347\272\271\347\220\206\351\200\202\351\205\215\347\256\200\344\273\213.md" similarity index 79% rename from "ohos/docs/Flutter OHOS\345\244\226\346\216\245\347\272\271\347\220\206\351\200\202\351\205\215\347\256\200\344\273\213.md" rename to "ohos/docs/04_development/Flutter OHOS\345\244\226\346\216\245\347\272\271\347\220\206\351\200\202\351\205\215\347\256\200\344\273\213.md" index fa423d9e424285de44aef6e8271949cf3dc8c93c..aaac148257bef0459cee60739fb0258fc478029b 100644 --- "a/ohos/docs/Flutter OHOS\345\244\226\346\216\245\347\272\271\347\220\206\351\200\202\351\205\215\347\256\200\344\273\213.md" +++ "b/ohos/docs/04_development/Flutter OHOS\345\244\226\346\216\245\347\272\271\347\220\206\351\200\202\351\205\215\347\256\200\344\273\213.md" @@ -14,27 +14,27 @@ Flutter在OHOS平台使用外接纹理,视频播放和相机预览使用方法 1. 实现插件,在onAttachedToEngine中,从入参FlutterPluginBinding中获取TextureRegistry -![](media/dc15b84a4b97ec7f923ffefe121bd346.png) +![](../media/04/dc15b84a4b97ec7f923ffefe121bd346.png) 2. 在onMethodCall中实现注册纹理的响应方法 -![](media/3f7a2a6befa3459f00a90b6e796839e4.png) +![](../media/04/3f7a2a6befa3459f00a90b6e796839e4.png) registerCameraTexture中实现注册纹理,先获取textureId,再使用该textureId去注册纹理到flutter engine,返回surfaceId。 -![](media/7ea99353820d6640826bf0bd24dd5f8b.png) +![](../media/04/7ea99353820d6640826bf0bd24dd5f8b.png) 3. 在启动相机预览中,使用前面获取到的surfaceId。 -![](media/614df503f2164dd4e4a4b4a5e5bc9c87.png) +![](../media/04/614df503f2164dd4e4a4b4a5e5bc9c87.png) 4 . dart侧通过MethodChannel触发,触发纹理注册和启动相机预览。 -![](media/62bbfe62e6fecbb269ab9f607fb2cfbf.png) +![](../media/04/62bbfe62e6fecbb269ab9f607fb2cfbf.png) 预览画面使用获取到的textureId构造一个texture widget。 -![](media/37b3118e6921ff70b1baf4234fcdaa69.png) +![](../media/04/37b3118e6921ff70b1baf4234fcdaa69.png) # 视频播放 @@ -49,19 +49,19 @@ registerCameraTexture中实现注册纹理,先获取textureId,再使用该te 1. 在video_player_ohos插件中实现ohos原生播放器:AVplayer。可参考https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/media/using-avplayer-for-playback.md/ 2. 同样实现插件,在onAttachedToEngine中,从入参FlutterPluginBinding中获取TextureRegistry(此处放入FlutterState中封装)。 - ![](media/50312d42df3346723abf740064ea019b.png) + ![](../media/04/50312d42df3346723abf740064ea019b.png) 3. 在创建视频播放器的方法中,(先从FlutterState拿出TextureRegistry)同样的先获取textureId,再注册纹理到engine,得到surfaceId(surfaceId在返回的SurfaceTextureEntry对象中): - ![](media/e68f5cbb2f98dca205bf51d6ab53ad09.png) + ![](../media/04/e68f5cbb2f98dca205bf51d6ab53ad09.png) 4. Videoplaye构造方法中取出surfaceId: - ![](media/d7e3f8d50d8970578c1bfc9bdcb1941c.png) + ![](../media/04/d7e3f8d50d8970578c1bfc9bdcb1941c.png) 5. 在AVplayer是AvplayerStatus.INITIALIZED状态时,把surfaceId赋给AVplayer -![](media/7f03e4b85c4434de763faf2b3d073a6d.png) +![](../media/04/7f03e4b85c4434de763faf2b3d073a6d.png) 1. 第三步创建AVplayer时,需要把textureId返回给dart层,dart层得到该值,可以在texture Widget中使用该外接纹理完成渲染。 @@ -77,16 +77,16 @@ registerCameraTexture中实现注册纹理,先获取textureId,再使用该te 1. 同样实现插件,在onAttachedToEngine中,从入参FlutterPluginBinding中获取TextureRegistry。 - ![](media/975272fd1c19bb2371545f5d011284bd.png) + ![](../media/04/975272fd1c19bb2371545f5d011284bd.png) 2. 在onMethodCall中实现注册纹理的响应方法 - ![](media/ff662b72b643008d3ba214eb3632452e.png) + ![](../media/04/ff662b72b643008d3ba214eb3632452e.png) 3. 注册纹理实现方法中,把图片数据读进来,创建ImageSource,再创建PixelMap对象,使用registerPixelMap接口注册纹理到flutter engine,得到textureId返回给dart层。 - ![](media/44c0e7494d3916a7b760fc4ed4cd9668.png) + ![](../media/04/44c0e7494d3916a7b760fc4ed4cd9668.png) 4. dart层得到该值,可以在texture Widget中使用该外接纹理完成渲染。 - ![](media/8eff1f85dd7c64952444faf2de19ff89.png) + ![](../media/04/8eff1f85dd7c64952444faf2de19ff89.png) diff --git "a/ohos/docs/04_development/OHOS\345\271\263\345\217\260\351\200\202\351\205\215flutter\344\270\211\346\226\271\345\272\223\346\214\207\345\257\274.md" "b/ohos/docs/04_development/OHOS\345\271\263\345\217\260\351\200\202\351\205\215flutter\344\270\211\346\226\271\345\272\223\346\214\207\345\257\274.md" new file mode 100644 index 0000000000000000000000000000000000000000..2e3d8271fdf36a0cf53d3da0ca0bc1230eb8d190 --- /dev/null +++ "b/ohos/docs/04_development/OHOS\345\271\263\345\217\260\351\200\202\351\205\215flutter\344\270\211\346\226\271\345\272\223\346\214\207\345\257\274.md" @@ -0,0 +1,332 @@ +## 准备工作 + +flutter开发环境已配置:参考https://gitee.com/openharmony-sig/flutter_flutter/blob/master/README.md + +下载待适配的三方插件:官方插件库地址https://pub.dev/ + +本指导书,以适配path_provider 2.1.0为例,地址:https://pub-web.flutter-io.cn/packages/path_provider/versions/2.1.0 + +## 一、插件目录 + +![image-20240410105254011](../media/04//%E6%8F%92%E4%BB%B6%E7%9B%AE%E5%BD%95.png) + +lib: 是对接dart端代码的入口,由此文件接收到参数后,通过chennel将数据发送到原生端; + +android:安卓端代码实现目录; + +ios:ios原生端实现目录; + +example: 一个依赖于该插件的Flutter应用程序,来说明如何使用它; + +README.md:介绍包的文件; + +CHANGELOG.md: 记录每个版本中的更改; + +LICENSE: 包含软件包许可条款的文件。 + +## 三、创建插件的ohos模块 + +命令:`flutter create --platforms ohos,android,ios --org ` + +步骤: + +1)、用Android Studio打开刚刚下载好的插件; + +2)、打开Terminal,cd到插件目录下; + +3)、执行命令`flutter create --platforms ohos path_provider_ohos` 创建一个ohos平台的flutter模块。 + +执行创建命令前: + +![image-20240410105254011](../media/04//%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4flutter_create%E5%89%8D.png) + +执行创建命令后,可以将path_provider_ohos目录下的.dart_tool和.ldea文件删除。 + +![image-20240410105254011](../media/04//%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4flutter_create%E5%90%8E.png) + + + +## 四、编写ohos插件的dart接口和pubspec.yaml文件 + +可直接复制path_provider_android目录下lib的dart代码和pubspec.yaml文件进行修改; + +dart代码基本不需要修改,只需要将android字样改为ohos。 + +lab目录dart代码: + +![image-20240410105254011](../media/04//lab%E7%9B%AE%E5%BD%95dart%E4%BB%A3%E7%A0%81.png) + +pubspec.yaml文件: + +``` +# 仅做参考 +name: path_provider_ohos +description: Ohos implementation of the path_provider plugin. +repository: https://gitee.com/openharmony-sig/flutter_packages/tree/master/packages/path_provider/path_provider_ohos +issue_tracker: https://gitee.com/openharmony-sig/flutter_packages/issues +version: 2.2.1 + +environment: + sdk: ">=2.18.0 <4.0.0" + flutter: ">=3.3.0" + +flutter: + plugin: + implements: path_provider + platforms: + ohos: + package: io.flutter.plugins.pathprovider + pluginClass: PathProviderPlugin + dartPluginClass: PathProviderOhos + +dependencies: + flutter: + sdk: flutter + path_provider_platform_interface: ^2.0.1 + +dev_dependencies: + flutter_test: + sdk: flutter + integration_test: + sdk: flutter + pigeon: ^9.2.4 + test: ^1.16.0 +``` + +## 五、编写ohos插件的原生ets模块 + +### 1、创建ohos的插件模块 + +由于是写ohos平台的flutter插件,而不是写一个应用,需要将原来的entry模块删除,新建一个path_provider插件的静态模块,用来写ets原生代码逻辑。 + +步骤: + +1)、用DevEco Studio打开path_provider_oho下的ohos项目: + +![image-20240410105254011](../media/04//path_provider_oho%E4%B8%8B%E7%9A%84ohos%E9%A1%B9%E7%9B%AE.png) + +2)、新建一个名称为path_provider的静态模块: + +在DevEco Studio左上角点击`Flie > New > Module > Static Library > Next` ; + +module name填写为`path_provider`,其他选项为默认,点击Finish,完成创建。 + + + +![image-20240410105254011](../media/04//%E6%96%B0%E5%BB%BApath_providermodule.png) + +3)、删除entry以及其他多余目录: + +​ entry目录(entry是用来写应用的,现在是要写插件,此处已不需要,应该删除); + +​ 将`path_provider > src > main > ets`目录下的文件全部删除(此处是一些模板代码可删除)。 + +![image-20240410105254011](../media/04//%E5%88%A0%E9%99%A4entry%E4%BB%A5%E5%8F%8A%E5%85%B6%E4%BB%96%E5%A4%9A%E4%BD%99%E7%9B%AE%E5%BD%95.png) + + + +### 2、修改相关配置文件 + +1)、在path_provider目录内的oh-package.json5添加libs/flutter.har 依赖: + +``` +{ + "name": "path_provider", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "Index.ets", + "author": "", + "license": "Apache-2.0", + "dependencies": { + "@ohos/flutter_ohos": "file:libs/flutter.har" //此处为添加的依赖 + } +} +``` + +2)、将path_provider目录外侧的oh-package.json5的dependencies中的flutter.har依赖删除: + +``` +{ + "name": "path_provider_ohos", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "", + "author": "", + "license": "", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.6" + }, +} +``` + +3)、在path_provider目录下添加flutter.har: + +![image-20240410105254011](../media/04//%E6%B7%BB%E5%8A%A0flutter.har.png) + + + +### 3、编写ets代码 + +文件结构,和代码逻辑可参考安卓或ios: + +ohos的api可以参考https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/reference/apis/development-intro.md/ + +![image-20240410105254011](../media/04//%E7%BC%96%E5%86%99ets%E4%BB%A3%E7%A0%81.png) + + + +### 4、修改index文件 + +``` +# 仅作参考 +import PathProviderPlugin from './src/main/ets/io/flutter/plugins/pathprovider/PathProviderPlugin' + +export default PathProviderPlugin +``` + +### 5、打har + +写完代码,改完配置文件后,即可打har包: + +打包工具:DevEco Studio + +打包步骤:1、鼠标定位到path_provider目录;2、点击DevEco Studio中的Build;3、点击Make Module 'pathprovider'选项;4、等待打包完成。 + +![image-20240410105254011](../media/04//%E6%89%93har%E6%AD%A5%E9%AA%A4.png) + +预期结果: + +在`path_provider > build > default > outputs `中有path_proivider.har生成,即为打har包成功。 + +![image-20240410105254011](../media/04//%E6%89%93har%E5%8C%85%E6%88%90%E5%8A%9F.png) + + + + + +## 六、编写example + +### 1、创建一个ohos平台的flutter example应用,用来验证刚刚适配的插件功能 + +cd 到path_provider_ohos目录下 ; + +命令:`flutter create --platforms ohos example` + +工具:Android Studio + +![image-20240410105254011](../media/04//%E5%88%9B%E5%BB%BAexample%E5%91%BD%E4%BB%A4.png) + +![image-20240410105254011](../media/04//example.png) + +### 2、修改dart代码 + +复制`path_provider_android\example\lib`下的main.dart代码,替换`path_provider_ohos\example\lib`下的main.dart代码。 + +### 3、修改example pubspec.yaml文件 + +``` +#仅作参考 +name: path_provider_example +description: Demonstrates how to use the path_provider plugin. +publish_to: none + +environment: + sdk: ">=2.18.0 <4.0.0" + flutter: ">=3.3.0" + +dependencies: + flutter: + sdk: flutter + path_provider: + path: ../../path_provider + path_provider_platform_interface: ^2.0.0 + +dev_dependencies: + flutter_test: + sdk: flutter + integration_test: + sdk: flutter + +flutter: + uses-material-design: true +``` + +## 七、修改path_provide的pubspec.yaml文件 + +flutter: plugin:platforms添加ohos; + +dependencies:添加path_provider_ohos依赖。 + +``` +name: path_provider +description: Flutter plugin for getting commonly used locations on host platform file systems, such as the temp and app data directories. +repository: https://github.com/flutter/packages/tree/main/packages/path_provider/path_provider +issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+path_provider%22 +version: 2.1.0 + +environment: + sdk: ">=2.18.0 <4.0.0" + flutter: ">=3.3.0" + +flutter: + plugin: + platforms: + android: + default_package: path_provider_android + ios: + default_package: path_provider_foundation + linux: + default_package: path_provider_linux + macos: + default_package: path_provider_foundation + windows: + default_package: path_provider_windows + ohos: + default_package: path_provider_ohos #此处为添加 + +dependencies: + flutter: + sdk: flutter + path_provider_android: ^2.1.0 + path_provider_foundation: ^2.3.0 + path_provider_linux: ^2.2.0 + path_provider_platform_interface: ^2.1.0 + path_provider_windows: ^2.2.0 + path_provider_ohos: + path: ../path_provider_ohos #此处为添加 + +dev_dependencies: + flutter_test: + sdk: flutter + integration_test: + sdk: flutter + plugin_platform_interface: ^2.0.0 + test: ^1.16.0 +``` + +## 八、运行example + +### 1、签名 + +用 `Deveco Studio` 打开三方库的 `example > ohos` 目录; + +单击 `File > Project Structure > Project > Signing Configs` 界面勾选 `Automatically generate signature`,等待自动签名完成即可,单击 `OK`; + +![image-20240410105254011](../media/04//%E7%AD%BE%E5%90%8D.png) + +### 2、运行 + +cd到`path_provider_ohos\example > ohos`目录,使用下列指令运行: + +`flutter pub get` + +`flutter run -d --local-engine=` + +**运行成功效果如下:** + +![image-20240410105254011](../media/04//%E6%88%90%E5%8A%9F%E6%95%88%E6%9E%9C.png) + + + diff --git a/ohos/docs/04_development/index.md b/ohos/docs/04_development/index.md new file mode 100644 index 0000000000000000000000000000000000000000..7027ada87aa74995db21a5955edc62b9ce4904ac --- /dev/null +++ b/ohos/docs/04_development/index.md @@ -0,0 +1,3 @@ +# 功能开发 + + \ No newline at end of file diff --git a/ohos/docs/05_performance/index.md b/ohos/docs/05_performance/index.md new file mode 100644 index 0000000000000000000000000000000000000000..9ccbdfb7731be93813583c138b369d8429101e6c --- /dev/null +++ b/ohos/docs/05_performance/index.md @@ -0,0 +1,3 @@ +# 性能调优 + + \ No newline at end of file diff --git a/ohos/docs/06_debug/index.md b/ohos/docs/06_debug/index.md new file mode 100644 index 0000000000000000000000000000000000000000..f0787041cd7c00db05e7050b0db18bd42a7462b9 --- /dev/null +++ b/ohos/docs/06_debug/index.md @@ -0,0 +1,54 @@ +# 调试调测 + +- ets 代码使用 DevEco-Studio 进行调试。 +- dart 代码可以使用 vscode 和 Android Studio 进行调试。 + - flutter鸿蒙化版本调试时,需要加上参数,如: `--local-engine=/Users/xxx/ohos/engine/src/out/ohos_debug_unopt_arm64` + +## 使用 vscode 调试 dart 代码 + +在项目目录下创建文件 .vscode/launch.json ,并添加参数,如下所示 + +``` +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "flutter_sample", + "request": "launch", + "type": "dart", + "args": [ + "--local-engine=/Users/xxx/work/engine_build/engine/src/out/ohos_debug_unopt_arm64" + ] + }, + { + "name": "flutter_sample (profile mode)", + "request": "launch", + "type": "dart", + "flutterMode": "profile", + "args": [ + "--local-engine=/Users/xxx/work/engine_build/engine/src/out/ohos_profile_arm64" + ] + }, + { + "name": "flutter_sample (release mode)", + "request": "launch", + "type": "dart", + "flutterMode": "release", + "args": [ + "--local-engine=/Users/xxx/work/engine_build/engine/src/out/ohos_release_arm64" + ] + } + ] +} +``` + +修改完成后,就可以调试dart代码了。 + +## 使用 Android Studio 调试 dart 代码 + +![](../media/06/06_android_run_config.png) + +参数设置完成后,就可以调试dart代码了。 diff --git a/ohos/docs/07_plugin/index.md b/ohos/docs/07_plugin/index.md new file mode 100644 index 0000000000000000000000000000000000000000..343a1f2ccb85007784d03b9d641370ce0c94e026 --- /dev/null +++ b/ohos/docs/07_plugin/index.md @@ -0,0 +1,3 @@ +# 三方库接入 + + \ No newline at end of file diff --git a/ohos/docs/08_FAQ/index.md b/ohos/docs/08_FAQ/index.md new file mode 100644 index 0000000000000000000000000000000000000000..2d8cb2d4a9d286073d3a36f518b9756eca04c461 --- /dev/null +++ b/ohos/docs/08_FAQ/index.md @@ -0,0 +1,3 @@ +# FAQ + + \ No newline at end of file diff --git a/ohos/docs/09_specifications/index.md b/ohos/docs/09_specifications/index.md new file mode 100644 index 0000000000000000000000000000000000000000..f458757418a3bf1282f3746aa772efd6e39b5db3 --- /dev/null +++ b/ohos/docs/09_specifications/index.md @@ -0,0 +1,3 @@ +# 规格说明 + + \ No newline at end of file diff --git a/ohos/docs/10_appendix/index.md b/ohos/docs/10_appendix/index.md new file mode 100644 index 0000000000000000000000000000000000000000..c034b3cb0e144fca4457acc03e05ec62ccdcba51 --- /dev/null +++ b/ohos/docs/10_appendix/index.md @@ -0,0 +1,3 @@ +# 附录 + + \ No newline at end of file diff --git a/ohos/docs/index.md b/ohos/docs/index.md new file mode 100644 index 0000000000000000000000000000000000000000..3efce38cc3b6f4e27da1ff6fb5fe2f581e6766b0 --- /dev/null +++ b/ohos/docs/index.md @@ -0,0 +1,13 @@ +# 文档入口 + +1. [框架介绍](./01_framework/index.md) +2. [架构介绍](./02_architecture/index.md) +3. [环境搭建](./03_environment/index.md) +4. [功能开发](./04_development/index.md) +5. [性能调优](./05_performance/index.md) +6. [调试调测](./06_debuging_and_testing/index.md) +7. [三方库接入](./07_third_party_library/index.md) +8. [FAQ](./08_FAQ/index.md) +9. [规格说明](./09_specifications/index.md) +10. [附录](./10_appendix/index.md) + diff --git a/ohos/docs/media/37b3118e6921ff70b1baf4234fcdaa69.png b/ohos/docs/media/04/37b3118e6921ff70b1baf4234fcdaa69.png similarity index 100% rename from ohos/docs/media/37b3118e6921ff70b1baf4234fcdaa69.png rename to ohos/docs/media/04/37b3118e6921ff70b1baf4234fcdaa69.png diff --git a/ohos/docs/media/3f7a2a6befa3459f00a90b6e796839e4.png b/ohos/docs/media/04/3f7a2a6befa3459f00a90b6e796839e4.png similarity index 100% rename from ohos/docs/media/3f7a2a6befa3459f00a90b6e796839e4.png rename to ohos/docs/media/04/3f7a2a6befa3459f00a90b6e796839e4.png diff --git a/ohos/docs/media/44c0e7494d3916a7b760fc4ed4cd9668.png b/ohos/docs/media/04/44c0e7494d3916a7b760fc4ed4cd9668.png similarity index 100% rename from ohos/docs/media/44c0e7494d3916a7b760fc4ed4cd9668.png rename to ohos/docs/media/04/44c0e7494d3916a7b760fc4ed4cd9668.png diff --git a/ohos/docs/media/50312d42df3346723abf740064ea019b.png b/ohos/docs/media/04/50312d42df3346723abf740064ea019b.png similarity index 100% rename from ohos/docs/media/50312d42df3346723abf740064ea019b.png rename to ohos/docs/media/04/50312d42df3346723abf740064ea019b.png diff --git a/ohos/docs/media/614df503f2164dd4e4a4b4a5e5bc9c87.png b/ohos/docs/media/04/614df503f2164dd4e4a4b4a5e5bc9c87.png similarity index 100% rename from ohos/docs/media/614df503f2164dd4e4a4b4a5e5bc9c87.png rename to ohos/docs/media/04/614df503f2164dd4e4a4b4a5e5bc9c87.png diff --git a/ohos/docs/media/62bbfe62e6fecbb269ab9f607fb2cfbf.png b/ohos/docs/media/04/62bbfe62e6fecbb269ab9f607fb2cfbf.png similarity index 100% rename from ohos/docs/media/62bbfe62e6fecbb269ab9f607fb2cfbf.png rename to ohos/docs/media/04/62bbfe62e6fecbb269ab9f607fb2cfbf.png diff --git a/ohos/docs/media/7ea99353820d6640826bf0bd24dd5f8b.png b/ohos/docs/media/04/7ea99353820d6640826bf0bd24dd5f8b.png similarity index 100% rename from ohos/docs/media/7ea99353820d6640826bf0bd24dd5f8b.png rename to ohos/docs/media/04/7ea99353820d6640826bf0bd24dd5f8b.png diff --git a/ohos/docs/media/7f03e4b85c4434de763faf2b3d073a6d.png b/ohos/docs/media/04/7f03e4b85c4434de763faf2b3d073a6d.png similarity index 100% rename from ohos/docs/media/7f03e4b85c4434de763faf2b3d073a6d.png rename to ohos/docs/media/04/7f03e4b85c4434de763faf2b3d073a6d.png diff --git a/ohos/docs/media/8eff1f85dd7c64952444faf2de19ff89.png b/ohos/docs/media/04/8eff1f85dd7c64952444faf2de19ff89.png similarity index 100% rename from ohos/docs/media/8eff1f85dd7c64952444faf2de19ff89.png rename to ohos/docs/media/04/8eff1f85dd7c64952444faf2de19ff89.png diff --git a/ohos/docs/media/975272fd1c19bb2371545f5d011284bd.png b/ohos/docs/media/04/975272fd1c19bb2371545f5d011284bd.png similarity index 100% rename from ohos/docs/media/975272fd1c19bb2371545f5d011284bd.png rename to ohos/docs/media/04/975272fd1c19bb2371545f5d011284bd.png diff --git a/ohos/docs/media/d7e3f8d50d8970578c1bfc9bdcb1941c.png b/ohos/docs/media/04/d7e3f8d50d8970578c1bfc9bdcb1941c.png similarity index 100% rename from ohos/docs/media/d7e3f8d50d8970578c1bfc9bdcb1941c.png rename to ohos/docs/media/04/d7e3f8d50d8970578c1bfc9bdcb1941c.png diff --git a/ohos/docs/media/dc15b84a4b97ec7f923ffefe121bd346.png b/ohos/docs/media/04/dc15b84a4b97ec7f923ffefe121bd346.png similarity index 100% rename from ohos/docs/media/dc15b84a4b97ec7f923ffefe121bd346.png rename to ohos/docs/media/04/dc15b84a4b97ec7f923ffefe121bd346.png diff --git a/ohos/docs/media/e68f5cbb2f98dca205bf51d6ab53ad09.png b/ohos/docs/media/04/e68f5cbb2f98dca205bf51d6ab53ad09.png similarity index 100% rename from ohos/docs/media/e68f5cbb2f98dca205bf51d6ab53ad09.png rename to ohos/docs/media/04/e68f5cbb2f98dca205bf51d6ab53ad09.png diff --git a/ohos/docs/media/04/example.png b/ohos/docs/media/04/example.png new file mode 100644 index 0000000000000000000000000000000000000000..00ea8c5cfa11b1fee92bc8388b3c13efdc3deccb Binary files /dev/null and b/ohos/docs/media/04/example.png differ diff --git a/ohos/docs/media/ff662b72b643008d3ba214eb3632452e.png b/ohos/docs/media/04/ff662b72b643008d3ba214eb3632452e.png similarity index 100% rename from ohos/docs/media/ff662b72b643008d3ba214eb3632452e.png rename to ohos/docs/media/04/ff662b72b643008d3ba214eb3632452e.png diff --git "a/ohos/docs/media/04/lab\347\233\256\345\275\225dart\344\273\243\347\240\201.png" "b/ohos/docs/media/04/lab\347\233\256\345\275\225dart\344\273\243\347\240\201.png" new file mode 100644 index 0000000000000000000000000000000000000000..d1c042df1c09ea1a34ade50641b680b75a53d811 Binary files /dev/null and "b/ohos/docs/media/04/lab\347\233\256\345\275\225dart\344\273\243\347\240\201.png" differ diff --git "a/ohos/docs/media/04/path_provider_oho\344\270\213\347\232\204ohos\351\241\271\347\233\256.png" "b/ohos/docs/media/04/path_provider_oho\344\270\213\347\232\204ohos\351\241\271\347\233\256.png" new file mode 100644 index 0000000000000000000000000000000000000000..2372a57bc58282ef3d5baf125dbc02b4da56f073 Binary files /dev/null and "b/ohos/docs/media/04/path_provider_oho\344\270\213\347\232\204ohos\351\241\271\347\233\256.png" differ diff --git "a/ohos/docs/media/04/\345\210\233\345\273\272example\345\221\275\344\273\244.png" "b/ohos/docs/media/04/\345\210\233\345\273\272example\345\221\275\344\273\244.png" new file mode 100644 index 0000000000000000000000000000000000000000..1a7455e46c9ad6c7a7477d99b6a2f9e4d4ec592a Binary files /dev/null and "b/ohos/docs/media/04/\345\210\233\345\273\272example\345\221\275\344\273\244.png" differ diff --git "a/ohos/docs/media/04/\345\210\240\351\231\244entry\344\273\245\345\217\212\345\205\266\344\273\226\345\244\232\344\275\231\347\233\256\345\275\225.png" "b/ohos/docs/media/04/\345\210\240\351\231\244entry\344\273\245\345\217\212\345\205\266\344\273\226\345\244\232\344\275\231\347\233\256\345\275\225.png" new file mode 100644 index 0000000000000000000000000000000000000000..3ca7e65bbca498c97bf3f166da1325319daa38bf Binary files /dev/null and "b/ohos/docs/media/04/\345\210\240\351\231\244entry\344\273\245\345\217\212\345\205\266\344\273\226\345\244\232\344\275\231\347\233\256\345\275\225.png" differ diff --git "a/ohos/docs/media/04/\346\210\220\345\212\237\346\225\210\346\236\234.png" "b/ohos/docs/media/04/\346\210\220\345\212\237\346\225\210\346\236\234.png" new file mode 100644 index 0000000000000000000000000000000000000000..741118aca3dcd86667cb39d18ce26c3bfb9f43d5 Binary files /dev/null and "b/ohos/docs/media/04/\346\210\220\345\212\237\346\225\210\346\236\234.png" differ diff --git "a/ohos/docs/media/04/\346\211\223har\345\214\205\346\210\220\345\212\237.png" "b/ohos/docs/media/04/\346\211\223har\345\214\205\346\210\220\345\212\237.png" new file mode 100644 index 0000000000000000000000000000000000000000..deafd3f27eb719ca04f9983b8b208448f4a3b7be Binary files /dev/null and "b/ohos/docs/media/04/\346\211\223har\345\214\205\346\210\220\345\212\237.png" differ diff --git "a/ohos/docs/media/04/\346\211\223har\346\255\245\351\252\244.png" "b/ohos/docs/media/04/\346\211\223har\346\255\245\351\252\244.png" new file mode 100644 index 0000000000000000000000000000000000000000..55c0e48629f7ddfe01165c1a136f52012748523a Binary files /dev/null and "b/ohos/docs/media/04/\346\211\223har\346\255\245\351\252\244.png" differ diff --git "a/ohos/docs/media/04/\346\211\247\350\241\214\345\221\275\344\273\244flutter_create\345\211\215.png" "b/ohos/docs/media/04/\346\211\247\350\241\214\345\221\275\344\273\244flutter_create\345\211\215.png" new file mode 100644 index 0000000000000000000000000000000000000000..ba134db9723d7a5b279bff3b511694f61de36c5d Binary files /dev/null and "b/ohos/docs/media/04/\346\211\247\350\241\214\345\221\275\344\273\244flutter_create\345\211\215.png" differ diff --git "a/ohos/docs/media/04/\346\211\247\350\241\214\345\221\275\344\273\244flutter_create\345\220\216.png" "b/ohos/docs/media/04/\346\211\247\350\241\214\345\221\275\344\273\244flutter_create\345\220\216.png" new file mode 100644 index 0000000000000000000000000000000000000000..c2c5ca34bea56415cc23436521db5cbafca6e5e9 Binary files /dev/null and "b/ohos/docs/media/04/\346\211\247\350\241\214\345\221\275\344\273\244flutter_create\345\220\216.png" differ diff --git "a/ohos/docs/media/04/\346\217\222\344\273\266\347\233\256\345\275\225.png" "b/ohos/docs/media/04/\346\217\222\344\273\266\347\233\256\345\275\225.png" new file mode 100644 index 0000000000000000000000000000000000000000..c3013230188672d15c4509bb61a18bacf6fd21d9 Binary files /dev/null and "b/ohos/docs/media/04/\346\217\222\344\273\266\347\233\256\345\275\225.png" differ diff --git "a/ohos/docs/media/04/\346\226\260\345\273\272path_providermodule.png" "b/ohos/docs/media/04/\346\226\260\345\273\272path_providermodule.png" new file mode 100644 index 0000000000000000000000000000000000000000..f01dc90ddc5225ee850afb17da075d731350751e Binary files /dev/null and "b/ohos/docs/media/04/\346\226\260\345\273\272path_providermodule.png" differ diff --git "a/ohos/docs/media/04/\346\267\273\345\212\240flutter.har.png" "b/ohos/docs/media/04/\346\267\273\345\212\240flutter.har.png" new file mode 100644 index 0000000000000000000000000000000000000000..b0ab94890cd86bb2294f300b78eec4bef4a0b447 Binary files /dev/null and "b/ohos/docs/media/04/\346\267\273\345\212\240flutter.har.png" differ diff --git "a/ohos/docs/media/04/\347\255\276\345\220\215.png" "b/ohos/docs/media/04/\347\255\276\345\220\215.png" new file mode 100644 index 0000000000000000000000000000000000000000..b0012c2b2d015a36cc074ee2859c5db9784930b3 Binary files /dev/null and "b/ohos/docs/media/04/\347\255\276\345\220\215.png" differ diff --git "a/ohos/docs/media/04/\347\274\226\345\206\231ets\344\273\243\347\240\201.png" "b/ohos/docs/media/04/\347\274\226\345\206\231ets\344\273\243\347\240\201.png" new file mode 100644 index 0000000000000000000000000000000000000000..eca0a1b9e78e11f38a9355d4661bb3cdaabdcb6d Binary files /dev/null and "b/ohos/docs/media/04/\347\274\226\345\206\231ets\344\273\243\347\240\201.png" differ diff --git a/ohos/docs/media/06/06_android_run_config.png b/ohos/docs/media/06/06_android_run_config.png new file mode 100644 index 0000000000000000000000000000000000000000..9e1f69eb0974a9106c94200bf147889417dc1885 Binary files /dev/null and b/ohos/docs/media/06/06_android_run_config.png differ