Export symbols for the newly exposed APEX/internal headers

Bug: 137655431
Test: CtsUiRenderingTestCases
Change-Id: I71c6d1a53ae080bf104848679ee62a77cf07c9fa
diff --git a/libs/hwui/apex/include/android/graphics/bitmap.h b/libs/hwui/apex/include/android/graphics/bitmap.h
index 45fec2ab..8c4b439 100644
--- a/libs/hwui/apex/include/android/graphics/bitmap.h
+++ b/libs/hwui/apex/include/android/graphics/bitmap.h
@@ -18,6 +18,7 @@
 
 #include <android/bitmap.h>
 #include <android/data_space.h>
+#include <cutils/compiler.h>
 #include <jni.h>
 #include <sys/cdefs.h>
 
@@ -37,31 +38,31 @@
  * NOTE: This API does not need to remain as an APEX API if/when we pull libjnigraphics into the
  *       UI module.
  */
-AndroidBitmapInfo ABitmap_getInfoFromJava(JNIEnv* env, jobject bitmapObj);
+ANDROID_API AndroidBitmapInfo ABitmap_getInfoFromJava(JNIEnv* env, jobject bitmapObj);
 
 /**
  *
  * @return ptr to an opaque handle to the native bitmap or null if the java bitmap has been recycled
  *         or does not exist.
  */
-ABitmap* ABitmap_acquireBitmapFromJava(JNIEnv* env, jobject bitmapObj);
+ANDROID_API ABitmap* ABitmap_acquireBitmapFromJava(JNIEnv* env, jobject bitmapObj);
 
-ABitmap* ABitmap_copy(ABitmap* srcBitmap, AndroidBitmapFormat dstFormat);
+ANDROID_API ABitmap* ABitmap_copy(ABitmap* srcBitmap, AndroidBitmapFormat dstFormat);
 
-void ABitmap_acquireRef(ABitmap* bitmap);
-void ABitmap_releaseRef(ABitmap* bitmap);
+ANDROID_API void ABitmap_acquireRef(ABitmap* bitmap);
+ANDROID_API void ABitmap_releaseRef(ABitmap* bitmap);
 
-AndroidBitmapInfo ABitmap_getInfo(ABitmap* bitmap);
-ADataSpace ABitmap_getDataSpace(ABitmap* bitmap);
+ANDROID_API AndroidBitmapInfo ABitmap_getInfo(ABitmap* bitmap);
+ANDROID_API ADataSpace ABitmap_getDataSpace(ABitmap* bitmap);
 
-void* ABitmap_getPixels(ABitmap* bitmap);
-void ABitmap_notifyPixelsChanged(ABitmap* bitmap);
+ANDROID_API void* ABitmap_getPixels(ABitmap* bitmap);
+ANDROID_API void ABitmap_notifyPixelsChanged(ABitmap* bitmap);
 
-AndroidBitmapFormat ABitmapConfig_getFormatFromConfig(JNIEnv* env, jobject bitmapConfigObj);
-jobject ABitmapConfig_getConfigFromFormat(JNIEnv* env, AndroidBitmapFormat format);
+ANDROID_API AndroidBitmapFormat ABitmapConfig_getFormatFromConfig(JNIEnv* env, jobject bitmapConfigObj);
+ANDROID_API jobject ABitmapConfig_getConfigFromFormat(JNIEnv* env, AndroidBitmapFormat format);
 
 // NDK access
