Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1e611b12 authored by Jerome Gaillard's avatar Jerome Gaillard Committed by Android (Google) Code Review
Browse files

Merge changes Icc5b8563,I4298502e,If8b715f4,If46d741e,I702d547d, ...

* changes:
  Build native EventLog and XmlBlock for host linux.
  Build native AssetManager and friends for host linux.
  Build and potentially register Trace for host.
  Build and register native MessageQueue for host.
  Build native Log for host.
  Build and register SystemProperties for host
  Compile SystemClock.cpp for host.
parents 8fe7767d 6f014b46
Loading
Loading
Loading
Loading
+10 −10
Original line number Original line Diff line number Diff line
@@ -33,12 +33,19 @@ cc_library_shared {


    srcs: [
    srcs: [
        "android_animation_PropertyValuesHolder.cpp",
        "android_animation_PropertyValuesHolder.cpp",
        "android_content_res_ApkAssets.cpp",
        "android_graphics_Canvas.cpp",
        "android_graphics_Canvas.cpp",
        "android_graphics_ColorSpace.cpp",
        "android_graphics_ColorSpace.cpp",
        "android_graphics_drawable_AnimatedVectorDrawable.cpp",
        "android_graphics_drawable_AnimatedVectorDrawable.cpp",
        "android_graphics_drawable_VectorDrawable.cpp",
        "android_graphics_drawable_VectorDrawable.cpp",
        "android_graphics_Picture.cpp",
        "android_graphics_Picture.cpp",
        "android_nio_utils.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",
        "android_util_PathParser.cpp",
        "android_view_DisplayListCanvas.cpp",
        "android_view_DisplayListCanvas.cpp",
        "android_view_RenderNode.cpp",
        "android_view_RenderNode.cpp",
@@ -69,6 +76,9 @@ cc_library_shared {
        "android/graphics/fonts/FontFamily.cpp",
        "android/graphics/fonts/FontFamily.cpp",
        "android/graphics/text/LineBreaker.cpp",
        "android/graphics/text/LineBreaker.cpp",
        "android/graphics/text/MeasuredText.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_util_VirtualRefBasePtr.cpp",
        "com_android_internal_view_animation_NativeInterpolatorFactoryHelper.cpp",
        "com_android_internal_view_animation_NativeInterpolatorFactoryHelper.cpp",
    ],
    ],
@@ -166,27 +176,18 @@ cc_library_shared {
                "android_os_HwRemoteBinder.cpp",
                "android_os_HwRemoteBinder.cpp",
                "android_os_NativeHandle.cpp",
                "android_os_NativeHandle.cpp",
                "android_os_MemoryFile.cpp",
                "android_os_MemoryFile.cpp",
                "android_os_MessageQueue.cpp",
                "android_os_Parcel.cpp",
                "android_os_Parcel.cpp",
                "android_os_SELinux.cpp",
                "android_os_SELinux.cpp",
                "android_os_SharedMemory.cpp",
                "android_os_SharedMemory.cpp",
                "android_os_SystemClock.cpp",
                "android_os_SystemProperties.cpp",
                "android_os_Trace.cpp",
                "android_os_UEventObserver.cpp",
                "android_os_UEventObserver.cpp",
                "android_os_VintfObject.cpp",
                "android_os_VintfObject.cpp",
                "android_os_VintfRuntimeInfo.cpp",
                "android_os_VintfRuntimeInfo.cpp",
                "android_net_LocalSocketImpl.cpp",
                "android_net_LocalSocketImpl.cpp",
                "android_net_NetUtils.cpp",
                "android_net_NetUtils.cpp",
                "android_util_AssetManager.cpp",
                "android_util_Binder.cpp",
                "android_util_Binder.cpp",
                "android_util_EventLog.cpp",
                "android_util_Log.cpp",
                "android_util_StatsLog.cpp",
                "android_util_StatsLog.cpp",
                "android_util_MemoryIntArray.cpp",
                "android_util_MemoryIntArray.cpp",
                "android_util_Process.cpp",
                "android_util_Process.cpp",
                "android_util_StringBlock.cpp",
                "android_util_XmlBlock.cpp",
                "android_util_jar_StrictJarFile.cpp",
                "android_util_jar_StrictJarFile.cpp",
                "android/graphics/AnimatedImageDrawable.cpp",
                "android/graphics/AnimatedImageDrawable.cpp",
                "android/graphics/Camera.cpp",
                "android/graphics/Camera.cpp",
@@ -242,7 +243,6 @@ cc_library_shared {
                "android_backup_FileBackupHelperBase.cpp",
                "android_backup_FileBackupHelperBase.cpp",
                "android_backup_BackupHelperDispatcher.cpp",
                "android_backup_BackupHelperDispatcher.cpp",
                "android_app_backup_FullBackup.cpp",
                "android_app_backup_FullBackup.cpp",
                "android_content_res_ApkAssets.cpp",
                "android_content_res_ObbScanner.cpp",
                "android_content_res_ObbScanner.cpp",
                "android_content_res_Configuration.cpp",
                "android_content_res_Configuration.cpp",
                "android_security_Scrypt.cpp",
                "android_security_Scrypt.cpp",
+23 −2
Original line number Original line Diff line number Diff line
@@ -49,6 +49,10 @@ extern int register_android_graphics_Typeface(JNIEnv* env);
namespace android {
namespace android {


extern int register_android_animation_PropertyValuesHolder(JNIEnv *env);
extern int register_android_animation_PropertyValuesHolder(JNIEnv *env);
extern int register_android_content_AssetManager(JNIEnv* env);
extern int register_android_content_StringBlock(JNIEnv* env);
extern int register_android_content_XmlBlock(JNIEnv* env);
extern int register_android_content_res_ApkAssets(JNIEnv* env);
extern int register_android_graphics_Canvas(JNIEnv* env);
extern int register_android_graphics_Canvas(JNIEnv* env);
extern int register_android_graphics_ColorFilter(JNIEnv* env);
extern int register_android_graphics_ColorFilter(JNIEnv* env);
extern int register_android_graphics_ColorSpace(JNIEnv* env);
extern int register_android_graphics_ColorSpace(JNIEnv* env);
@@ -66,6 +70,12 @@ extern int register_android_graphics_fonts_Font(JNIEnv* env);
extern int register_android_graphics_fonts_FontFamily(JNIEnv* env);
extern int register_android_graphics_fonts_FontFamily(JNIEnv* env);
extern int register_android_graphics_text_LineBreaker(JNIEnv* env);
extern int register_android_graphics_text_LineBreaker(JNIEnv* env);
extern int register_android_graphics_text_MeasuredText(JNIEnv* env);
extern int register_android_graphics_text_MeasuredText(JNIEnv* env);
extern int register_android_os_MessageQueue(JNIEnv* env);
extern int register_android_os_SystemClock(JNIEnv* env);
extern int register_android_os_SystemProperties(JNIEnv* env);
extern int register_android_os_Trace(JNIEnv* env);
extern int register_android_util_EventLog(JNIEnv* env);
extern int register_android_util_Log(JNIEnv* env);
extern int register_android_util_PathParser(JNIEnv* env);
extern int register_android_util_PathParser(JNIEnv* env);
extern int register_android_view_RenderNode(JNIEnv* env);
extern int register_android_view_RenderNode(JNIEnv* env);
extern int register_android_view_DisplayListCanvas(JNIEnv* env);
extern int register_android_view_DisplayListCanvas(JNIEnv* env);
@@ -78,9 +88,13 @@ struct RegJNIRec {
};
};


// Map of all possible class names to register to their corresponding JNI registration function pointer
// Map of all possible class names to register to their corresponding JNI registration function pointer
// The actual list of registered classes will be determined at runtime via the com.android.tools.layoutlib.create.NativeConfig class
// 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 = {
static const std::unordered_map<std::string, RegJNIRec>  gRegJNIMap = {
    {"android.animation.PropertyValuesHolder", REG_JNI(register_android_animation_PropertyValuesHolder)},
    {"android.animation.PropertyValuesHolder", REG_JNI(register_android_animation_PropertyValuesHolder)},
    {"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)},
    {"android.graphics.Bitmap", REG_JNI(register_android_graphics_Bitmap)},
    {"android.graphics.Bitmap", REG_JNI(register_android_graphics_Bitmap)},
    {"android.graphics.BitmapFactory", REG_JNI(register_android_graphics_BitmapFactory)},
    {"android.graphics.BitmapFactory", REG_JNI(register_android_graphics_BitmapFactory)},
    {"android.graphics.ByteBufferStreamAdaptor", REG_JNI(register_android_graphics_ByteBufferStreamAdaptor)},
    {"android.graphics.ByteBufferStreamAdaptor", REG_JNI(register_android_graphics_ByteBufferStreamAdaptor)},
@@ -111,11 +125,16 @@ static const std::unordered_map<std::string, RegJNIRec> gRegJNIMap = {
    {"android.graphics.fonts.FontFamily", REG_JNI(register_android_graphics_fonts_FontFamily)},
    {"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.LineBreaker", REG_JNI(register_android_graphics_text_LineBreaker)},
    {"android.graphics.text.MeasuredText", REG_JNI(register_android_graphics_text_MeasuredText)},
    {"android.graphics.text.MeasuredText", REG_JNI(register_android_graphics_text_MeasuredText)},
    {"android.os.MessageQueue", REG_JNI(register_android_os_MessageQueue)},
    {"android.os.SystemClock", REG_JNI(register_android_os_SystemClock)},
    {"android.os.SystemProperties", REG_JNI(register_android_os_SystemProperties)},
    {"android.os.Trace", REG_JNI(register_android_os_Trace)},
    {"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)},
    {"android.util.PathParser", REG_JNI(register_android_util_PathParser)},
    {"com.android.internal.util.VirtualRefBasePtr", REG_JNI(register_com_android_internal_util_VirtualRefBasePtr)},
    {"com.android.internal.util.VirtualRefBasePtr", REG_JNI(register_com_android_internal_util_VirtualRefBasePtr)},
    {"com.android.internal.view.animation.NativeInterpolatorFactoryHelper", REG_JNI(register_com_android_internal_view_animation_NativeInterpolatorFactoryHelper)},
    {"com.android.internal.view.animation.NativeInterpolatorFactoryHelper", REG_JNI(register_com_android_internal_view_animation_NativeInterpolatorFactoryHelper)},
};
};

// Vector to store the names of classes that need delegates of their native methods
// Vector to store the names of classes that need delegates of their native methods
static vector<string> classesToDelegate;
static vector<string> classesToDelegate;


@@ -232,6 +251,8 @@ JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void*) {
    const char* path = env->GetStringUTFChars(stringPath, 0);
    const char* path = env->GetStringUTFChars(stringPath, 0);
    u_setDataDirectory(path);
    u_setDataDirectory(path);
    env->ReleaseStringUTFChars(stringPath, path);
    env->ReleaseStringUTFChars(stringPath, path);


    return JNI_VERSION_1_6;
    return JNI_VERSION_1_6;
}
}
+0 −1
Original line number Original line Diff line number Diff line
@@ -19,7 +19,6 @@


#include "android-base/logging.h"
#include "android-base/logging.h"
#include "android-base/properties.h"
#include "android-base/properties.h"
#include "cutils/properties.h"
#include "utils/misc.h"
#include "utils/misc.h"
#include <utils/Log.h>
#include <utils/Log.h>
#include "jni.h"
#include "jni.h"
+10 −2
Original line number Original line Diff line number Diff line
@@ -18,10 +18,8 @@
#define LOG_TAG "asset"
#define LOG_TAG "asset"


#include <inttypes.h>
#include <inttypes.h>
#include <linux/capability.h>
#include <stdio.h>
#include <stdio.h>
#include <sys/stat.h>
#include <sys/stat.h>
#include <sys/system_properties.h>
#include <sys/types.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/wait.h>
#include <unistd.h>
#include <unistd.h>
@@ -399,6 +397,7 @@ static jobject NativeGetOverlayableMap(JNIEnv* env, jclass /*clazz*/, jlong ptr,
  return array_map;
  return array_map;
}
}


#ifdef __ANDROID__ // Layoutlib does not support parcel
static jobject ReturnParcelFileDescriptor(JNIEnv* env, std::unique_ptr<Asset> asset,
static jobject ReturnParcelFileDescriptor(JNIEnv* env, std::unique_ptr<Asset> asset,
                                          jlongArray out_offsets) {
                                          jlongArray out_offsets) {
  off64_t start_offset, length;
  off64_t start_offset, length;
@@ -430,6 +429,15 @@ static jobject ReturnParcelFileDescriptor(JNIEnv* env, std::unique_ptr<Asset> as
  }
  }
  return newParcelFileDescriptor(env, file_desc);
  return newParcelFileDescriptor(env, file_desc);
}
}
#else
static jobject ReturnParcelFileDescriptor(JNIEnv* env, std::unique_ptr<Asset> asset,
                                          jlongArray out_offsets) {
  jniThrowException(env, "java/lang/UnsupportedOperationException",
                    "Implement me");
  // never reached
  return nullptr;
}
#endif


static jint NativeGetGlobalAssetCount(JNIEnv* /*env*/, jobject /*clazz*/) {
static jint NativeGetGlobalAssetCount(JNIEnv* /*env*/, jobject /*clazz*/) {
  return Asset::getGlobalCount();
  return Asset::getGlobalCount();
+0 −1
Original line number Original line Diff line number Diff line
@@ -20,7 +20,6 @@


#include <android-base/macros.h>
#include <android-base/macros.h>
#include <assert.h>
#include <assert.h>
#include <cutils/properties.h>
#include <log/log.h>               // For LOGGER_ENTRY_MAX_PAYLOAD.
#include <log/log.h>               // For LOGGER_ENTRY_MAX_PAYLOAD.
#include <utils/Log.h>
#include <utils/Log.h>
#include <utils/String8.h>
#include <utils/String8.h>
Loading