Read this manual in English

Android调试

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

Android Studio

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

    android.debuggable

  • 编译时选择 debug 模式.

    bundle_android

  • 启动 Android Studio

  • 选择 Profile or debug APK

    debug_apk

  • 选择刚打包好的apk文件

    select_apk

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

    select_so

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

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

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

    path_mapping1

    path_mapping2

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

      * 确定checkout的是你正在调试的版本
    
          defold$ git checkout 1.2.148
    
  • 点击 Apply changes

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

    source

  • 加入断点

    breakpoint

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

    breakpoint

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

注意

原生扩展 job 目录

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

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

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

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

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

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