Skip to content

Commit

Permalink
Chinese manual up-to-date (#378)
Browse files Browse the repository at this point in the history
* update physics

* update input

* update

* update code sharing in getting-help.md

* Export Compliance

* update on file i/o

* pi / 4

* inputs

* forum url

* read only user

* html5 gamepad

* sdk api update

* update

* image properties

* update editor

* defold sdk update

* animation updates

* animation fix

* run as admin

* update bob

* update about AndroidX support

* software render

* linux-faq.md update

* 4.28.2021 updates

* Basis Universal format

* sound & mesh

* gamepad event mapping

* admob url

* Minor edit to building blocks intro text

* update gamepad & ios

* project settings

* libffi version

* scaling

* image compression

* update gamepads

* increase memory

* caching assets

* update 2021/10/6

* update 2021/10/16
blend-modes.md

* update 2021/11/12

* allow dynamic transforms update

* Bundle update

* update faq

* bullet & bob

* script properties update

* editor-styling

* build server url

* editor templates

* spine extension update

* Fix typo in the "optimizations" word in Chinese docs

* Update to material.md - Constants buffers

* Verify Graphics Calls

* H5 parameters

* OpenJDK downloads

* cn update corresponds to [pull 259](#259)

* application security

* porting guidelines

* update for 8f1651f

* cn update for 094bf6f

* cn update for 20fdfc5 & 6263317

* cn update for 7/19/2022

* title

* profiling update

* update editor.md

* update bob.md

* update shortcuts

* update fixed update note

* Update properties.md

* Update material.md

* Updates links

* Update bob help with the latest info

* camera & renderer

* Updated android keystore info zh_cn

* bundling.md release vs debug zh_cn

* update bob.md & gui-clipping.md

* contentless bundle

* consoles update

* model animation link

* gamepad & faq

* remove a camera lib

* font shadow render mode fix

* updates about app-manifest and others

* Update script.md

* includes in shaders

* editor scripts

* material updates

* Added dynamic atlas and texture creation

* fixes for atlas and some others

* update screenshots and add explanations (CN)

* add a line about Dynamic Prototype (CN)

* remove "inline" marks in pics

* de-translate the subtitle "Running the debugger" & images fix

* bundle identifier restrictions

* node properties Enabled and Visible (CN)

* release checklist & slice-9

* Update project-settings.md (CN)

* Update camera.md (CN)

* Update project-settings.md (CN)

* culling of meshes (CN)

* Update project-settings.md (CN)

* gltf model file support (CN)

* updates about factory (CN)

* Update bob.md (CN)

* Update bob.jar help (CN)

* Update about renderer and other things

* Update PS4 development and other things

* Dynamic prototype part of the collection factory.

* sync to atlas.md

* sync to design.md

* sync to gpgs.md

* sync to hot-reload.md

* sync to linux.md

* sync to live-update.md

* sync to lua.md

* sync to networking.md

* sync to physics-shapes.md

* sync to push.md

* sync to test.md

* sync to working-offline.md

* update material.md

* update zerobrane.md

* all done
  • Loading branch information
CocosGames authored Jan 26, 2024
1 parent cf2a02b commit 685694b
Show file tree
Hide file tree
Showing 64 changed files with 864 additions and 861 deletions.
18 changes: 11 additions & 7 deletions docs/zh/manuals/bob.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,16 @@ Bob 是一个用于Defold项目编辑器之外的命令行编译工具.

Bob 用来编译操作 (对应编辑器里的 <kbd>Project ▸ Build</kbd>), 来创建数据档或者创建可独立发布的应用 (对应编辑器里的 <kbd>Project ▸ Bundle ▸ ...</kbd> 选项)

Bob 集合了编译所需的一切, 作为Java包 _JAR_ 发布. 最新的 *bob.jar* 发布在 [Defold 下载页](http://d.defold.com)[GitHub 发布页](https://github.com/defold/defold/releases) 上. 选择一个版本, 下载 *bob/bob.jar*. 运行这个工具, 您需要安装 OpenJDK 17.
Bob 集合了编译所需的一切, 作为Java包 _JAR_ 发布. 最新的 *bob.jar* 发布在 [Defold 下载页](http://d.defold.com)[GitHub 发布页](https://github.com/defold/defold/releases) 上. 选择一个版本, 下载 *bob/bob.jar*. 如果你使用的是 Defold 1.4.8, 您需要安装 OpenJDK 17. 对于 Defold 老版本, 你需要 openJDK 11.

下载 OpenJDK 17 的地址:
兼容 OpenJDK 17 镜像 (自从 Defold 1.4.8):
* https://docs.microsoft.com/en-us/java/openjdk/download#openjdk-17
* https://github.com/adoptium/temurin17-binaries/releases / https://adoptium.net/

兼容 OpenJDK 11 镜像 (最高到 Defold 1.4.7):
* https://docs.microsoft.com/en-us/java/openjdk/download#openjdk-11
* https://github.com/adoptium/temurin11-binaries/releases / https://adoptium.net/

比如在 Windows 平台上, 需要下载 OpenJDK 17 的 .msi 安装包.

## 用法
Expand All @@ -34,9 +38,8 @@ usage: bob [options] [commands]
-bo,--bundle-output <arg> 打包输出目录
-br,--build-report <arg> 自从 Defold 1.4.6 版本后已弃用!
使用 --build-report-json 代替
-brjson,--build-report-json <arg> 保存 JSON 编译报告的文件路径位置
(自从 Defold 1.4.6 版本启用)
-brhtml,--build-report-html <arg> 指定编译生成的HTML报告的存放地址
-brjson,--build-report-json <arg> 保存 JSON 编译报告的文件路径位置 (自从 Defold 1.4.6 版本启用)
--build-artifacts <arg> 不指定的话默认为编译engine.
可选项为 'engine', 'plugins'.
以逗号分隔.
Expand All @@ -49,8 +52,8 @@ usage: bob [options] [commands]
--defoldsdk <arg> 指定 defold sdk (sha1) 使用版本
-e,--email <arg> 用户电邮
-ea,--exclude-archive 要从打包中排除的资源档案. 以此创建空应用用作编译目标
--exclude-build-folder DEPRECATED from Defold 1.5.1! Use
'.defignore' file instead
--exclude-build-folder 自从 Defold 1.5.1 已弃用! 使用
'.defignore' 文件代替
-h,--help 该命令的帮助文档
-i,--input <arg> 指定源目录, 默认是当前目录
--identity <arg> 指定签名 (iOS)
Expand Down Expand Up @@ -140,7 +143,8 @@ usage: bob [options] [commands]
`armv7-android`
: Android 支持 32 bit `armv7-android` 和 64 bit `arm64-android` 架构. 默认情况下, `--architectures` 参数值为 `armv7-android,arm64-android`.

`js-web` : HTML5 支持 `js-web``wasm-web` 架构. 默认情况下, `--architectures` 参数值为 `js-web,wasm-web`.
`js-web`
: HTML5 支持 `js-web``wasm-web` 架构. 默认情况下, `--architectures` 参数值为 `js-web,wasm-web`.

默认情况下, Bob 在当前目录下寻找项目来编译. 切换到 Defold 项目目录下使用 bob, 它会把数据编译到默认输出 *build/default* 目录下.

Expand Down
6 changes: 5 additions & 1 deletion docs/zh/manuals/building-blocks.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,10 @@ go.animate("can", "position.x", go.PLAYBACK_LOOP_PINGPONG, 100, go.EASING_LINEAR

修改了原型文件, 那么它的所有实例都能一同被修改.

![GO changing prototype](images/building_blocks/go_change_blueprint.png){srcset="images/building_blocks/go_change_blueprint@2x.png 2x"}

这里原型的 sprite 图片被更改, 同时所有使用该文件的实例都被更新:

![GO instances updated](images/building_blocks/go_instance2.png){srcset="images/building_blocks/go_instance2@2x.png 2x"}

## 游戏对象层级
Expand All @@ -107,6 +111,6 @@ local parent = go.get_id("bean")
msg.post("child_bean", "set_parent", { parent_id = parent })
```

::: sidenote
::: important
一个常见的误解是对象层级改变了那么它的定位地址也会改变. 但是, 这其实是两码事. 父子关系改变的是场景的层级. 集合嵌套关系才决定对象地址. 在对象整个生命周期中, 地址是不会变化的.
:::
9 changes: 9 additions & 0 deletions docs/zh/manuals/camera.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,15 @@ end
`orthographic_zoom`
: 平视摄像机缩放 (`number`).

`aspect_ratio`
: 自从 Defold 1.4.8 加入. 视口宽高比. 在计算透视摄像机投射时使用. (`number`).

`view`
: 自从 Defold 1.4.8 加入. 摄像机视口矩阵值. 只读. (`matrix4`).

`projection`
: 自从 Defold 1.4.8 加入. 摄像机投射矩阵值. 只读. (`matrix4`).


## 第三方摄像机解决方案

Expand Down
4 changes: 3 additions & 1 deletion docs/zh/manuals/components.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ Defold 组件属性各不相同.在 [Outline 面板](/manuals/editor/#Outline

例如: 两个游戏对象 A 和 B. B 是 A 的子集. B 有一个sprite组件.

| 元素 | z值 |
| 元素 | z值 |
|----------|---------|
| A | 2 |
| B | 1 |
Expand All @@ -103,3 +103,5 @@ Defold 组件属性各不相同.在 [Outline 面板](/manuals/editor/#Outline
渲染脚本为 z 值定义了极近端和极远端平面. z值在此范围之外的组件不会被渲染. 默认范围是 -1 到 1 但是 [可以任意修改](/manuals/render/#默认视口映射).
Z 值得极近与极远坐标范围是 -1 到 1 的话, 需要很高的数值精度. 在处理 3D 资源时, 可能需要在你的自定义渲染脚本中修改极近和极远的坐标范围. 详情请见 [渲染教程](/manuals/render/).
:::

:[组件最大数配置](../shared/component-max-count-optimizations.md)
7 changes: 7 additions & 0 deletions docs/zh/manuals/debugging-game-logic.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,13 @@ Step Out

设置/清除断点, 可以在代码编辑器里行号右边右键点击. 还可以从菜单中选择 <kbd>Edit ▸ Toggle Breakpoint</kbd>.

设置条件断点
: 可以设置需要计算条件为真才触发的断点. 条件可以读取随着代码执行当前行的本地变量.

![edit breakpoint](images/debugging/edit_breakpoint.png){srcset="images/debugging/edit_breakpoint@2x.png 2x"}

要编辑断电条件, 右键点击代码编辑器行号的右边的列, 或者从菜单栏点选 <kbd>Edit ▸ Edit Breakpoint</kbd>.

执行Lua表达式
: 调试器停在断点上时, 可以直接使用包含有当前上下文的 Lua 运行时. 在控制台底部输入表达式后按 <kbd>回车键</kbd> 来运行:

Expand Down
3 changes: 2 additions & 1 deletion docs/zh/manuals/debugging-native-code-android.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ brief: 本教程介绍了在使用 Android Studio 调试游戏的方法.

下面介绍了如何使用 [Android Studio](https://developer.android.com/studio/), 即 Google 的 Android 操作系统的官方 IDE, 来调试游戏的方法.


## Android Studio

**game.project* 中设置 `android.debuggable`
Expand Down Expand Up @@ -45,7 +46,7 @@ brief: 本教程介绍了在使用 Android Studio 调试游戏的方法.

* 注意一定要获取与你所用版本完全一致的引擎版本

defold$ git checkout 1.2.148
defold$ git checkout 1.2.148

* 点击 `Apply changes`

Expand Down
6 changes: 5 additions & 1 deletion docs/zh/manuals/debugging-native-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,10 @@ Defold 几经测试鲜有崩溃情况出现. 但是崩溃这种事谁能保证

可以使用 [崩溃模块](https://www.defold.com/ref/crash/) 帮助分析这个文件. 推荐你阅读, 收集信息, 打印信息到控制台, 然后把信息发送到 [第三方分析服务](/tags/stars/analytics/) 上去.

::: important
在 Windows 上还有个 `_crash.dmp` 文件被创建. 这个文件在调试崩溃时很有用.
:::

### 从设备上获取崩溃日志

手机上的崩溃日志可以下载到本地以便查看.
Expand Down Expand Up @@ -82,7 +86,7 @@ $ adb shell "run-as com.defold.example sh -c 'cat /data/data/com.defold.example/
* HTML5 - 在 `build/js-web``build/wasm-web` 下的 `dmengine.js.symbols` 中包含有 HTML5 编译用 debug symbols.


::: sidenote
::: important
对于游戏的每个发布版本一定要保留一套对应的调试数据. 不然的话原生扩展上线以后出错误就没法调试! 为了方便查看调用堆栈, 也要保存好对应的游戏引擎.
:::

Expand Down
8 changes: 1 addition & 7 deletions docs/zh/manuals/dev-app.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,7 @@ brief: 本教程介绍了如何在设备上安装开发用app以方便开发流

## 安装开发用app

Debug 模式下编译的任何 iOS 或 Android 应用都可以作为开发用app. 事实上, 我们推荐这么做因为开发用app包含正确的项目配置而且拥有和开发时使用的相同的 [原生扩展](/manuals/extensions/). 还有 [Defold 的独立项目](https://github.com/defold/dev-app) (不包含原生扩展的项目) 也设计做为开发用app使用.

![launch](images/dev-app/launch.png)

::: sidenote
只有在不使用 [原生扩展](/manuals/extensions/) 的项目可以使用我们提供的开发用apk. 否则你需要自己手动打debug包并且加入你所使用的原生扩展.
:::
Debug 模式下编译的任何 iOS 或 Android 应用都可以作为开发用app. 事实上, 我们推荐这么做因为开发用app包含正确的项目配置而且拥有和开发时使用的相同的 [原生扩展](/manuals/extensions/).

从 Defold 1.4.0 版本开始可以给项目打空的 debug 包. 使用这个选项可以创建带原生扩展的应用版本, 适合于教程里提到的开发迭代.

Expand Down
3 changes: 3 additions & 0 deletions docs/zh/manuals/editor-keyboard-shortcuts.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,18 @@ brief: 本教程介绍了当前编辑器快捷键以及如何自定义快捷键.
| Delete to end of line | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>Delete</kbd> | <kbd>Cmd</kbd>+<kbd>Delete</kbd> | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>Delete</kbd> |
| Documentation | <kbd>F1</kbd> | <kbd>F1</kbd> | <kbd>F1</kbd> |
| Down | <kbd>Down</kbd> | <kbd>Down</kbd> | <kbd>Down</kbd> |
| Edit breakpoint | <kbd>Alt</kbd>+<kbd>F9</kbd> | <kbd>Alt</kbd>+<kbd>F9</kbd> | <kbd>Alt</kbd>+<kbd>F9</kbd> |
| End of file | <kbd>Ctrl</kbd>+<kbd>End</kbd> | <kbd>Cmd</kbd>+<kbd>Down</kbd> | <kbd>Ctrl</kbd>+<kbd>End</kbd> |
| End of line | <kbd>End</kbd> | <kbd>Ctrl</kbd>+<kbd>E</kbd> | <kbd>End</kbd> |
| Enter | <kbd>Enter</kbd> | <kbd>Enter</kbd> | <kbd>Enter</kbd> |
| Erase tool | <kbd>Shift</kbd>+<kbd>E</kbd> | <kbd>Shift</kbd>+<kbd>E</kbd> | <kbd>Shift</kbd>+<kbd>E</kbd> |
| Escape | <kbd>Esc</kbd> | <kbd>Esc</kbd> | <kbd>Esc</kbd> |
| Find next | <kbd>Ctrl</kbd>+<kbd>G</kbd>, <kbd>Enter</kbd> | <kbd>Cmd</kbd>+<kbd>G</kbd>, <kbd>Enter</kbd> | <kbd>Ctrl</kbd>+<kbd>G</kbd>, <kbd>Enter</kbd> |
| Find prev | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>G</kbd>, <kbd>Shift</kbd>+<kbd>Enter</kbd> | <kbd>Shift</kbd>+<kbd>Cmd</kbd>+<kbd>G</kbd>, <kbd>Shift</kbd>+<kbd>Enter</kbd> | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>G</kbd>, <kbd>Shift</kbd>+<kbd>Enter</kbd> |
| Find references | <kbd>Shift</kbd>+<kbd>F12</kbd> | <kbd>Shift</kbd>+<kbd>F12</kbd> | <kbd>Shift</kbd>+<kbd>F12</kbd> |
| Find text | <kbd>Ctrl</kbd>+<kbd>F</kbd> | <kbd>Cmd</kbd>+<kbd>F</kbd> | <kbd>Ctrl</kbd>+<kbd>F</kbd> |
| Frame selection | <kbd>F</kbd> | <kbd>F</kbd> | <kbd>F</kbd> |
| Goto definition | <kbd>F12</kbd> | <kbd>F12</kbd> | <kbd>F12</kbd> |
| Goto line | <kbd>Ctrl</kbd>+<kbd>L</kbd> | <kbd>Cmd</kbd>+<kbd>L</kbd> | <kbd>Ctrl</kbd>+<kbd>L</kbd> |
| Hide selected | <kbd>Ctrl</kbd>+<kbd>E</kbd> | <kbd>Cmd</kbd>+<kbd>E</kbd> | <kbd>Ctrl</kbd>+<kbd>E</kbd> |
| Hot reload | <kbd>Ctrl</kbd>+<kbd>R</kbd> | <kbd>Cmd</kbd>+<kbd>R</kbd> | <kbd>Ctrl</kbd>+<kbd>R</kbd> |
Expand Down
36 changes: 32 additions & 4 deletions docs/zh/manuals/editor-preferences.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Path to custom keymap

## Code

![](images/editor/preferences_code.png){srcset="images/editor/preferences_code@2x.png 2x"}
![](images/editor/preferences_code.png)

Custom Editor
: 自定义编辑器的绝对路径. 在 macOS 上应指向 .app 内的可执行程序 (比如 `/Applications/Atom.app/Contents/MacOS/Atom`).
Expand All @@ -47,12 +47,40 @@ Code editor font
: 代码编辑器里要使用的系统上已安装的字体名称.


## Extensions
### 使用 Visual Studio Code 打开脚本文件

![](images/editor/preferences_extensions.png){srcset="images/editor/preferences_extensions@2x.png 2x"}
![](images/editor/preferences_vscode.png)

要从 Defold 编辑器里直接用 Visual Studio Code 打开脚本文件, 必须配置下列可执行文件地址:

- MacOS: `/Applications/Visual Studio Code.app/Contents/MacOS/Electron`
- Linux: `/usr/bin/code`
- Windows: `C:\Program Files\Microsoft VS Code\Code.exe`

配置打开指定文件和指定行号的参数:

- 打开文件: `. {file}`
- 打开到行: `. -g {file}:{line}`

其中 `.` 符号代表打开整个项目, 而不是指定文件.


## 扩展

![](images/editor/preferences_extensions.png)

Build Server
: 编译包含 [原生扩展](/manuals/extensions) 项目时使用的编译服务器的 URL. 可以在编译服务器的请求 URL 中加入用户名和验证令牌. 使用格式举例: `username:token@build.defold.com`. 在使用用户自己的编译服务器并开启认证时, 任天堂 Switch 编译需要这种用户认证 ([更多信息详见编译服务器文档](https://github.com/defold/extender/blob/dev/README_SECURITY.md)). 其中用户名和密码可以用系统环境变量 `DM_EXTENDER_USERNAME``DM_EXTENDER_PASSWORD` 来设置.

Build Server Headers
: 编译原生扩展时向服务器发送的额外的 header. 在使用 CloudFlare 服务或类似服务编译扩展时是很必要的.
: 编译原生扩展时向服务器发送的额外的 header. 在使用 CloudFlare 服务或类似服务编译扩展时是很必要的.

## 工具

![](images/editor/preferences_tools.png)

ADB path
: 配置 [ADB](https://developer.android.com/tools/adb) 命令行工具的路径. 如果系统中安装了 ADB, 则 Defold 编辑器会使用它来安装和运行 Android APK 包到指定设备. 默认情况下, 编辑器会检查 ADB 是否安装在了默认位置, 如果需要手动指定路径则需配置该选项.

ios-deploy path
: 配置 [ios-deploy](https://github.com/ios-control/ios-deploy) 命令行工具的路径 (仅适用于 macOS). 与 ADB 路径类似, Defold 编辑器会使用该工具安装和运行 iOS 包到连接好的 iPhone 上. 默认情况下, 编辑器会检查 ios-deploy 是否安装在了默认位置, 如果需要手动指定路径则需配置该选项.
1 change: 1 addition & 0 deletions docs/zh/manuals/editor-scripts.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ return M
注意这些属性有的不是只读的, 而且基于上下文有些可能不可用, 所以要在读取之前执行 `editor.can_get`, 设置之前执行 `editor.can_set`. 属性面板里用鼠标悬停在属性名上会显示一个信息提示标明该属性在编辑器脚本里是如何命名的. 资源属性赋值为 `""` 代表 nil 值.
- `editor.can_get(node_id, property)` — 检查属性是否可读, 确保 `editor.get()` 不会报错
- `editor.can_set(node_id, property)` — 检查属性是否可写, 确保设置操作不会报错
- `editor.create_directory(resource_path)` — 新建文件夹, 及其所有父文件夹

## Command

Expand Down
4 changes: 3 additions & 1 deletion docs/zh/manuals/extensions-build-variants.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ brief: 本教程介绍了 Defold 能创建的各种 Build variants 以及它们

不同类型即是 `Build variants`

注意: 使用 <kbd>Project ▸ Build</kbd> 时使用的是 debug 版引擎.
::: sidenote
使用 <kbd>Project ▸ Build</kbd> 时使用的是 debug 版引擎.
:::

### Debug

Expand Down
78 changes: 1 addition & 77 deletions docs/zh/manuals/extensions-debugging-android.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,80 +3,4 @@ title: Android调试
brief: 本教程介绍了如何调试运行在 Android 设备上的应用.
---

# Android调试

这里列举了一些在 Android 设备上调试应用的方法.

## Android Studio

* 打包前在 *game.project* 打开 `android.debuggable` 选项

![android.debuggable](images/extensions/debugging/android/game_project_debuggable.png)

* 编译时选择 debug 模式.

![bundle_android](images/extensions/debugging/android/bundle_android.png)

* 启动 [Android Studio](https://developer.android.com/studio/)

* 选择 `Profile or debug APK`

![debug_apk](images/extensions/debugging/android/android_profile_or_debug.png)

* 选择刚打包好的apk文件

![select_apk](images/extensions/debugging/android/android_select_apk.png)

* 选择主 `.so` 文件, 确保其包含调试信息

![select_so](images/extensions/debugging/android/android_missing_symbols.png)

* 如果没有调试信息, 提交一个带调试信息的 `.so` 文件. (文件大概 20mb 左右)

* 路径映射帮助你重新把应用的各个路径从编译的地方 (在云端) 映射到你的本地目录下.

* 选择 .so 文件, 再添加一个到本地的映射

![path_mapping1](images/extensions/debugging/android/path_mappings_android.png)

![path_mapping2](images/extensions/debugging/android/path_mappings_android2.png)

* 如果你访问了引擎代码, 同样要添加一个对引擎代码的路径映射

* 确定checkout的是你正在调试的版本

defold$ git checkout 1.2.148

* 点击 `Apply changes`

* 现在你应该可以看到你的项目的代码映射了

![source](images/extensions/debugging/android/source_mappings_android.png)

* 加入断点

![breakpoint](images/extensions/debugging/android/breakpoint_android.png)

* 点击 `Run` -> `Debug "Appname"` 然后调用加入断点代码

![breakpoint](images/extensions/debugging/android/callstack_variables_android.png)

* 现在你就可以在调用栈中步进调试和查看变量状态了


## 注意

### 原生扩展 job 目录

目前, 工作流对于项目开发有点麻烦. 这是因为job目录名是随机的, 没法进行路径映射.

但是对于调试来说还是可行的.

路径映射保存在 Android Studio 项目的 <project>.iml 文件中.

这样就能获得当前应用的job目录名

$ arm-linux-androideabi-readelf --string-dump=.debug_str build/armv7-android/libdmengine.so | grep /job

job目录命名类似 `job1298751322870374150`, 每次编译都随机命名.

教程移动至 [调试 Android 原生代码](/manuals/debugging-native-code-android)
Loading

0 comments on commit 685694b

Please sign in to comment.