AAPT2: Ensure PNG endianness in 9-patch serialization

9-patch serialization requires PNG endianness

Bug:31942900
Test: manual + added serialization test to libaapt2_tests
Change-Id: Iea521718f88e80d3fa7a8723a47584973738748a
diff --git a/tools/aapt2/compile/NinePatch.cpp b/tools/aapt2/compile/NinePatch.cpp
index 408ecf7..0fc1c5d 100644
--- a/tools/aapt2/compile/NinePatch.cpp
+++ b/tools/aapt2/compile/NinePatch.cpp
@@ -598,6 +598,9 @@
                                        (const int32_t*) verticalStretchRegions.data(),
                                        regionColors.data(),
                                        buffer.get());
+    // Convert to file endianness.
+    reinterpret_cast<android::Res_png_9patch*>(buffer.get())->deviceToFile();
+
     *outLen = data.serializedSize();
     return buffer;
 }
@@ -661,7 +664,9 @@
 }
 
 ::std::ostream& operator<<(::std::ostream& out, const NinePatch& ninePatch) {
-    return out << "padding: " << ninePatch.padding
+    return out << "horizontalStretch:" << util::joiner(ninePatch.horizontalStretchRegions, " ")
+            << " verticalStretch:" << util::joiner(ninePatch.verticalStretchRegions, " ")
+            << " padding: " << ninePatch.padding
             << ", bounds: " << ninePatch.layoutBounds
             << ", outline: " << ninePatch.outline
             << " rad=" << ninePatch.outlineRadius