diff --git a/OAT.xml b/OAT.xml
index 2440975a3114d53513168f5ef220ca949bb9082a..5534951f90f7adf31c0596bd39c98936bab7d229 100644
--- a/OAT.xml
+++ b/OAT.xml
@@ -93,7 +93,7 @@
-
+
diff --git a/README.en.md b/README.en.md
index 6a3c4bdc9f138fb98e0d36f52c5a8038bb6421f6..5d8ad933ceee71210691ca359e0507af86a6c37d 100644
--- a/README.en.md
+++ b/README.en.md
@@ -12,7 +12,7 @@ This warehouse is based on the compatible extension of flutter sdk for OpenHarmo
The flutter tools command supports use on Linux/Mac/Windows.
* Build dependencies:
- Depend on [flutter engine](https://github.com/flutter/engine) to build products: `ohos_debug_unopt_arm64` and `ohos_release_arm64`, please add: `--local-engine=\`
+ Depend on [flutter engine](https://github.com/flutter/engine) to build products: `ohos_debug_unopt_arm64` and `ohos_release_arm64`, please add: `--local-engine=<engine product in the running parameters of the flutter tools command Directory>`
* Building steps:
@@ -48,11 +48,11 @@ This warehouse is based on the compatible extension of flutter sdk for OpenHarmo
...
```
- 3. Configure Gradle: Download `gradle 7.1` and unzip it, configure it into environment variables:
+ 3. Configure Gradle: Download `gradle 7.3` and unzip it, configure it into environment variables:
```
# grade
- export PATH=/home//env/gradle-7.1/bin:$PATH
+ export PATH=/home//env/gradle-7.3/bin:$PATH
```
4. Download Flutter and configure the environment after the download is complete:
@@ -158,7 +158,7 @@ export HOS_SDK_HOME=/home//env/{HarmonyOS sdk}
export SIGN_TOOL_HOME=/home//ohos/developtools_hapsigner/autosign
# grade
-export PATH=/home//env/gradle-7.1/bin:$PATH
+export PATH=/home//env/gradle-7.3/bin:$PATH
#nodejs
export NODE_HOME=/home//env/node-v14.19.1-linux-x64
export PATH=$NODE_HOME/bin:$PATH
@@ -175,8 +175,9 @@ export PATH=$NODE_HOME/bin:$PATH
```
# Create project
flutter create --platforms ohos flutter_demo
- # Enter the project root directory to compile
- flutter build hap --local-engine-src-path /home//ohos/engine/src --local-engine ohos_release_arm64
+ # Enter the project root directory to compile, the `src/out` in `--local-engine` shoud be preserved.
+ flutter build hap --local-engine=/home//ohos/engine/src/out/ohos_release_arm64 --release
+ flutter build hap --local-engine=/home//ohos/engine/src/out/ohos_debug_unopt_arm64 --debug
```
3. After flutter devices discover the ohos device, use `hdc -t install ` to install it.
@@ -198,19 +199,19 @@ HDC_SERVER_PORT=8710
After the configuration is completed, the flutter sdk can complete the device connection through the hdc server. You can also refer to [official guidance](https://docs.openharmony.cn/pages/v4.0/zh-cn/device-dev/subsystems/subsys-toolchain -hdc-guide.md/#hdc-client%E5%A6%82%E4%BD%95%E8%BF%9C%E7%A8%8B%E8%AE%BF%E9%97%AEhdc-server)
## Compatible command list developed by OpenHarmony:
-| Command name | Command description | Instructions for use |
-| ------- | ------- |---------------------------------- ----------------------------------|
-| doctor | environment detection | flutter doctor |
-| config | environment configuration | flutter config --\ \ |
-| create | Create a new project | flutter create --platforms ohos,android --org \ \ |
-| devices | Connected device discovery | flutter devices |
-| install | application installation | flutter install -t \ \ |
-| assemble | resource packaging | flutter assemble |
-| build | Test application build | flutter build hap --target-platform ohos-arm64 --debug --local-engine=\ |
-| build | Formal application build | flutter build hap --target-platform ohos-arm64 --release --local-engine=\ |
-| run | application run | flutter run --local-engine=\ |
-| attach | debug mode | flutter attach |
-| screenshot | catch screen | flutter screenshot |
+| Command name | Command description | Instructions for use |
+| ------------ | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
+| doctor | environment detection | flutter doctor |
+| config | environment configuration | flutter config --<key> <value> |
+| create | Create a new project | flutter create --platforms ohos,android --org <org> <appName> |
+| devices | Connected device discovery | flutter devices |
+| install | application installation | flutter install -t <deviceId> <hap file path> |
+| assemble | resource packaging | flutter assemble |
+| build | Test application build | flutter build hap --debug --local-engine=<debug engine product path compatible with ohos> \[--target-platform ohos-arm64\] |
+| build | Formal application build | flutter build hap --release --local-engine=<ohos-compatible release engine product path> \[--target-platform ohos-arm64\] |
+| run | application run | flutter run --local-engine=<ohos-compatible engine product path> |
+| attach | debug mode | flutter attach |
+| screenshot | catch screen | flutter screenshot |
Prompt: [Flutter third-party library adaptation plan](https://docs.qq.com/sheet/DVVJDWWt1V09zUFN2)
diff --git a/README.md b/README.md
index f294770bef77fa3d5ab42b0f61175894ce5b9a9c..c0670b573b22006366b22acec290483a84e443a2 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@ Flutter SDK 仓库
flutter tools指令支持Linux、Mac和Windows下使用。
* 构建依赖:
- 依赖[flutter engine](https://github.com/flutter/engine)构建产物:`ohos_debug_unopt_arm64` 与 `ohos_release_arm64`,请在flutter tools指令运行参数中添加:`--local-engine=\`
+ 依赖[flutter engine](https://github.com/flutter/engine)构建产物:`ohos_debug_unopt_arm64` 与 `ohos_release_arm64`,请在flutter tools指令运行参数中添加:`--local-engine=<engine产物目录>`
* 构建步骤:
@@ -49,11 +49,11 @@ Flutter SDK 仓库
...
```
- 3. 配置Gradle:下载 `gradle 7.1` 并解压,配置到环境变量中:
+ 3. 配置Gradle:下载 `gradle 7.3` 并解压,配置到环境变量中:
```
# grade
- export PATH=/home//env/gradle-7.1/bin:$PATH
+ export PATH=/home//env/gradle-7.3/bin:$PATH
```
4. 下载Flutter,下载完成后配置环境:
@@ -160,7 +160,7 @@ export HOS_SDK_HOME=/home//env/{HarmonyOS sdk}
export SIGN_TOOL_HOME=/home//ohos/developtools_hapsigner/autosign
# grade
-export PATH=/home//env/gradle-7.1/bin:$PATH
+export PATH=/home//env/gradle-7.3/bin:$PATH
# nodejs
export NODE_HOME=/home//env/node-v14.19.1-linux-x64
export PATH=$NODE_HOME/bin:$PATH
@@ -177,8 +177,9 @@ export PATH=$NODE_HOME/bin:$PATH
```
# 创建工程
flutter create --platforms ohos flutter_demo
- # 进入工程根目录编译
- flutter build hap --local-engine-src-path /home//ohos/engine/src --local-engine ohos_release_arm64
+ # 进入工程根目录编译,`--local-engine` 中的 `src/out` 需要保留
+ flutter build hap --local-engine=/home//ohos/engine/src/out/ohos_release_arm64 --release
+ flutter build hap --local-engine=/home//ohos/engine/src/out/ohos_debug_unopt_arm64 --debug
```
3. flutter devices发现ohos设备之后,使用 `hdc -t install `进行安装。
@@ -200,19 +201,19 @@ HDC_SERVER_PORT=8710
配置完成后flutter sdk可以通过hdc server完成设备连接,也可参考[官方指导](https://docs.openharmony.cn/pages/v4.0/zh-cn/device-dev/subsystems/subsys-toolchain-hdc-guide.md/#hdc-client%E5%A6%82%E4%BD%95%E8%BF%9C%E7%A8%8B%E8%AE%BF%E9%97%AEhdc-server)
## 已兼容OpenHarmony开发的指令列表:
-| 指令名称 | 指令描述 | 使用说明 |
-| ------- | ------- |-------------------------------------------------------------------|
-| doctor | 环境检测 | flutter doctor |
-| config | 环境配置 | flutter config --\ \ |
-| create | 创建新项目 | flutter create --platforms ohos,android --org \ \ |
-| devices | 已连接设备查找 | flutter devices |
-| install | 应用安装 | flutter install -t \ \ |
-| assemble | 资源打包 | flutter assemble |
-| build | 测试应用构建 | flutter build hap --target-platform ohos-arm64 --debug --local-engine=\<兼容ohos的debug engine产物路径\> |
-| build | 正式应用构建 | flutter build hap --target-platform ohos-arm64 --release --local-engine=\<兼容ohos的release engine产物路径\> |
-| run | 应用运行 | flutter run --local-engine=\<兼容ohos的engine产物路径\> |
-| attach | 调试模式 | flutter attach |
-| screenshot | 截屏 | flutter screenshot |
+| 指令名称 | 指令描述 | 使用说明 |
+| ---------- | -------------- | -------------------------------------------------------------------------------------------------------------------- |
+| doctor | 环境检测 | flutter doctor |
+| config | 环境配置 | flutter config --<key> <value> |
+| create | 创建新项目 | flutter create --platforms ohos,android --org <org> <appName> |
+| devices | 已连接设备查找 | flutter devices |
+| install | 应用安装 | flutter install -t <deviceId> <hap文件路径> |
+| assemble | 资源打包 | flutter assemble |
+| build | 测试应用构建 | flutter build hap --debug --local-engine=<兼容ohos的debug engine产物路径> \[--target-platform ohos-arm64\] |
+| build | 正式应用构建 | flutter build hap --release --local-engine=<兼容ohos的release engine产物路径> \[--target-platform ohos-arm64\] |
+| run | 应用运行 | flutter run --local-engine=<兼容ohos的engine产物路径> |
+| attach | 调试模式 | flutter attach |
+| screenshot | 截屏 | flutter screenshot |
附:[Flutter三方库适配计划](https://docs.qq.com/sheet/DVVJDWWt1V09zUFN2)
diff --git a/packages/flutter/lib/src/foundation/_platform_io.dart b/packages/flutter/lib/src/foundation/_platform_io.dart
index 5e67d9fca4d8a610782ced2aa9691e571a2a8488..4d87f726ea4b723976b5a27d485c3b851892aad4 100644
--- a/packages/flutter/lib/src/foundation/_platform_io.dart
+++ b/packages/flutter/lib/src/foundation/_platform_io.dart
@@ -23,7 +23,7 @@ platform.TargetPlatform get defaultTargetPlatform {
result = platform.TargetPlatform.macOS;
} else if (Platform.isWindows) {
result = platform.TargetPlatform.windows;
- } else if (Platform.isOhos) {
+ } else if (Platform.operatingSystem == 'ohos') {
result = platform.TargetPlatform.ohos;
}
assert(() {
diff --git a/packages/flutter/lib/src/widgets/scroll_view.dart b/packages/flutter/lib/src/widgets/scroll_view.dart
index 1c94377d573daf17f29872d83d1e9a16ce6b08b0..2f73a8f7542c8f4a7f1a7d7df135e88a2f6a2da4 100644
--- a/packages/flutter/lib/src/widgets/scroll_view.dart
+++ b/packages/flutter/lib/src/widgets/scroll_view.dart
@@ -419,7 +419,7 @@ abstract class ScrollView extends StatelessWidget {
axisDirection: axisDirection,
controller: scrollController,
physics: physics,
- scrollBehavior: scrollBehavior,
+ scrollBehavior: ScrollConfiguration.of(context).copyWith(scrollbars:false),
semanticChildCount: semanticChildCount,
restorationId: restorationId,
viewportBuilder: (BuildContext context, ViewportOffset offset) {
diff --git a/packages/flutter_tools/lib/src/commands/clean.dart b/packages/flutter_tools/lib/src/commands/clean.dart
index fbcae995c39e92e4b1967d379c28f88d329fde5b..14f3be9032c12a60790c346967ab6bec50913fdc 100644
--- a/packages/flutter_tools/lib/src/commands/clean.dart
+++ b/packages/flutter_tools/lib/src/commands/clean.dart
@@ -68,6 +68,7 @@ class CleanCommand extends FlutterCommand {
deleteFile(flutterProject.flutterPluginsFile);
flutterProject.ohos.deleteOhModulesCache();
+ deleteFile(flutterProject.ohos.ephemeralDirectory);
return const FlutterCommandResult(ExitStatus.success);
}
diff --git a/packages/flutter_tools/lib/src/flutter_plugins.dart b/packages/flutter_tools/lib/src/flutter_plugins.dart
index 221c92f275ab2e4c0eef018df3af02defb7e45dd..069e7848d88ff6094f44e8476dcfa9d1433cb71d 100644
--- a/packages/flutter_tools/lib/src/flutter_plugins.dart
+++ b/packages/flutter_tools/lib/src/flutter_plugins.dart
@@ -789,7 +789,7 @@ $_dartPluginRegisterWith
{{#windows}}
$_dartPluginRegisterWith
{{/windows}}
- } else if (Platform.isOhos) {
+ } else if (Platform.operatingSystem == 'ohos') {
{{#ohos}}
$_dartPluginRegisterWith
{{/ohos}}
diff --git a/packages/flutter_tools/lib/src/ohos/hvigor.dart b/packages/flutter_tools/lib/src/ohos/hvigor.dart
index b03f4560811ebf3658eeeeb9619a7bef0ac341dc..32579fac51fe61f1be0d523541e309943bd1fe8b 100644
--- a/packages/flutter_tools/lib/src/ohos/hvigor.dart
+++ b/packages/flutter_tools/lib/src/ohos/hvigor.dart
@@ -755,6 +755,10 @@ class OhosHvigorBuilder implements OhosBuilder {
throwToolExit('current project is not module or has not pub get');
}
parseData(flutterProject, logger);
+
+ /// 检查plugin的har构建
+ await checkPluginsHarUpdate(flutterProject, buildInfo, ohosBuildData);
+
await flutterBuildPre(flutterProject, buildInfo,
targetPlatform: targetPlatform, logger: logger);
diff --git a/packages/flutter_tools/lib/src/ohos/ohos_dependencies_manager.dart b/packages/flutter_tools/lib/src/ohos/ohos_dependencies_manager.dart
index 18e2ab25e46d4a4b49b6f3e4216b79182dc62615..c2f611d7a4b68ab747432e9120b9285b7da81fcc 100644
--- a/packages/flutter_tools/lib/src/ohos/ohos_dependencies_manager.dart
+++ b/packages/flutter_tools/lib/src/ohos/ohos_dependencies_manager.dart
@@ -66,7 +66,7 @@ Future checkOhosPluginsDependencies(FlutterProject flutterProject) async {
/// 查询所有的normal依赖
final List list = getOhosDependenciesListFromPackageFile(
- flutterProject.ohos.mainModulePackageFile,
+ flutterProject.ohos.flutterModulePackageFile,
dependenceType: DependenceType.normal);
final List hasInstallPlugin =
list.map((OhosDependence e) => e.baseModuleName).toList();
@@ -86,7 +86,7 @@ Future checkOhosPluginsDependencies(FlutterProject flutterProject) async {
OhosDependence transform(OhosPlugin ohosPlugin, DependenceType dependenceType) {
return OhosDependence('@ohos/${ohosPlugin.name}', ohosPlugin.name,
- '../har/${ohosPlugin.name}.har', dependenceType);
+ './har/${ohosPlugin.name}.har', dependenceType);
}
/// 解析dependence列表,dependenceType为空时,返回normal和dev的合集。
@@ -126,16 +126,16 @@ List parseDependenciesFromType(
Future addDependencies(
FlutterProject flutterProject, List list) async {
final dynamic config =
- parsePakcageConfig(flutterProject.ohos.mainModulePackageFile);
+ parsePakcageConfig(flutterProject.ohos.flutterModulePackageFile);
final Map dependencies =
config['dependencies'] as Map;
for (final OhosDependence dependence in list) {
dependencies[dependence.moduleName] =
- 'file:../har/${dependence.baseModuleName}.har';
+ 'file:./har/${dependence.baseModuleName}.har';
}
final String configNew = JSON5.stringify(config, space: 2);
- flutterProject.ohos.mainModulePackageFile
+ flutterProject.ohos.flutterModulePackageFile
.writeAsStringSync(configNew, flush: true);
}
diff --git a/packages/flutter_tools/lib/src/ohos/ohos_plugins_manager.dart b/packages/flutter_tools/lib/src/ohos/ohos_plugins_manager.dart
index 486e010524963987a0f003031cc49ea7350ddec8..5006744f61cbbab96bae12fcce500766751f3f56 100644
--- a/packages/flutter_tools/lib/src/ohos/ohos_plugins_manager.dart
+++ b/packages/flutter_tools/lib/src/ohos/ohos_plugins_manager.dart
@@ -74,7 +74,7 @@ Future checkPluginsHarUpdate(FlutterProject flutterProject,
for (final String path in harPaths) {
final File originFile = globals.fs.file(path);
final String descPath = globals.fs.path.join(
- flutterProject.ohos.ohosRoot.childDirectory('har').path,
+ flutterProject.ohos.flutterModuleDirectory.childDirectory('har').path,
originFile.basename);
originFile.copySync(descPath);
}
diff --git a/packages/flutter_tools/lib/src/ohos/ohos_sdk.dart b/packages/flutter_tools/lib/src/ohos/ohos_sdk.dart
index 2531984905e04c4b71a3e3c032f8406e3215048e..46289c15c2e3b4fd721e1e95459b81effcc3b05b 100644
--- a/packages/flutter_tools/lib/src/ohos/ohos_sdk.dart
+++ b/packages/flutter_tools/lib/src/ohos/ohos_sdk.dart
@@ -22,7 +22,7 @@ const String kOhosSdkRoot = 'OHOS_SDK_HOME';
// HarmonyOS SDK
const String kHmosHome = 'HOS_SDK_HOME';
-const List supportSdkVersion = ['8', '9', '10'];
+const List supportSdkVersion = ['10', '11', '9'];
class OhosSdk {
OhosSdk(this._sdkDir) {
diff --git a/packages/flutter_tools/lib/src/project.dart b/packages/flutter_tools/lib/src/project.dart
index 6f622c872acfa09e8843d3a97712cf0eac129b01..7365689b58088583554701e20dfe169c4c20a8f9 100644
--- a/packages/flutter_tools/lib/src/project.dart
+++ b/packages/flutter_tools/lib/src/project.dart
@@ -954,8 +954,8 @@ class OhosProject extends FlutterProjectPlatform {
.childDirectory('default')
.childFile('entry-default-signed.hap');
- File get mainModulePackageFile =>
- mainModuleDirectory.childFile('oh-package.json5');
+ File get flutterModulePackageFile =>
+ flutterModuleDirectory.childFile('oh-package.json5');
File get localPropertiesFile => ohosRoot.childFile('local.properties');
diff --git a/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/har_product.tmpl/flutter_embedding.har.debug.10 b/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/har_product.tmpl/flutter_embedding.har.debug.10
index 457d0d83b2e998db5c79e2a92d2a360e81071162..d2497409438e6e02d1fdb3c3ea8d096813e1e70b 100644
Binary files a/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/har_product.tmpl/flutter_embedding.har.debug.10 and b/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/har_product.tmpl/flutter_embedding.har.debug.10 differ
diff --git a/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/har_product.tmpl/flutter_embedding.har.profile.10 b/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/har_product.tmpl/flutter_embedding.har.profile.10
index 4d39a4f2db09eaf2e549e7c569535f22ea474ff1..c40c6365d9ae3c8500f5bb7663675eea06fd2b31 100644
Binary files a/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/har_product.tmpl/flutter_embedding.har.profile.10 and b/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/har_product.tmpl/flutter_embedding.har.profile.10 differ
diff --git a/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/har_product.tmpl/flutter_embedding.har.release.10 b/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/har_product.tmpl/flutter_embedding.har.release.10
index 223c678869e3d73e36a6ed427aa9e6952e90c491..13faa13936939abf0b57681107f4622de9b500ed 100644
Binary files a/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/har_product.tmpl/flutter_embedding.har.release.10 and b/packages/flutter_tools/templates/app_shared/ohos.tmpl/har/har_product.tmpl/flutter_embedding.har.release.10 differ