-int ABitmap_compress(const AndroidBitmapInfo* info, ADataSpace dataSpace, const void* pixels,
+ANDROID_API int ABitmap_compress(const AndroidBitmapInfo* info, ADataSpace dataSpace, const void* pixels,
                      AndroidBitmapCompressFormat format, int32_t quality, void* userContext,
                      AndroidBitmap_CompressWriteFunc);
 /**
@@ -75,7 +76,7 @@
  *         a reference on the buffer, and the client must call
  *         AHardwareBuffer_release when finished with it.
  */
-AHardwareBuffer* ABitmap_getHardwareBuffer(ABitmap* bitmap);
+ANDROID_API AHardwareBuffer* ABitmap_getHardwareBuffer(ABitmap* bitmap);
 
 __END_DECLS
 
diff --git a/libs/hwui/apex/include/android/graphics/canvas.h b/libs/hwui/apex/include/android/graphics/canvas.h
index 6fd6b06..a0cecc0 100644
--- a/libs/hwui/apex/include/android/graphics/canvas.h
+++ b/libs/hwui/apex/include/android/graphics/canvas.h
@@ -20,6 +20,7 @@
 #include <android/graphics/paint.h>
 #include <android/native_window.h>
 #include <android/rect.h>
+#include <cutils/compiler.h>
 #include <jni.h>
 
 __BEGIN_DECLS
@@ -30,24 +31,24 @@
 typedef struct ACanvas ACanvas;
 
 //  One of AHardwareBuffer_Format.
-bool ACanvas_isSupportedPixelFormat(int32_t bufferFormat);
+ANDROID_API bool ACanvas_isSupportedPixelFormat(int32_t bufferFormat);
 
 /**
  * Returns a native handle to a Java android.graphics.Canvas
  *
  * @return ACanvas* that is only valid for the life of the jobject.
  */
-ACanvas* ACanvas_getNativeHandleFromJava(JNIEnv* env, jobject canvas);
+ANDROID_API ACanvas* ACanvas_getNativeHandleFromJava(JNIEnv* env, jobject canvas);
 
 /**
  * Creates a canvas that wraps the buffer
  *
  * @param buffer is a required param.  If no buffer is provided a nullptr will be returned.
  */
-ACanvas* ACanvas_createCanvas(const ANativeWindow_Buffer* buffer,
+ANDROID_API ACanvas* ACanvas_createCanvas(const ANativeWindow_Buffer* buffer,
                               int32_t /*android_dataspace_t*/ dataspace);
 
-void ACanvas_destroyCanvas(ACanvas* canvas);
+ANDROID_API void ACanvas_destroyCanvas(ACanvas* canvas);
 
 /**
  * Updates the canvas to render into the pixels in the provided buffer
@@ -60,7 +61,7 @@
  *         method will behave as if nullptr were passed as the input buffer and the previous buffer
  *         will still be released.
  */
-bool ACanvas_setBuffer(ACanvas* canvas, const ANativeWindow_Buffer* buffer,
+ANDROID_API bool ACanvas_setBuffer(ACanvas* canvas, const ANativeWindow_Buffer* buffer,
                        int32_t /*android_dataspace_t*/ dataspace);
 
 /**
@@ -68,21 +69,21 @@
  *
  * @param clipRect required
  */
-void ACanvas_clipRect(ACanvas* canvas, const ARect* clipRect, bool doAntiAlias = false);
+ANDROID_API void ACanvas_clipRect(ACanvas* canvas, const ARect* clipRect, bool doAntiAlias = false);
 
 /**
  * Clips operations on the canvas to the difference of the current clip and the provided clipRect.
  *
  * @param clipRect required
  */
-void ACanvas_clipOutRect(ACanvas* canvas, const ARect* clipRect, bool doAntiAlias = false);
+ANDROID_API void ACanvas_clipOutRect(ACanvas* canvas, const ARect* clipRect, bool doAntiAlias = false);
 
 /**
  *
  * @param rect required
  * @param paint required
  */
-void ACanvas_drawRect(ACanvas* canvas, const ARect* rect, const APaint* paint);
+ANDROID_API void ACanvas_drawRect(ACanvas* canvas, const ARect* rect, const APaint* paint);
 
 /**
  *
@@ -91,7 +92,7 @@
  * @param top
  * @param paint
  */
-void ACanvas_drawBitmap(ACanvas* canvas, const ABitmap* bitmap, float left, float top,
+ANDROID_API void ACanvas_drawBitmap(ACanvas* canvas, const ABitmap* bitmap, float left, float top,
                         const APaint* paint);
 
 __END_DECLS
diff --git a/libs/hwui/apex/include/android/graphics/jni_runtime.h b/libs/hwui/apex/include/android/graphics/jni_runtime.h
index 872a949..487383e 100644
--- a/libs/hwui/apex/include/android/graphics/jni_runtime.h
+++ b/libs/hwui/apex/include/android/graphics/jni_runtime.h
@@ -16,15 +16,18 @@
 #ifndef ANDROID_GRAPHICS_JNI_RUNTIME_H
 #define ANDROID_GRAPHICS_JNI_RUNTIME_H
 
+#include <cutils/compiler.h>
 #include <jni.h>
 
 __BEGIN_DECLS
 
-void init_android_graphics();
+ANDROID_API void init_android_graphics();
 
-int register_android_graphics_classes(JNIEnv* env);
+ANDROID_API int register_android_graphics_classes(JNIEnv* env);
 
-void zygote_preload_graphics();
+ANDROID_API int register_android_graphics_GraphicsStatsService(JNIEnv* env);
+
+ANDROID_API void zygote_preload_graphics();
 
 __END_DECLS
 
diff --git a/libs/hwui/apex/include/android/graphics/matrix.h b/libs/hwui/apex/include/android/graphics/matrix.h
index 4039cd1..987ad13 100644
--- a/libs/hwui/apex/include/android/graphics/matrix.h
+++ b/libs/hwui/apex/include/android/graphics/matrix.h
@@ -18,6 +18,7 @@
 #define ANDROID_GRAPHICS_MATRIX_H
 
 #include <jni.h>
+#include <cutils/compiler.h>
 #include <sys/cdefs.h>
 
 __BEGIN_DECLS
@@ -31,7 +32,7 @@
  * @return true if the values param was populated and false otherwise.
 
  */
-bool AMatrix_getContents(JNIEnv* env, jobject matrixObj, float values[9]);
+ANDROID_API bool AMatrix_getContents(JNIEnv* env, jobject matrixObj, float values[9]);
 
 __END_DECLS
 
diff --git a/libs/hwui/apex/include/android/graphics/paint.h b/libs/hwui/apex/include/android/graphics/paint.h
index 5895e00..058db8d 100644
--- a/libs/hwui/apex/include/android/graphics/paint.h
+++ b/libs/hwui/apex/include/android/graphics/paint.h
@@ -16,6 +16,7 @@
 #ifndef ANDROID_GRAPHICS_PAINT_H
 #define ANDROID_GRAPHICS_PAINT_H
 
+#include <cutils/compiler.h>
 #include <sys/cdefs.h>
 
 __BEGIN_DECLS
@@ -35,11 +36,11 @@
     ABLEND_MODE_SRC      = 2,
 };
 
-APaint* APaint_createPaint();
+ANDROID_API APaint* APaint_createPaint();
 
-void APaint_destroyPaint(APaint* paint);
+ANDROID_API void APaint_destroyPaint(APaint* paint);
 
-void APaint_setBlendMode(APaint* paint, ABlendMode blendMode);
+ANDROID_API void APaint_setBlendMode(APaint* paint, ABlendMode blendMode);
 
 __END_DECLS
 
diff --git a/libs/hwui/apex/include/android/graphics/region.h b/libs/hwui/apex/include/android/graphics/region.h
index 961067a..0756d6d 100644
--- a/libs/hwui/apex/include/android/graphics/region.h
+++ b/libs/hwui/apex/include/android/graphics/region.h
@@ -16,6 +16,7 @@
 #ifndef ANDROID_GRAPHICS_REGION_H
 #define ANDROID_GRAPHICS_REGION_H
 
+#include <cutils/compiler.h>
 #include <android/rect.h>
 #include <sys/cdefs.h>
 #include <jni.h>
@@ -35,19 +36,19 @@
  * @return ARegionIterator that must be closed and must not live longer than the life
  *         of the jobject.  It returns nullptr if the region is not a valid object.
  */
-ARegionIterator* ARegionIterator_acquireIterator(JNIEnv* env, jobject region);
+ANDROID_API ARegionIterator* ARegionIterator_acquireIterator(JNIEnv* env, jobject region);
 
-void ARegionIterator_releaseIterator(ARegionIterator* iterator);
+ANDROID_API void ARegionIterator_releaseIterator(ARegionIterator* iterator);
 
-bool ARegionIterator_isComplex(ARegionIterator* iterator);
+ANDROID_API bool ARegionIterator_isComplex(ARegionIterator* iterator);
 
-bool ARegionIterator_isDone(ARegionIterator* iterator);
+ANDROID_API bool ARegionIterator_isDone(ARegionIterator* iterator);
 
-void ARegionIterator_next(ARegionIterator* iterator);
+ANDROID_API void ARegionIterator_next(ARegionIterator* iterator);
 
-ARect ARegionIterator_getRect(ARegionIterator* iterator);
+ANDROID_API ARect ARegionIterator_getRect(ARegionIterator* iterator);
 
-ARect ARegionIterator_getTotalBounds(ARegionIterator* iterator);
+ANDROID_API ARect ARegionIterator_getTotalBounds(ARegionIterator* iterator);
 
 __END_DECLS
 
diff --git a/libs/hwui/apex/include/android/graphics/renderthread.h b/libs/hwui/apex/include/android/graphics/renderthread.h
index 0a790af..50280a6 100644
--- a/libs/hwui/apex/include/android/graphics/renderthread.h
+++ b/libs/hwui/apex/include/android/graphics/renderthread.h
@@ -16,6 +16,7 @@
 #ifndef ANDROID_GRAPHICS_RENDERTHREAD_H
 #define ANDROID_GRAPHICS_RENDERTHREAD_H
 
+#include <cutils/compiler.h>
 #include <sys/cdefs.h>
 
 __BEGIN_DECLS
@@ -26,7 +27,7 @@
  *           function requires a valid fd, but does not persist or assume ownership of the fd
  *           outside the scope of this function.
  */
-void ARenderThread_dumpGraphicsMemory(int fd);
+ANDROID_API void ARenderThread_dumpGraphicsMemory(int fd);
 
 __END_DECLS
 
diff --git a/libs/hwui/jni/BitmapFactory.cpp b/libs/hwui/jni/BitmapFactory.cpp
index f3395b9..d4e27d8 100644
--- a/libs/hwui/jni/BitmapFactory.cpp
+++ b/libs/hwui/jni/BitmapFactory.cpp
@@ -4,6 +4,7 @@
 #include "BitmapFactory.h"
 #include "CreateJavaOutputStreamAdaptor.h"
 #include "GraphicsJNI.h"
+#include "MimeType.h"
 #include "NinePatchPeeker.h"
 #include "SkAndroidCodec.h"
 #include "SkBRDAllocator.h"
diff --git a/libs/hwui/jni/GraphicsJNI.h b/libs/hwui/jni/GraphicsJNI.h
index 4bf3ed1..b58a740 100644
--- a/libs/hwui/jni/GraphicsJNI.h
+++ b/libs/hwui/jni/GraphicsJNI.h
@@ -1,6 +1,8 @@
 #ifndef _ANDROID_GRAPHICS_GRAPHICS_JNI_H_
 #define _ANDROID_GRAPHICS_GRAPHICS_JNI_H_
 
+#include <cutils/compiler.h>
+
 #include "Bitmap.h"
 #include "SkBitmap.h"
 #include "SkBRDAllocator.h"
@@ -75,7 +77,7 @@
     static SkPoint* jpointf_to_point(JNIEnv*, jobject jpointf, SkPoint* point);
     static void point_to_jpointf(const SkPoint& point, JNIEnv*, jobject jpointf);
 
-    static android::Canvas* getNativeCanvas(JNIEnv*, jobject canvas);
+    ANDROID_API static android::Canvas* getNativeCanvas(JNIEnv*, jobject canvas);
     static android::Bitmap* getNativeBitmap(JNIEnv*, jobject bitmap);
     static SkImageInfo getBitmapInfo(JNIEnv*, jobject bitmap, uint32_t* outRowBytes,
                                      bool* isHardware);
diff --git a/libs/hwui/jni/GraphicsStatsService.cpp b/libs/hwui/jni/GraphicsStatsService.cpp
index e925946..6076552 100644
--- a/libs/hwui/jni/GraphicsStatsService.cpp
+++ b/libs/hwui/jni/GraphicsStatsService.cpp
@@ -25,6 +25,8 @@
 #include <stats_event.h>
 #include <stats_pull_atom_callback.h>
 #include <statslog.h>
+
+#include "android/graphics/jni_runtime.h"
 #include "GraphicsJNI.h"
 
 namespace android {
@@ -171,6 +173,9 @@
     gGraphicsStatsServiceObject = nullptr;
 }
 
+} // namespace android
+using namespace android;
+
 static const JNINativeMethod sMethods[] =
         {{"nGetAshmemSize", "()I", (void*)getAshmemSize},
          {"nCreateDump", "(IZ)J", (void*)createDump},
@@ -190,5 +195,3 @@
     return jniRegisterNativeMethods(env, "android/graphics/GraphicsStatsService", sMethods,
                                     NELEM(sMethods));
 }
-
-} // namespace android
diff --git a/core/jni/android/graphics/MimeType.h b/libs/hwui/jni/MimeType.h
similarity index 87%
rename from core/jni/android/graphics/MimeType.h
rename to libs/hwui/jni/MimeType.h
index 38a579c..fdd510c 100644
--- a/core/jni/android/graphics/MimeType.h
+++ b/libs/hwui/jni/MimeType.h
@@ -16,6 +16,7 @@
 
 #pragma once
 
+#include <cutils/compiler.h>
 #include "SkEncodedImageFormat.h"
 
-const char* getMimeType(SkEncodedImageFormat);
+ANDROID_API const char* getMimeType(SkEncodedImageFormat);
diff --git a/native/graphics/jni/imagedecoder.cpp b/native/graphics/jni/imagedecoder.cpp
index d1946b0..56f3906 100644
--- a/native/graphics/jni/imagedecoder.cpp
+++ b/native/graphics/jni/imagedecoder.cpp
@@ -20,7 +20,7 @@
 #include <android/bitmap.h>
 #include <android/data_space.h>
 #include <android/imagedecoder.h>
-#include <android/graphics/MimeType.h>
+#include <MimeType.h>
 #include <android/rect.h>
 #include <hwui/ImageDecoder.h>
 #include <log/log.h>
diff --git a/services/core/jni/onload.cpp b/services/core/jni/onload.cpp
index e575432..f9238e3 100644
--- a/services/core/jni/onload.cpp
+++ b/services/core/jni/onload.cpp
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 
+#include <android/graphics/jni_runtime.h>
 #include <nativehelper/JNIHelp.h>
 #include "jni.h"
 #include "utils/Log.h"
@@ -49,7 +50,6 @@
 int register_android_server_Watchdog(JNIEnv* env);
 int register_android_server_HardwarePropertiesManagerService(JNIEnv* env);
 int register_android_server_SyntheticPasswordManager(JNIEnv* env);
-int register_android_graphics_GraphicsStatsService(JNIEnv* env);
 int register_android_hardware_display_DisplayViewport(JNIEnv* env);
 int register_android_server_net_NetworkStatsFactory(JNIEnv* env);
 int register_android_server_net_NetworkStatsService(JNIEnv* env);