Some JNI classes can only be compiled for Linux
Those classes are not used for layoutlib, so cross-platform is not
currently required.
Bug: N/A
Test: m libandroid_runtime on mac
Change-Id: I0e37c7b110cdce35fcb1348ba036e331e64f474b
diff --git a/core/jni/Android.bp b/core/jni/Android.bp
index b50b824..d1adc08 100644
--- a/core/jni/Android.bp
+++ b/core/jni/Android.bp
@@ -33,17 +33,14 @@
srcs: [
"android_animation_PropertyValuesHolder.cpp",
- "android_content_res_ApkAssets.cpp",
"android_graphics_Canvas.cpp",
"android_graphics_ColorSpace.cpp",
"android_graphics_drawable_AnimatedVectorDrawable.cpp",
"android_graphics_drawable_VectorDrawable.cpp",
"android_graphics_Picture.cpp",
"android_nio_utils.cpp",
- "android_os_MessageQueue.cpp",
"android_os_SystemClock.cpp",
"android_os_SystemProperties.cpp",
- "android_os_Trace.cpp",
"android_util_EventLog.cpp",
"android_util_Log.cpp",
"android_util_PathParser.cpp",
@@ -76,9 +73,6 @@
"android/graphics/fonts/FontFamily.cpp",
"android/graphics/text/LineBreaker.cpp",
"android/graphics/text/MeasuredText.cpp",
- "android_util_AssetManager.cpp",
- "android_util_StringBlock.cpp",
- "android_util_XmlBlock.cpp",
"com_android_internal_util_VirtualRefBasePtr.cpp",
"com_android_internal_view_animation_NativeInterpolatorFactoryHelper.cpp",
],
@@ -175,18 +169,23 @@
"android_os_HwRemoteBinder.cpp",
"android_os_NativeHandle.cpp",
"android_os_MemoryFile.cpp",
+ "android_os_MessageQueue.cpp",
"android_os_Parcel.cpp",
"android_os_SELinux.cpp",
"android_os_SharedMemory.cpp",
+ "android_os_Trace.cpp",
"android_os_UEventObserver.cpp",
"android_os_VintfObject.cpp",
"android_os_VintfRuntimeInfo.cpp",
"android_net_LocalSocketImpl.cpp",
"android_net_NetUtils.cpp",
+ "android_util_AssetManager.cpp",
"android_util_Binder.cpp",
"android_util_StatsLog.cpp",
"android_util_MemoryIntArray.cpp",
"android_util_Process.cpp",
+ "android_util_StringBlock.cpp",
+ "android_util_XmlBlock.cpp",
"android_util_jar_StrictJarFile.cpp",
"android/graphics/AnimatedImageDrawable.cpp",
"android/graphics/Camera.cpp",
@@ -242,6 +241,7 @@
"android_backup_FileBackupHelperBase.cpp",
"android_backup_BackupHelperDispatcher.cpp",
"android_app_backup_FullBackup.cpp",
+ "android_content_res_ApkAssets.cpp",
"android_content_res_ObbScanner.cpp",
"android_content_res_Configuration.cpp",
"android_security_Scrypt.cpp",
@@ -354,5 +354,15 @@
"libutils",
],
},
+ linux_glibc: {
+ srcs: [
+ "android_content_res_ApkAssets.cpp",
+ "android_os_MessageQueue.cpp",
+ "android_os_Trace.cpp",
+ "android_util_AssetManager.cpp",
+ "android_util_StringBlock.cpp",
+ "android_util_XmlBlock.cpp",
+ ],
+ },
},
}
diff --git a/core/jni/LayoutlibLoader.cpp b/core/jni/LayoutlibLoader.cpp
index eb70035..549fd4d 100644
--- a/core/jni/LayoutlibLoader.cpp
+++ b/core/jni/LayoutlibLoader.cpp
@@ -91,10 +91,12 @@
// The actual list of registered classes will be determined at runtime via the 'native_classes' System property
static const std::unordered_map<std::string, RegJNIRec> gRegJNIMap = {
{"android.animation.PropertyValuesHolder", REG_JNI(register_android_animation_PropertyValuesHolder)},
+#ifdef __linux__
{"android.content.AssetManager", REG_JNI(register_android_content_AssetManager)},
{"android.content.StringBlock", REG_JNI(register_android_content_StringBlock)},
{"android.content.XmlBlock", REG_JNI(register_android_content_XmlBlock)},
{"android.content.res.ApkAssets", REG_JNI(register_android_content_res_ApkAssets)},
+#endif
{"android.graphics.Bitmap", REG_JNI(register_android_graphics_Bitmap)},
{"android.graphics.BitmapFactory", REG_JNI(register_android_graphics_BitmapFactory)},
{"android.graphics.ByteBufferStreamAdaptor", REG_JNI(register_android_graphics_ByteBufferStreamAdaptor)},
@@ -125,10 +127,14 @@
{"android.graphics.fonts.FontFamily", REG_JNI(register_android_graphics_fonts_FontFamily)},
{"android.graphics.text.LineBreaker", REG_JNI(register_android_graphics_text_LineBreaker)},
{"android.graphics.text.MeasuredText", REG_JNI(register_android_graphics_text_MeasuredText)},
+#ifdef __linux__
{"android.os.MessageQueue", REG_JNI(register_android_os_MessageQueue)},
+#endif
{"android.os.SystemClock", REG_JNI(register_android_os_SystemClock)},
{"android.os.SystemProperties", REG_JNI(register_android_os_SystemProperties)},
+#ifdef __linux__
{"android.os.Trace", REG_JNI(register_android_os_Trace)},
+#endif
{"android.util.EventLog", REG_JNI(register_android_util_EventLog)},
{"android.util.Log", REG_JNI(register_android_util_Log)},
{"android.util.PathParser", REG_JNI(register_android_util_PathParser)},