Skip to content

Commit 4ed1971

Browse files
committed
feat(core): add log for create node buffer on android
1 parent cb67698 commit 4ed1971

File tree

3 files changed

+59
-0
lines changed

3 files changed

+59
-0
lines changed

renderer/native/android/src/main/cpp/src/renderer/native_render_jni.cc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,11 @@ static jmethodID j_render_manager_get_density_method_id;
5757
static jmethodID j_render_manager_get_provider_method_id;
5858
static jmethodID j_render_manager_get_style_for_render_id;
5959

60+
extern "C" void PrintCreateNodeBuf();
61+
void PrintBuf(JNIEnv *j_env, jobject j_object) {
62+
PrintCreateNodeBuf();
63+
}
64+
6065
REGISTER_JNI("com/tencent/renderer/NativeRenderProvider",
6166
"updateNodeSize",
6267
"(IIIFFZ)V",
@@ -77,6 +82,11 @@ REGISTER_JNI("com/tencent/renderer/NativeRenderProvider",
7782
"(IIFF)V",
7883
UpdateRootSize)
7984

85+
REGISTER_JNI("com/tencent/renderer/NativeRenderProvider",
86+
"printBuf",
87+
"()V",
88+
PrintBuf)
89+
8090
static jint JNI_OnLoad(__unused JavaVM* j_vm, __unused void* reserved) {
8191
auto j_env = JNIEnvironment::GetInstance()->AttachCurrentThread();
8292

renderer/native/android/src/main/cpp/src/renderer/native_render_manager.cc

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,26 @@
3232
#include "jni/jni_env.h"
3333
#include "jni/jni_invocation.h"
3434
#include "renderer/native_render_jni.h"
35+
#include <iomanip>
36+
37+
static std::string sBufSaved;
38+
static uint32_t sFirstIdSaved = 0;
39+
40+
static std::string binaryBufferToHexString(const std::string& buffer) {
41+
std::ostringstream oss;
42+
for (const auto& byte : buffer) {
43+
// 将每个字节转换为两位十六进制数
44+
oss << "0x" << std::hex << std::setw(2) << std::setfill('0') << static_cast<int>(byte) << ",";
45+
}
46+
return oss.str();
47+
}
48+
49+
extern "C" {
50+
void PrintCreateNodeBuf() {
51+
auto logBufferString = binaryBufferToHexString(sBufSaved);
52+
FOOTSTONE_LOG(ERROR) << "hippy c, buf for firstId: " << sFirstIdSaved << ", bufLen:" << sBufSaved.size() << ", buffer: = " << logBufferString << ", end.";
53+
}
54+
}
3555

3656
constexpr char kId[] = "id";
3757
constexpr char kPid[] = "pId";
@@ -128,6 +148,8 @@ void NativeRenderManager::CreateRenderNode(std::weak_ptr<RootNode> root_node,
128148
footstone::value::SerializerHelper::DestroyBuffer(serializer_->Release());
129149
serializer_->WriteHeader();
130150

151+
uint32_t firstId = 0;
152+
131153
auto len = nodes.size();
132154
footstone::value::HippyValue::HippyValueArrayType dom_node_array;
133155
dom_node_array.resize(len);
@@ -139,6 +161,10 @@ void NativeRenderManager::CreateRenderNode(std::weak_ptr<RootNode> root_node,
139161
dom_node[kIndex] = footstone::value::HippyValue(render_info.index);
140162
dom_node[kName] = footstone::value::HippyValue(nodes[i]->GetViewName());
141163

164+
if (!firstId) firstId = render_info.id;
165+
FOOTSTONE_LOG(ERROR) << "hippy c, create node, id: " << render_info.id << ", pid: " << render_info.pid
166+
<< ", index: " << render_info.index << ", name: " << nodes[i]->GetViewName();
167+
142168
if (IsMeasureNode(nodes[i]->GetViewName())) {
143169
int32_t id = footstone::check::checked_numeric_cast<uint32_t, int32_t>(nodes[i]->GetId());
144170
MeasureFunction measure_function = [WEAK_THIS, root_id, id](float width, LayoutMeasureMode width_measure_mode,
@@ -183,6 +209,11 @@ void NativeRenderManager::CreateRenderNode(std::weak_ptr<RootNode> root_node,
183209
}
184210
serializer_->WriteValue(HippyValue(dom_node_array));
185211
std::pair<uint8_t*, size_t> buffer_pair = serializer_->Release();
212+
213+
// save buffer
214+
sBufSaved.assign((char*)buffer_pair.first, buffer_pair.second);
215+
sFirstIdSaved = firstId;
216+
186217
CallNativeMethod("createNode", root->GetId(), buffer_pair);
187218
footstone::value::SerializerHelper::DestroyBuffer(buffer_pair);
188219
}
@@ -267,6 +298,9 @@ void NativeRenderManager::MoveRenderNode(std::weak_ptr<RootNode> root_node,
267298
dom_node[kPid] = footstone::value::HippyValue(render_info.pid);
268299
dom_node[kIndex] = footstone::value::HippyValue(render_info.index);
269300
dom_node_array[i] = dom_node;
301+
302+
FOOTSTONE_LOG(ERROR) << "hippy c, move node, id: " << render_info.id << ", pid: " << render_info.pid
303+
<< ", index: " << render_info.index << ", name: " << nodes[i]->GetViewName();
270304
}
271305
serializer_->WriteValue(HippyValue(dom_node_array));
272306
std::pair<uint8_t*, size_t> buffer_pair = serializer_->Release();
@@ -313,6 +347,9 @@ void NativeRenderManager::DeleteRenderNode(std::weak_ptr<RootNode> root_node,
313347
id.resize(nodes.size());
314348
for (size_t i = 0; i < nodes.size(); i++) {
315349
id[i] = footstone::check::checked_numeric_cast<uint32_t, jint>(nodes[i]->GetRenderInfo().id);
350+
351+
FOOTSTONE_LOG(ERROR) << "hippy c, delete node, id: " << nodes[i]->GetRenderInfo().id << ", pid: " << nodes[i]->GetRenderInfo().pid
352+
<< ", index: " << nodes[i]->GetRenderInfo().index << ", name: " << nodes[i]->GetViewName();
316353
}
317354
j_env->SetIntArrayRegion(j_int_array, 0, size, &id[0]);
318355

@@ -402,6 +439,13 @@ void NativeRenderManager::MoveRenderNode(std::weak_ptr<RootNode> root_node,
402439
return;
403440
}
404441

442+
for (int i = 0; i < (int)moved_ids.size(); i++) {
443+
FOOTSTONE_LOG(ERROR) << "hippy c, move2 node, id: " << moved_ids[(size_t)i] << ", from_pid: " << from_pid
444+
<< ", to_pid: " << to_pid << ", index: " << index;
445+
}
446+
447+
448+
405449
j_env->CallVoidMethod(j_object, j_method_id, root->GetId(), j_int_array, to_pid, from_pid, index);
406450
JNIEnvironment::ClearJEnvException(j_env);
407451
j_env->DeleteLocalRef(j_int_array);

renderer/native/android/src/main/java/com/tencent/renderer/NativeRenderProvider.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,11 @@ public void createNode(int rootId, byte[] buffer) {
136136
try {
137137
final List<Object> list = bytesToArgument(ByteBuffer.wrap(buffer));
138138
renderDelegate.createNode(rootId, list);
139+
140+
//printBuf();
139141
} catch (NativeRenderException e) {
140142
renderDelegate.handleRenderException(e);
143+
printBuf();
141144
}
142145
}
143146
}
@@ -483,4 +486,6 @@ private native void onReceivedEvent(int instanceId, int rootId, int nodeId, Stri
483486
@SuppressWarnings("JavaJniMissingFunction")
484487
private native void doCallBack(int instanceId, int result, String functionName, int rootId,
485488
int nodeId, long callbackId, byte[] params, int offset, int length);
489+
490+
private native void printBuf();
486491
}

0 commit comments

Comments
 (0)