在sourceinsight工程中搜索:mount
仔細察看,發現只是變異出來靜態庫。
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
IMountServiceListener.cpp \
IMountShutdownObserver.cpp \
IObbActionListener.cpp \
IMountService.cpp
LOCAL_MODULE:= libstorage
include $(BUILD_STATIC_LIBRARY)
這個讓我很失望,但是讓我也很驚喜。沒有做什實際動作,只是提供了庫。這個庫最終在
對的,就是這樣。
然後看看,storage_manager.cpp:
BASE_PATH := $(call my-dir)
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
# our source files
#
LOCAL_SRC_FILES:= \
asset_manager.cpp \
configuration.cpp \
input.cpp \
looper.cpp \
native_activity.cpp \
native_window.cpp \
obb.cpp \
sensor.cpp \
storage_manager.cpp
LOCAL_SHARED_LIBRARIES := \
liblog \
libcutils \
libandroidfw \
libinput \
libutils \
libbinder \
libui \
libgui \
libandroid_runtime
LOCAL_STATIC_LIBRARIES := \
libstorage
LOCAL_C_INCLUDES += \
$(TVOS_TOPDIR)/frameworks/base/native/include \
$(TVOS_TOPDIR)/frameworks/base/core/jni/android
LOCAL_MODULE:= libandroid
include $(BUILD_SHARED_LIBRARY)
相當失望啊,竟然沒有實際操作一下。更失望的在下面,居然只是爲了編譯NDK的庫。
但是閱讀源碼我們知道,它沒有那麼簡單。
對的,還是這個套路:
直接C++到java層的Binder轉換。
https://developer.android.google.cn/ndk/reference/?hl=zh-cn,參考這個比較靠普。