项目在framework层中自定义增加了jni,步奏如下:
1、在frameworks/base下创建自己的文件framework_jni目录
2、在framework_jni目录增加c代码和java代码
android.mk 代码如下:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
test.cpp \
LOCAL_SHARED_LIBRARIES := \
libandroid_runtime \
liblog \
LOCAL_MODULE:= libtest-jni
include $(BUILD_SHARED_LIBRARY)
include $(call all-makefiles-under,$(LOCAL_PATH))
test.java 代码如下:
package com.test;
public class test {
static {
System.loadLibrary("test-jni");
}
private native int registListener();
private native void unRegistListener();
}
3、修改~/work-syk/n316b_i60a/device/vanzo/i60a/device.mk
增加
PRODUCT_PACKAGES += libtest-jni
4、修改~/work-syk/n316b_i60a/build/core/pathmap.mk
FRAMEWORKS_BASE_SUBDIRS := \
$(addsuffix /java, \
core \
featureoption \
graphics \
location \
media \
media/mca/effect \
media/mca/filterfw \
media/mca/filterpacks \
drm \
opengl \
sax \
telecomm \
telephony \
phone \
wifi \
keystore \
rs \
//添加 framework_jni \
)
5、整编后,framework的java层可调用。