返回顶部
首页 > 资讯 > 移动开发 >从源码编译Android系统的Java类库和JNI动态库的方法
  • 857
分享到

从源码编译Android系统的Java类库和JNI动态库的方法

JAVA方法jni源码Android 2022-06-06 08:06:00 857人浏览 泡泡鱼
摘要

利用源码编译Android系统Java类库 1、编写Java项目和Android.mk文件 ├── Android.mk └── src └── com

利用源码编译Android系统Java类库
1、编写Java项目和Android.mk文件


  ├── Android.mk
  └── src
   └── com
     └── lhw
       └── framework
         └── led
           └── Led.java

Led.java文件


package com.lhw.framework.led; 
 
public class Led { 
  public boolean turnOn() { 
    return true; 
  }   
  public boolean turnOff() { 
    return true; 
  }   
} 

Android.mk文件


LOCAL_PATH := $(call my-dir) 
LOCAL_SRC_FILES   := $(call all-java-files-under, src) 
LOCAL_MODULE    := framework_led 
LOCAL_MODULE_TAGS  := framework_led 
LOCAL_JAVA_LIBRARIES    := 
LOCAL_STATIC_JAVA_LIBRARIES := 
include $(BUILD_JAVA_LIBRARY) 

2、编译


   mmm /home/administrator/workspace/android_test/framework_led

    编译结果:


   Install: out/target/product/generic/system/framework/framework_led.jar    


利用源码编译Android系统JNI动态库
1、代码和Android.mk编写


├── jni
│  ├── Android.mk
│  └── led.c


led.c


#include <jni.h> 
#include <stdio.h> 
jboolean Java_com_lhw_led_Led_turnOn(JNIEnv *env, jclass thiz) 
{ 
  return JNI_TRUE; 
} 
jboolean Java_com_lhw_led_LED_trunOff(JNIEnv *env, jclass thiz) 
{ 
  return JNI_TRUE; 
} 

注:方法名命名规则为:Java_包名_类名_方法名,可以用javah 命令根据java文件生成所需要的.h头文件。当然更好的办法是通过JNI_OnLoad和AndroidRuntime::reGISterNativeMethods实现动态注册,这样可以不用理会方法名规则。这里只是做个简单的例子,在后面会用一个例子实现动态注册。

Android.mk


LOCAL_PATH := $(call my-dir) 
LOCAL_SRC_FILES := led.c 
LOCAL_MODULE  := led_jni 
LOCAL_MODULE_TAGS    := led_jni 
LOCAL_PRELINK_MODULE  := false 
LOCAL_SHARED_LIBRARIES := libc 
include $(BUILD_SHARED_LIBRARY) 

2、编译


  mmm /home/administrator/workspace/android_test/jni

    编译结果:


  Install: out/target/product/generic/system/lib/led_jni.so
您可能感兴趣的文章:老生常谈Java动态编译(必看篇)Java中的动态和静态编译实例详解java编程进行动态编译加载代码分享


--结束END--

本文标题: 从源码编译Android系统的Java类库和JNI动态库的方法

本文链接: https://lsjlt.com/news/25553.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作