编译libjnisimple.so

Android/development/samples/SimpleJNI/jni/Android.mk

# This makefile supplies the rules for building a library of JNI code for# use by our example of how to bundle a shared library with an APK.LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := samples# This is the target being built.LOCAL_MODULE:= libsimplejni# All of the source files that we will compile.LOCAL_SRC_FILES:= \  native.cpp# All of the shared libraries we link against.LOCAL_SHARED_LIBRARIES := \        libutils# No static libraries.LOCAL_STATIC_LIBRARIES :=# Also need the JNI headers.LOCAL_C_INCLUDES += \        $(JNI_H_INCLUDE)# No special compiler flags.LOCAL_CFLAGS +=# Don't prelink this library.  For more efficient code, you may want# to add this library to the prelink map and set this to true. However,# it's difficult to do this for applications that are not supplied as# part of a system image.LOCAL_PRELINK_MODULE := falseinclude $(BUILD_SHARED_LIBRARY)

注意:在jni的C++代码中,JNI_OnLoad要用C编译器编译(extern "C"),否则会出现dalvik找不到JNI_OnLoad函数并跳过初始化。

D/dalvikvm( 4581): No JNI_OnLoad found in /data/data/xxxxlib/libsimplejni.so 0x481f3b78, skipping init

编译apk
Android/development/samples/SimpleJNI/Android.mk

# This makefile shows how to build a shared library and an activity that# bundles the shared library and calls it using JNI.TOP_LOCAL_PATH:= $(call my-dir)# Build activityLOCAL_PATH:= $(TOP_LOCAL_PATH)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := samplesLOCAL_SRC_FILES := $(call all-subdir-java-files)LOCAL_PACKAGE_NAME := SimpleJNILOCAL_JNI_SHARED_LIBRARIES := libsimplejniLOCAL_PROGUARD_ENABLED := disabledinclude $(BUILD_PACKAGE)# ============================================================# Also build all of the sub-targets under this one: the shared library.include $(call all-makefiles-under,$(LOCAL_PATH))

注意:jni中实现的function,在java中必须要定义成native

编辑jni层文件编译so & apk

adb shell pm uninstall -f com.example.android.simplejni

adb install SimpleJNI.apk

更多相关文章

  1. android上用opengl画线
  2. update android api
  3. android的WebView简单实例
  4. android代码实现自动关机
  5. Android编译系统一
  6. android 命令行创建工程
  7. xpose框架使用android studio
  8. Android(安卓)源码编译问题集锦
  9. android java 调用 .so 动态库实例

随机推荐

  1. Android 解析imei
  2. Android Material Design常规使用
  3. android 测试
  4. 【Android】选项卡使用
  5. Android(安卓)webview HitTestResult识别
  6. Android Launcher3去除应用列表,二级菜单,
  7. ViewPagerIndicator使用
  8. Android Studio 调试工具常见问题
  9. React Native與Android交互
  10. android 获取以太网的连接状态