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
3656constexpr char kId [] = " id" ;
3757constexpr 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);
0 commit comments