From 7470e22b623de2901572eeea14bf97bf4e7e1f64 Mon Sep 17 00:00:00 2001 From: maxli Date: Tue, 13 May 2025 11:08:19 +0800 Subject: [PATCH] feat(doc): update android integration document --- README.md | 8 ++-- docs/assets/img/android-studio-jdk.png | Bin 0 -> 56313 bytes .../android-3.0-integration-guidelines.md | 19 +++++++-- docs/development/demo.md | 39 +++++++----------- 4 files changed, 33 insertions(+), 33 deletions(-) create mode 100644 docs/assets/img/android-studio-jdk.png diff --git a/README.md b/README.md index 2e5ef7bb3f6..f362425dcdb 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ For iOS, we recommend to use iOS simulator when first try. However, you can chan > If `Step 2` throw error, you can `cd` to `driver/js/examples` hippy-react-demo or hippy-vue-demo, and run `npm install` to install demo dependencies first. > -> More details for [iOS SDK integration](https://hippyjs.org/#/ios/integration?id=ios-%e9%9b%86%e6%88%90). +> More details for [iOS SDK integration](https://doc.openhippy.com/#/development/ios-3.0-integration-guidelines). ### Build the Android app with js demo @@ -97,7 +97,7 @@ Before build the android app, please make sure the SDK and NDK is installed, And > > If you encounter the issue of `No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android`, here is the [solution](https://github.com/google/filament/issues/15#issuecomment-415423557). > -> More details for [Android SDK integration](https://hippyjs.org/#/android/integration?id=android-%e9%9b%86%e6%88%90). +> More details for [Android SDK integration](https://doc.openhippy.com/#/development/android-3.0-integration-guidelines). ### Debug the js demo @@ -110,7 +110,7 @@ Before build the android app, please make sure the SDK and NDK is installed, And > > On example debug mode, npm packages such as @hippy/react, @hippy/vue, @hippy/vue-next are linked to `driver/js/packages` > `[different package]` > `dist`(not node_modules), so if you have changed js package source code and want to make it take effect in target example, please call `npm run build` again. > -> More details for debugging can be read in [Hippy Debug Document](https://hippyjs.org/#/guide/debug). +> More details for debugging can be read in [Hippy Debug Document](https://doc.openhippy.com/#/development/debug). ### Build the js production demo @@ -123,7 +123,7 @@ Before build the android app, please make sure the SDK and NDK is installed, And ## 📁 Documentation -To check out [hippy examples](https://github.com/Tencent/Hippy/tree/master/examples) and visit [hippyjs.org](https://hippyjs.org). +To check out [hippy examples](https://github.com/Tencent/Hippy/tree/master/examples) and visit [openhippy.com](https://openhippy.com/). ## 📅 Changelog diff --git a/docs/assets/img/android-studio-jdk.png b/docs/assets/img/android-studio-jdk.png new file mode 100644 index 0000000000000000000000000000000000000000..6c2755dcba08008fdbc1b78826a82fe716f35796 GIT binary patch literal 56313 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
SZ17i{ni`muO|fX*XI{u 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

2K>LO?)21T#14u$AXrtN%QoaK> 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.7 并配置了环境变量 -- 已经安装 Android Studio 最新版本 -- 运行 Demo 工程前需要完成 NDK,CMAKE,gradle 与相关插件的安装 +1. NDK、 CMake、 Gradle及AGP版本已经在工程配置文件中指定,其中NDK会在第一次Sync project的时候自动安装,CMake需要开发者在Settings > Android SDK中手动下载并设置 + + - NDK_VERSION = 25.0.8775105 + - CMAKE_VERSION = 3.22.1 + - GRADLE_VERSION = 7.4 + - AGP_VERSION = 7.2.2 + + !> 由于暂未对8.x AGP及Gradle版本作适配,请忽略Android Studio中弹出的AGP升级提示。 + +2. Settings > Build, Execution, Deployment > Build Tools > Gradle中下载并设置Version 17的JDK版本 + + JDK + +3. 执行Sync project完成gradle构建 ## Demo 体验 diff --git a/docs/development/demo.md b/docs/development/demo.md index 9f310b7c1c2..1110e9c19bb 100644 --- a/docs/development/demo.md +++ b/docs/development/demo.md @@ -25,6 +25,19 @@ Demo的Native工程代码位于framework/examples目录,前端工程代码位 brew install git git-lfs node@16 cmake ``` +### Windows开发环境 + +可以Windows上开发Android和Ohos应用,请安装以下依赖。 + +1. Git for Windows + + 通过(https://gitforwindows.org)下载安装Git for Windows + +2. Node和NPM + + 通过指引安装[nodejs和npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm),建议使用Node v16,NPM v7版本 + + #### 编译iOS Demo环境准备 1. Xcode @@ -42,36 +55,13 @@ brew install git git-lfs node@16 cmake 通过android开发者平台下载安装[Android Studio](https://developer.android.com/studio) -2. Android NDK - - 通过android开发者平台下载安装[NDK](https://developer.android.com/ndk?hl=en) +2. Android Studio环境配置参考[3.0集成指引章节](development/android-3.0-integration-guidelines) #### 编译Ohos Demo环境准备 1. DevEco Studio 通过Ohos开发者平台下载安装[DevEco Studio](https://developer.huawei.com/consumer/cn/download/) -### Windows开发环境 - -可以Windows上开发Android应用,请安装以下依赖。 - -1. Android Studio - - 通过android开发者平台下载安装[Android Studio](https://developer.android.com/studio) - -2. Android NDK - - 通过android开发者平台下载安装[NDK](https://developer.android.com/ndk?hl=en) - -3. Git for Windows - - 通过(https://gitforwindows.org)下载安装Git for Windows - -4. Node和NPM - - 通过指引安装[nodejs和npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm),建议使用Node v16,NPM v7版本 - -也可以Windows上开发Ohos应用,请安装DevEco Studio、Git、Node和NPM。 ## 代码拉取 @@ -240,4 +230,3 @@ cp -R driver/js/examples/hippy-react-demo/dist/android/* framework/examples/and Demo效果 -恭喜你完成了Hippy的初步体验,下一步参考[Native工程集成章节](development/native-integration)将Hippy接入到你现有的工程吧。