高版本安卓注入RenderDoc

几年前在公司内部KM分享过如何方便的将RenderDoc内嵌到内部版本中从而方便调试,以及如何向下兼容更低版本的Android系统(RenderDoc Android最低系统要求是6.0)。 手法其实非常简单: 直接将libVkLayer_GLES_RenderDoc.so这个打包进apk中然后手动加载下即可; 这样做额外的好处是不需要依赖其hook系统的机制,所以不需要interceptor-lib,进而压低系统版本要求。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 2月 12, 2023

NDK遇到Link Failed

这次是有几个同事遇到的一个问题: release版本编译引擎没问题,但是debug下会在链接步骤挂掉: [arm64-v8a] SharedLibrary : libGame.soD:\SDK\android-ndk-r21\toolchains\llvm\prebuilt\windows-x86_64\bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: final link failed: File truncatedclang++: error: linker command failed with exit code 1 (use -v to see invocation)     阅读全文
Kanglai Qian's avatar
Kanglai Qian 3月 06, 2021

利用IncrediBuild加速NDK编译

最近一段时间突然发现打包机上编译引擎安卓版本极慢,正好有现成的IncrediBuild所以研究下能不能用来加速。IB本身是商业软件,对Visual Studio的支持已经非常好了: 既可以使用Extension形式直接调用,又可以使用命令行传参sln。但是网上关于结合NDK使用的资料就非常少,这周花了大半天终于跑通流程,就此记录一下。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 3月 06, 2021

Windows上编译Renderdoc Android

最近用RenderDoc调试的时候发现GLES的glCopySubImageData结果不太对,翻了下代码发现实现不是特别完整(只支持了整块拷贝的情况)。于是动手自己实现了一发,结果测试的时候居然卡在了一个编译安卓版本上。 之前我都是在Mac下编译的安卓,这次手头没有合适设备不得不研究了下如何在Windows上编译。关于这块网上资料比较少,CONTRIBUTING/Compiling.md也语焉不详,因此就在这里记录下步骤。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 12月 26, 2020

低版本安卓电视解决Kodi

搬家之后重新折腾了下Kodi,结果第一步就卡死在小米电视上了……下载官方最新的Kodi 18之后发现“解析包错误”:搜了下发现从Kodi 17开始要...     阅读全文
Kanglai Qian's avatar
Kanglai Qian 8月 23, 2020

RenderDoc在Android Q上无效

今天在查真机渲染问题的时候,突然发现神器RenderDoc无效了…Attach Process没问题但是始终抓不到有效Context。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 2月 12, 2020

Unity 2017涉及Bugly的修改

在Bugly上恢复原生崩溃堆栈信息需要符号表文件,具体可以参考分析libunity.so Release崩溃。我们在升级2017之后发现引擎有些行为发生了变化,这里记录下。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 7月 15, 2018

P/Invoke调用优化

这其实是一个常见的问题:Unity中使用P/Invoke调用原生代码的时候如何更高效的传参数和获取返回值的问题。一般来说简单的直接写在函数声明里,遇到复杂的情况譬如变长、数组等情况我基本都是直接上JSON的。但是最近性能测试的时候发现这么写也是一个非常可观的消耗:     阅读全文
Kanglai Qian's avatar
Kanglai Qian 7月 20, 2017

Android下Streaming Assets特殊姿势

这两天在群里看到有人问过这个问题,也有朋友小窗问我:Unity中导出Gradle工程然后打包出来的apk会加载AssetBundle慢很多。 于是联想到了之前遇到的一个有意思的现象:我们的出包流程是在打包出来apk之后,利用apktool解包再进行加密和资源处理再打回去。但我发现这个步骤导致apk大小变化很多(有时变大有时变小,毫无规律),非常奇怪;但是解压出来的内容确实又是一样的。后来我仔细比对之后终于找到玄机:Streaming Assets下的东西默认是不压缩的。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 7月 20, 2017

Graphics Performance Analyzer 安卓

最近倒腾了很久新的抓包工具:     阅读全文
Kanglai Qian's avatar
Kanglai Qian 1月 08, 2017