diff --git a/zh-cn/fabric.md b/zh-cn/fabric.md index 5b84f93e611ee3a591a7e1cdac319f8473fea2fb..06289725e4f1054b73c41cad6198d1f772757817 100644 --- a/zh-cn/fabric.md +++ b/zh-cn/fabric.md @@ -162,12 +162,12 @@ shared 是 package.json 文件中的一个配置项,它将在 yarn 安装模 android ├── build.gradle └── src -└── main -├── AndroidManifest.xml -└── java -└── com -└── rtncenteredtext -└── RTNCenteredTextPackage.java + └── main + ├── AndroidManifest.xml + └── java + └── com + └── rtncenteredtext + └── RTNCenteredTextPackage.java ``` 首先,在 `android` 目录创建 `build.gradle` 文件,并配置以下内容: @@ -301,28 +301,28 @@ cd android ```md codegen ├── java -│ └── com -│ └── facebook -│ └── react -│ └── viewmanagers -│ ├── RTNCenteredTextManagerDelegate.java -│ └── RTNCenteredTextManagerInterface.java +│ └── com +│ └── facebook +│ └── react +│ └── viewmanagers +│ ├── RTNCenteredTextManagerDelegate.java +│ └── RTNCenteredTextManagerInterface.java ├── jni -│ ├── Android.mk -│ ├── CMakeLists.txt -│ ├── RTNCenteredText-generated.cpp -│ ├── RTNCenteredText.h -│ └── react -│ └── renderer -│ └── components -│ └── RTNCenteredText -│ ├── ComponentDescriptors.h -│ ├── EventEmitters.cpp -│ ├── EventEmitters.h -│ ├── Props.cpp -│ ├── Props.h -│ ├── ShadowNodes.cpp -│ └── ShadowNodes.h +│ ├── Android.mk +│ ├── CMakeLists.txt +│ ├── RTNCenteredText-generated.cpp +│ ├── RTNCenteredText.h +│ └── react +│ └── renderer +│ └── components +│ └── RTNCenteredText +│ ├── ComponentDescriptors.h +│ ├── EventEmitters.cpp +│ ├── EventEmitters.h +│ ├── Props.cpp +│ ├── Props.h +│ ├── ShadowNodes.cpp +│ └── ShadowNodes.h └── schema.json ``` @@ -342,29 +342,45 @@ codegen ```md harmony └── rtn-centered-text -├── src -│ └── main -│ ├── cpp -│ │ ├── ComponentDescriptors.h -│ │ ├── EventEmitters.cpp -│ │ ├── EventEmitters.h -│ │ ├── Props.cpp -│ │ ├── Props.h -│ │ ├── ShadowNodes.cpp -│ │ ├── ShadowNodes.h -│ │ ├── CenteredTextJSIBinder.h -│ │ ├── CenteredTextNapiBinder.h -│ │ └── CenteredTextPackage.h -│ ├──ets -│ └── modules.json5 - ├── build-profile.json5 -├── hvigorfile.ts -├── index.ets -├── oh-package.json5 -└── ts.ts -``` - -**CenteredTextJSIBinder.h** + ├── src + │ └── main + │ ├── cpp + │ │ ├── CMakeLists.txt + │ │ ├── ComponentDescriptors.h + │ │ ├── EventEmitters.cpp + │ │ ├── EventEmitters.h + │ │ ├── Props.cpp + │ │ ├── Props.h + │ │ ├── ShadowNodes.cpp + │ │ ├── ShadowNodes.h + │ │ ├── CenteredTextJSIBinder.h + │ │ ├── CenteredTextNapiBinder.h + │ │ └── CenteredTextPackage.h + │ ├──ets + │ └── modules.json5 + ├── build-profile.json5 + ├── hvigorfile.ts + ├── index.ets + ├── oh-package.json5 + └── ts.ts +``` + + + +#### **CMakeLists.txt** + +```c +# the minimum version of CMake +cmake_minimum_required(VERSION 3.13) +set(CMAKE_VERBOSE_MAKEFILE on) + +file(GLOB rnoh_centered_text_SRC CONFIGURE_DEPENDS *.cpp) +add_library(rnoh_centered_text SHARED ${rnoh_centered_text_SRC}) +target_include_directories(rnoh_centered_text PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) +target_link_libraries(rnoh_centered_text PUBLIC rnoh) +``` + + @@ -389,8 +405,6 @@ class CenteredTextJSIBinder : public ViewComponentJSIBinder { JSI Binder 的作用是桥接 JS 和 C++,将属性从 JS 端传递到 C++ 端。 -**CenteredTextNapiBinder.h** - #### **CenteredTextNapiBinder.h** @@ -421,8 +435,6 @@ public: Napi Binder 的作用是桥接 C++ 和 ArkTs ,将属性从 C++ 端传递到 ArkTs 端。 -**CenteredTextPackage.h** - #### **CenteredTextPackage.h** @@ -474,18 +486,16 @@ Android 第三方库目录文件结构应为如下: android ├── build.gradle └── src -└── main -├── AndroidManifest.xml -└── java -└── com -└── rtncenteredtext -├── RTNCenteredText.java -├── RTNCenteredTextManager.java -└── RTNCenteredTextPackage.java + └── main + ├── AndroidManifest.xml + └── java + └── com + └── rtncenteredtext + ├── RTNCenteredText.java + ├── RTNCenteredTextManager.java + └── RTNCenteredTextPackage.java ``` -**RTNCenteredText.java** - #### **RTNCenteredText.java** @@ -529,8 +539,6 @@ public class RTNCenteredText extends TextView { 这个类表示的是原生视图,将由 Android 渲染到屏幕上。它继承了 TextView 并且调用私有方法 configureComponent() 来配置自身的基本参数。 -**RTNCenteredTextManager.java** - #### **RTNCenteredTextManager.java** @@ -647,29 +655,28 @@ Harmony 第三方库目录文件结构应为如下: ```md harmony └── rtn-centered-text -├── src -│ └── main -│ ├── cpp -│ │ ├── ComponentDescriptors.h -│ │ ├── EventEmitters.cpp -│ │ ├── EventEmitters.h -│ │ ├── Props.cpp -│ │ ├── Props.h -│ │ ├── ShadowNodes.cpp -│ │ ├── ShadowNodes.h -│ │ ├── CenteredTextJSIBinder.h -│ │ ├── CenteredTextNapiBinder.h -│ │ └── CenteredTextPackage.h -│ ├──ets -│ │ └── RTNCenteredText.ets -│ └── modules.json5 - ├── build-profile.json5 -├── hvigorfile.ts -├── oh-package.json5 -└── index.ets -``` - -**RTNCenteredText.ets** + ├── src + │ └── main + │ ├── cpp + │ │ ├── CMakeLists.txt + │ │ ├── ComponentDescriptors.h + │ │ ├── EventEmitters.cpp + │ │ ├── EventEmitters.h + │ │ ├── Props.cpp + │ │ ├── Props.h + │ │ ├── ShadowNodes.cpp + │ │ ├── ShadowNodes.h + │ │ ├── CenteredTextJSIBinder.h + │ │ ├── CenteredTextNapiBinder.h + │ │ └── CenteredTextPackage.h + │ ├──ets + │ │ └── RTNCenteredText.ets + │ └── modules.json5 + ├── build-profile.json5 + ├── hvigorfile.ts + ├── oh-package.json5 + └── index.ets +``` diff --git a/zh-cn/turbomodule.md b/zh-cn/turbomodule.md index 70df8c4428c0d3d5445a262b2a756d2396bb38c4..781fdc9412d2875f58d8bdcb6c9e171e4b7fb9ca 100644 --- a/zh-cn/turbomodule.md +++ b/zh-cn/turbomodule.md @@ -25,10 +25,10 @@ Turbo Modules 是升级版的 Native Modules,是基于 JSI 开发的一套 JS ```md . └── RTNCalculator -├── android(Android 的原生实现代码) -├── ios(iOS 的原生实现代码) -├── harmony(Harmony 的原生实现代码) -└── src (js/ts 代码) + ├── android(Android 的原生实现代码) + ├── ios(iOS 的原生实现代码) + ├── harmony(Harmony 的原生实现代码) + └── src (js/ts代码) ``` ### 2. 声明 JavaScript 接口 @@ -158,12 +158,12 @@ shared 是 package.json 文件中的一个配置项,它将在 yarn 安装模 android ├── build.gradle └── src -└── main -├── AndroidManifest.xml -└── java -└── com -└── rtncalculator -└── CalculatorPackage.java + └── main + ├── AndroidManifest.xml + └── java + └── com + └── rtncalculator + └── CalculatorPackage.java ``` 首先,在 `android` 目录创建 `build.gradle` 文件,并配置以下内容: @@ -275,20 +275,20 @@ Codegen 会在 App 编译的时候自动运行。 ```md harmony └── rtn-calculator -├── src -│ └── main -│ ├── cpp -│ │ ├── CalculatorPacakge.h -│ │ ├── CMakeLists.txt -│ │ ├── CalculatorTurboModule.cpp -│ │ └── CalculatorTurboModule.h -│ ├──ets -│ └── modules.json5 - ├── build-profile.json5 -├── hvigorfile.ts -├── index.ets -├── oh-package.json5 -└── ts.ts + ├── src + │ └── main + │ ├── cpp + │ │ ├── CalculatorPacakge.h + │ │ ├── CMakeLists.txt + │ │ ├── CalculatorTurboModule.cpp + │ │ └── CalculatorTurboModule.h + │ ├──ets + │ └── modules.json5 + ├── build-profile.json5 + ├── hvigorfile.ts + ├── index.ets + ├── oh-package.json5 + └── ts.ts ``` @@ -395,16 +395,16 @@ Android 平台上 Turbo Native Module 的原生代码需执行如下步骤: Android 第三方库目录文件结构应为如下: ```md -android + android ├── build.gradle └── src -└── main -├── AndroidManifest.xml -└── java -└── com -└── rtncalculator -├── CalculatorModule.java -└── CalculatorPackage.java + └── main + ├── AndroidManifest.xml + └── java + └── com + └── rtncalculator + ├── CalculatorModule.java + └── CalculatorPackage.java ``` 创建 CalculatorModule.java @@ -525,22 +525,22 @@ Harmony 第三方库目录文件结构应为如下: ```md harmony └── rtn-calculator -├── src -│ └── main -│ ├── cpp -│ │ ├── CalculatorPacakge.h -│ │ ├── CMakeLists.txt -│ │ ├── CalculatorTurboModule.cpp -│ │ └── CalculatorTurboModule.h -│ ├──ets -│ │ ├── CalculatorModule.ts -│ │ └── CalculatorPackage.ts -│ └── modules.json5 - ├── build-profile.json5 -├── hvigorfile.ts -├── index.ets -├── oh-package.json5 -└── ts.ts + ├── src + │ └── main + │ ├── cpp + │ │ ├── CalculatorPacakge.h + │ │ ├── CMakeLists.txt + │ │ ├── CalculatorTurboModule.cpp + │ │ └── CalculatorTurboModule.h + │ ├──ets + │ │ ├── CalculatorModule.ts + │ │ └── CalculatorPackage.ts + │ └── modules.json5 + ├── build-profile.json5 + ├── hvigorfile.ts + ├── index.ets + ├── oh-package.json5 + └── ts.ts ``` 创建 `CalculatorModule.ts`